Database
 sql >> Baza danych >  >> RDS >> Database

Metody automatyzacji Azure

W ciągu ostatniego roku prowadziłem wiele sesji dotyczących Azure SQL Database, a także byłem autorem licznych artykułów i blogów. Często jestem pytany, czy utrzymanie bazy danych jest nadal ważnym czynnikiem podczas korzystania z Azure SQL Database. Tak – zadania takie jak utrzymanie indeksu, aktualizacje statystyk i sprawdzanie spójności są nadal ważne, a harmonogram tych zadań należy do administratora baz danych. Zamieszanie wynika z tego, że Azure SQL Database jest platformą jako usługą, a firma Microsoft jest odpowiedzialna za infrastrukturę i obsługę kopii zapasowych. Chociaż niektóre aspekty fizycznego uszkodzenia mogą być wyjaśnione, logiczne uszkodzenie w bazie danych nie. Z tego powodu nadal polecam klientom uruchamianie DBCC CHECKDB aby zapewnić ich pełną ochronę.

Problem, który pojawia się w przypadku każdego nowego DBA pracującego z Azure SQL Database, polega na tym, że nie ma wbudowanego agenta SQL Server, do jakiego przywykliśmy w przypadku SQL Server w wersjach Standard i Enterprise.

Aby zaplanować zadania konserwacji dla Azure SQL Database, masz kilka opcji:

  • Połączone serwery
  • Plany konserwacji bazy danych
  • Powershell
  • Usługi Azure
  • Elastyczne zadania

Poniższe wersje demonstracyjne zakładają, że skonfigurowano już konta logowania, reguły zapory i inne ustawienia zabezpieczeń, aby uzyskać zdalny dostęp do baz danych SQL Azure.

Serwery połączone

Łączenie się z bazą danych SQL Azure przy użyciu połączonego serwera jest bardzo powszechnym podejściem, ponieważ większość administratorów baz danych jest już zaznajomiona z tworzeniem połączonych serwerów i zarządzaniem nimi. Dwa najczęstsze sposoby, w jakie widziałem klientów korzystających z serwerów połączonych, to użycie SQL Server Native Client lub Microsoft OLE DB Provider dla sterowników ODBC jako dostawcy. Jeśli korzystasz z klienta natywnego, jako źródło danych musisz podać nazwę serwera; jednak jeśli używasz sterownika ODBC, musisz uzyskać ciąg połączenia i użyć go jako ciągu dostawcy. Obie te wartości można znaleźć w witrynie Azure Portal dla swojej bazy danych. Po kliknięciu bazy danych zobaczysz nazwę serwera i opcję wyświetlenia parametrów połączenia z bazą danych. Ta nazwa serwera, sqlperformance.database.windows.net, jest tym, czego użyłbym dla źródła danych SQL Server Native Client.

Po kliknięciu „Pokaż parametry połączenia z bazą danych” masz obecnie opcje dla ADO.NET, JDBC, ODBC i PHP. Aby zobaczyć ciąg połączenia dla ODBC, kliknij kartę ODBC.

Następnie musisz utworzyć połączony serwer w SSMS. W sekcji „Obiekty serwera” kliknij prawym przyciskiem myszy „Serwery połączone”, wybierz „Nowy serwer połączony” i wpisz wymagane informacje w zależności od wyboru dostawcy źródła danych.

Następnie kliknij „Bezpieczeństwo” i określ swoje preferencje. Zazwyczaj widzę opcję „Użyj tego kontekstu bezpieczeństwa” z podanym zdalnym loginem i hasłem.

Po zdefiniowaniu tego wszystkiego kliknij OK. Możesz teraz kliknąć prawym przyciskiem myszy nowy połączony serwer i przetestować połączenie.

Możesz teraz odwoływać się do połączonego serwera, aby wywoływać dowolne procedury składowane, takie jak Optymalizacja indeksu Ola Hallengren i Sprawdzanie integralności bazy danych bezpośrednio w odniesieniu do bazy danych Azure SQL Database w kroku zadania SQL Agent.

Plany konserwacji bazy danych

Jeśli planujesz używać planu konserwacji bazy danych do konserwacji, proces jest nieco łatwiejszy. Aby rozpocząć, po prostu utwórz plan konserwacji ręcznie lub za pomocą kreatora. Jeśli korzystasz z kreatora, po utworzeniu planu konserwacji możesz edytować plan, a następnie dodać połączenie platformy Azure. Następnie zmieniasz każde zadanie, aby korzystać z nowego połączenia. Twój ekran połączenia powinien wyglądać podobnie do następującego:

Możesz teraz zaplanować uruchamianie planów konserwacji bazy danych w okresie konserwacji.

PowerShell

PowerShell to doskonała opcja do pracy z powtarzalnym zadaniem, a korzystanie z PowerShell z Azure SQL Database jest proste. Możesz użyć funkcji Invoke-SqlCmd do wykonywania zapytań lub wykonywania instrukcji względem baz danych.

Popularnym podejściem jest użycie skryptu podobnego do:

  $params = @{
   'Database' = 'YourDatabase'
   'ServerInstance' = 'instance.database.windows.net'
   'Username' = 'UserName'
   'Password' = 'ComplexP@$$word'
   'Query' = 'Your Query Here'
  }
  Invoke-Sqlcmd @params

W swoim zapytaniu możesz użyć optymalizacji indeksu i sprawdzania spójności Ola Hallengren lub dowolnego niestandardowego skryptu, którego wcześniej używałeś. Następnie musisz zaplanować swoje skrypty PowerShell przy użyciu dowolnego harmonogramu, którego używasz w swojej organizacji.

Usługi Azure

W platformie Azure jest usługa Azure Automation i aby rozpocząć, musisz utworzyć konto automatyzacji. Musisz podać nazwę konta, wybrać subskrypcję, grupę zasobów, lokalizację i określić, czy chcesz utworzyć konto Azure Uruchom jako.

Po utworzeniu konta możesz rozpocząć tworzenie elementów Runbook. Z elementami Runbook możesz zrobić prawie wszystko. Istnieje wiele istniejących ksiąg przebiegu, które można przeglądać i modyfikować na własny użytek, w tym udostępnianie, monitorowanie, zarządzanie cyklem życia i nie tylko.

Elementy Runbook można tworzyć w trybie offline lub przy użyciu portalu Azure, a są one tworzone przy użyciu programu PowerShell. W tym przykładzie ponownie użyjemy kodu z demonstracji PowerShell, a także zademonstrujemy, jak możemy użyć wbudowanego harmonogramu usługi Azure, aby uruchomić nasz istniejący kod PowerShell i nie musimy polegać na lokalnym harmonogramie, harmonogramie zadań lub maszynie wirtualnej platformy Azure zaplanować pracę.

Zacznij od kliknięcia Runbooks

Następnie kliknij „Dodaj element runbook”

Kliknij „Utwórz nowy element runbook”

Podaj nazwę i typ elementu runbook, wybrałem PowerShell do mojego demo.

Jesteś wtedy na ekranie edycji nowego elementu Runbook. Tutaj możesz skonfigurować szczegóły i skompilować swój element runbook. W tym demo po prostu uruchamiam skrypt PowerShell, aby wywołać procedurę składowaną przeciwko bazie danych. Po opracowaniu całego kodu możesz opublikować i zapisać swój runbook.

W tym miejscu możesz uruchomić element Runbook i sprawdzić, czy wszystko działa odpowiednio, a także zaplanować uruchamianie elementu Runbook w określonych godzinach. Przejdźmy przez ten proces, klikając „Zaplanuj”

Musimy kliknąć „Połącz harmonogram ze swoim runbookiem”, a ponieważ nie stworzyliśmy wcześniej żadnych harmonogramów, musimy zdefiniować nowy, klikając „Utwórz nowy harmonogram”.

Podobnie jak w przypadku SQL Server Agent, podaj nazwę harmonogramu, opis, jeśli chcesz, kiedy zacząć i jak często powinien być uruchamiany. Ustawiam ten występ codziennie o 2 w nocy.

Mam teraz opublikowany element runbook, który ma być uruchamiany każdej nocy o 2 w nocy, aby przeprowadzić konserwację indeksu w jednej z moich baz danych.

Elastyczne oferty pracy

Elastic Jobs jest obecnie w wersji zapoznawczej, więc nie będę się zagłębiać w szczegóły ze względu na duże prawdopodobieństwo, że zmienią się ekrany i funkcjonalność.

Korzystanie z zadań elastycznych wymaga zdefiniowania puli elastycznej bazy danych i przypisania co najmniej jednej bazy danych do puli w celu uruchamiania zadań. Po utworzeniu puli elastycznej i dodaniu bazy danych możesz kliknąć Utwórz zadanie.

Nadaj swojej pracy opisową nazwę i podaj nazwę użytkownika i hasło, aby połączyć się z bazami danych, a także skrypt, który chcesz uruchomić. Kliknij Zapisz i masz teraz elastyczną pracę.

Następnie możesz wybrać uruchomienie zadania, wyświetlenie skryptu lub anulowanie zadania, jeśli jest uruchomione.

Chociaż istnieją pewne czynności, które można wykonać za pośrednictwem portalu Azure z zadaniami elastycznymi, rzeczywista moc i opcje konfiguracji są dostępne za pośrednictwem interfejsu API programu PowerShell. Aby zaplanować zadanie, musisz użyć polecenia cmdlet New-AzureSQLJobSchedule. Więcej informacji na temat dodatkowych funkcji i planowania zadań można znaleźć tutaj:

  • Twórz elastyczne zadania bazy danych SQL i zarządzaj nimi za pomocą PowerShell

Ogólnie podoba mi się funkcja elastycznych zadań i mam nadzieję, że gdy stanie się ona ogólnie dostępna, więcej funkcji zostanie wbudowanych w Azure Portal bez konieczności zarządzania nim za pomocą PowerShell. Podoba mi się, że możesz uruchomić T-SQL bezpośrednio, bez konieczności uruchamiania go w PowerShell i jak może działać we wszystkich bazach danych w puli.

Podsumowanie

Jeśli chodzi o bazy danych Azure SQL, tak, nadal odpowiadasz za pewną konserwację swoich baz danych. Masz wiele metod planowania zadań, a w zależności od potrzeb i rozmiaru środowiska, niektóre opcje tworzą lepsze rozwiązania. Połączone serwery i plany konserwacji bazy danych są szybkimi i łatwymi metodami, jeśli masz lokalne lub maszyny wirtualne platformy Azure z już skonfigurowanym serwerem SQL i małym wdrożeniem platformy Azure. PowerShell jest zawsze dobrą opcją, wystarczy znaleźć rozwiązanie, aby zaplanować uruchamianie skryptów. Automatyzacja platformy Azure to bardzo niezawodne rozwiązanie, które umożliwia tworzenie elementów Runbook w celu wykonania niemal wszystkiego i łatwego planowania elementów Runbook, a zadania elastyczne to kolejne świetne rozwiązanie oparte na platformie Azure, jeśli masz zadania, które musisz uruchomić w grupie baz danych w puli elastycznej.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak tworzyć liczby pięter w SQL

  2. Błąd podczas korzystania z połączenia OLAP:dostawca MSOLAP nie jest zarejestrowany na komputerze lokalnym...

  3. Nowa flaga śledzenia w celu naprawienia zmiennej wydajności tabeli

  4. Zrozumienie, co naprawdę aktualizuje sp_updatestats

  5. Zatrudnij lub zdobądź zatrudnienie:model danych dla procesu rekrutacji