Zadania elastyczne dla usługi Azure SQL Database
Dotyczy: Azure SQL Database
W tym artykule zapoznamy się z możliwościami i szczegółami zadań elastycznych dla usługi Azure SQL Database.
- Aby zapoznać się z samouczkiem dotyczącym konfigurowania zadań elastycznych, zobacz samouczek zadań elastycznych.
- Dowiedz się więcej o pojęciach dotyczących automatyzacji na platformach baz danych platformy Azure.
Omówienie zadań elastycznych
Można tworzyć i planować zadania elastyczne, które mogą być okresowo wykonywane względem jednej lub wielu baz danych Azure SQL Database w celu uruchamiania zapytań języka Transact-SQL (T-SQL) i wykonywania zadań konserwacji.
Można określić docelową bazę danych lub grupy baz danych, w których zadania będą wykonywane, oraz zdefiniować harmonogramy uruchamiania zadania. Wszystkie daty i godziny zadań elastycznych znajdują się w strefie czasowej UTC.
Zadanie obsługuje rejestrowanie w docelowej bazie danych. Możesz również definiować, obsługiwać i utrwalać skrypty języka Transact-SQL do wykonania w ramach grupy baz danych.
Każde zadanie rejestruje stan wykonania, a także automatycznie ponawia próbę wykonania operacji w przypadku awarii.
Kiedy należy używać zadań elastycznych
Istnieje kilka scenariuszy, w których można użyć automatyzacji zadań elastycznych:
- Automatyzowanie zadań zarządzania i planowanie ich uruchamiania co dzień powszedni, po godzinach itp.
- Wdrażanie zmian schematu, zarządzanie poświadczeniami.
- Zbieranie danych wydajności lub zbieranie danych telemetrycznych dzierżawcy (klienta).
- Aktualizowanie danych referencyjnych (informacje wspólne dla wszystkich baz danych).
- Ładowanie danych z usługi Azure Blob Storage.
- Konfigurowanie zadań do wykonywania w kolekcji baz danych cyklicznie, takich jak poza godzinami szczytu.
- Zbieranie wyników zapytań z zestawu baz danych do centralnej tabeli w sposób ciągły.
- Zapytania mogą być stale wykonywane i konfigurowane do wyzwalania dodatkowych zadań do wykonania.
- Zbieranie danych na potrzeby raportowania
- Agregowanie danych z kolekcji baz danych do pojedynczej tabeli docelowej.
- Wykonywanie dłużej działających zapytań dotyczących przetwarzania danych w ramach dużego zestawu baz danych, na przykład w celu zbierania telemetrii klienta. Wyniki są zbierane w pojedynczej tabeli docelowej na potrzeby dalszej analizy.
- Przenoszenie danych
- W przypadku niestandardowych rozwiązań, automatyzacji biznesowej lub innego zarządzania zadaniami.
- Przetwarzanie ETL w celu wyodrębniania/przetwarzania/wstawiania danych między tabelami w bazie danych.
Podczas wykonywania zadań elastycznych należy wziąć pod uwagę następujące kwestie:
- Zadanie, które musi być uruchamiane regularnie zgodnie z harmonogramem, przeznaczone dla co najmniej jednej bazy danych.
- Mieć zadanie, które należy uruchomić raz, ale w wielu bazach danych.
- Należy uruchamiać zadania względem dowolnej kombinacji baz danych: co najmniej jednej pojedynczej bazy danych, wszystkich baz danych na serwerze, wszystkich baz danych w elastycznej puli z dodatkową elastycznością dołączania lub wykluczania określonej bazy danych. Zadania można wykonywać na wielu serwerach, w wielu pulach, a nawet w obrębie baz danych w ramach różnych subskrypcji. Serwery i pule są dynamicznie wyliczane w czasie wykonywania, więc zadania są uruchamiane względem wszystkich baz danych, które istnieją w docelowej grupie w czasie wykonywania.
- Jest to znacząca różnica od agenta SQL, który nie może dynamicznie wyliczać docelowych baz danych, zwłaszcza w scenariuszach klienta SaaS, w których bazy danych są dodawane/usuwane dynamicznie.
Składniki zadań elastycznych
Składnik | opis |
---|---|
Agent zadań elastycznych | Zasób platformy Azure tworzony w celu uruchamiania zadań i zarządzania nimi. |
Baza danych zadań | Baza danych w usłudze Azure SQL Database używana przez agenta zadań do przechowywania danych powiązanych z zadaniem, definicji zadań itp. |
Zadanie | Zadanie to jednostka pracy, która składa się z co najmniej jednego kroku zadania. Kroki zadania określają skrypty T-SQL do uruchomienia, a także inne szczegóły wymagane do wykonania skryptu. |
Grupa docelowa | Zestaw serwerów, pul i baz danych do uruchamiania zadania. |
Agent zadań elastycznych
Agent zadań elastycznych to zasób platformy Azure do tworzenia, uruchamiania i zarządzania zadaniami. Agent zadań elastycznych to zasób platformy Azure tworzony w portalu (obsługiwane są również tworzenie zadań elastycznych i zarządzanie nimi przy użyciu programu PowerShell i interfejsu API REST).
Utworzenie agenta zadań elastycznych wymaga istniejącej bazy danych w usłudze Azure SQL Database. Agent konfiguruje tę istniejącą usługę Azure SQL Database jako bazę danych zadań.
Zadanie można uruchomić, wyłączyć lub anulować za pośrednictwem witryny Azure Portal. Witryna Azure Portal umożliwia również wyświetlanie definicji zadań i historii wykonywania.
Koszt agenta zadań elastycznych
Baza danych zadań jest rozliczana według tej samej stawki co dowolna baza danych w usłudze Azure SQL Database. Koszt agenta zadań elastycznych zależy od stałego cennika warstwy usługi wybranej dla agenta zadań. Zobacz stronę cennika usługi Azure SQL Database.
Elastyczna baza danych zadań
Baza danych zadań służy do definiowania zadań i śledzenia stanu i historii wykonań zadań. Zadania są wykonywane w docelowych bazach danych. Baza danych zadań służy również do przechowywania metadanych agenta, dzienników, wyników, definicji zadań, a także zawiera wiele przydatnych procedur składowanych i innych obiektów bazy danych do tworzenia, uruchamiania i zarządzania zadaniami przy użyciu języka T-SQL.
Zaleca się utworzenie agenta zadań elastycznych w usłudze Azure SQL Database (S1 lub nowszym).
Baza danych zadań powinna być czystym, pustym, S1 lub wyższym celem usługi Azure SQL Database.
Zalecanym celem usługi bazy danych zadań jest S1 lub wyższy, ale optymalny wybór zależy od potrzeb w zakresie wydajności zadań: liczby kroków zadania, liczby docelowych zadań i tego, jak często są uruchamiane zadania.
Jeśli operacje względem bazy danych zadań są wolniejsze niż oczekiwano, monitoruj wydajność bazy danych i wykorzystanie zasobów w bazie danych zadań w okresach spowolnienia przy użyciu witryny Azure Portal lub sys.dm_db_resource_stats widoku DMV. Jeśli wykorzystanie zasobu, takiego jak procesor CPU, operacje we/wy danych lub zapis dzienników zbliża się do 100% i jest skorelowane z okresami spowolnienia, rozważ przyrostowe skalowanie bazy danych do wyższych celów usługi (w modelu zakupów opartym na jednostkach DTU lub w modelu zakupów rdzeni wirtualnych), dopóki wydajność bazy danych zadań nie zostanie wystarczająco zwiększona.
Ważne
Nie należy modyfikować istniejących obiektów ani tworzyć nowych obiektów w bazie danych zadań, chociaż można je odczytać z tabel na potrzeby raportowania i analizy.
Zadania elastyczne i kroki zadania
Zadanie to jednostka pracy, która jest wykonywana na podstawie harmonogramu lub jako zadanie jednorazowe. Zadanie składa się z co najmniej jednego kroku zadania.
Każdy krok zadania określa skrypt T-SQL do wykonania, co najmniej jedną grupę docelową, względem której ten skrypt będzie uruchamiany, oraz poświadczenia wymagane dla agenta zadań do nawiązania połączenia z docelową bazą danych. Każdy krok zadania posiada możliwy do dostosowania limit czasu i zasady ponawiania oraz pozwala na opcjonalne określenie parametrów wyjściowych.
Obiekty docelowe zadań elastycznych
Zadania elastyczne umożliwiają równoległe uruchamianie co najmniej jednego skryptu języka T-SQL w dużej liczbie baz danych zgodnie z harmonogramem lub na żądanie. Obiektem docelowym może być dowolna warstwa usługi Azure SQL Database.
Zaplanowane zadania można uruchamiać dla dowolnej kombinacji baz danych: co najmniej jednej pojedynczej bazy danych, wszystkich baz danych na serwerze, wszystkich baz danych w elastycznej puli z dodatkową elastycznością dołączania lub wykluczania dowolnej konkretnej bazy danych. Zadania można wykonywać na wielu serwerach, w wielu pulach, a nawet w obrębie baz danych w ramach różnych subskrypcji. Serwery i pule są dynamicznie wyliczane w czasie wykonywania, więc zadania są uruchamiane względem wszystkich baz danych, które istnieją w docelowej grupie w czasie wykonywania.
Na poniższej ilustracji przedstawiono agenta zadań wykonującego zadania w ramach różnych typów grup docelowych:
Grupa docelowa
Grupa docelowa definiuje zestaw baz danych, względem którego będzie wykonywany krok zadania. Grupa docelowa może zawierać dowolną liczbę i kombinację następujących elementów:
- Serwer logiczny SQL — jeśli określono serwer, wszystkie bazy danych, które istnieją na serwerze w czasie wykonywania zadania, są częścią grupy. Należy
master
podać poświadczenia bazy danych, aby można było wyliczyć i zaktualizować grupę przed wykonaniem zadania. Aby uzyskać więcej informacji na temat serwerów logicznych, zobacz Co to jest serwer logiczny w usługach Azure SQL Database i Azure Synapse? - Elastyczna pula — jeśli elastyczna pula jest określona, wszystkie bazy danych istniejące w niej w czasie wykonywania zadania są częścią grupy. Jeśli chodzi o serwer, należy podać poświadczenia bazy danych,
master
aby można było zaktualizować grupę przed wykonaniem zadania. - Pojedyncza baza danych — określ co najmniej jedną pojedynczą bazę danych, która będzie należeć do grupy.
Napiwek
W momencie wykonywania zadania za pomocą dynamicznego wyliczania ma miejsce ponowne obliczenie zestawu baz danych w grupach docelowych, które zawierają serwery lub pule. Pozwala to zapewnić, że zadania są uruchamiane we wszystkich bazach danych, które istnieją na serwerze lub w puli w czasie wykonywania zadania. Ponowne obliczanie listy baz danych w czasie wykonywania jest szczególnie przydatne w scenariuszach, w których często zmienia się członkostwo w puli lub na serwerze.
Pule i pojedyncze bazy danych można określić jako uwzględnione lub wykluczone z grupy. Umożliwia to tworzenie grupy docelowej z dowolną kombinacją baz danych. Na przykład możesz dodać serwer do grupy docelowej, ale wykluczyć określone bazy danych znajdujące się w elastycznej puli (lub wykluczyć całą pulę).
Grupa docelowa może zawierać bazy danych znajdujące się w wielu subskrypcjach i regionach. Wykonania między regionami mają większe opóźnienie niż wykonania w tym samym regionie.
W poniższych przykładach pokazano, jak różne definicje grup docelowych są dynamicznie wyliczane w momencie wykonania zadania w celu określenia baz danych do uruchomienia w ramach zadania:
- Przykład 1 przedstawia grupę docelową, która zawiera listę poszczególnych baz danych. Gdy krok zadania jest wykonywany przy użyciu tej grupy docelowej, akcja kroku zadania zostanie wykonana w każdej z tych baz danych.
- Przykład 2 przedstawia grupę docelową zawierającą serwer jako docelowy. Gdy krok zadania jest wykonywany przy użyciu tej grupy docelowej, serwer jest dynamicznie wyliczany w celu określenia listy baz danych, które obecnie znajdują się na serwerze. Akcja kroku zadania zostanie wykonana w każdej z tych baz danych.
- Przykład 3 zawiera grupę docelową podobną do przykładu 2 z wykluczeniem pojedynczej bazy danych. Akcja kroku zadania nie zostanie wykonana w wykluczonej bazie danych.
- Przykład 4 przedstawia grupę docelową, która zawiera elastyczną pulę jako obiekt docelowy. Podobnie jak w przykładzie 2, pula będzie dynamicznie wyliczana w momencie uruchomienia zadania w celu określenia listy baz danych w puli.
- Przykład 5 i przykład 6 pokazują zaawansowane scenariusze, w których można łączyć serwery, pule elastyczne i bazy danych przy użyciu reguł dołączania i wykluczania.
Uwaga
Sama baza danych zadań może być celem zadania. W tym scenariuszu baza danych zadań jest traktowana tak samo jak każda inna docelowa baza danych. Użytkownik zadania musi zostać utworzony i udzielony wystarczające uprawnienia w bazie danych zadań, a poświadczenia o zakresie bazy danych dla użytkownika zadania muszą również istnieć w bazie danych zadań, podobnie jak w przypadku każdej innej docelowej bazy danych.
Uwierzytelnianie
Wybierz jedną metodę dla wszystkich obiektów docelowych agenta zadań elastycznych. Na przykład w przypadku jednego agenta zadań elastycznych nie można skonfigurować jednego serwera docelowego do używania poświadczeń o zakresie bazy danych, a drugiego do korzystania z uwierzytelniania identyfikatora Entra firmy Microsoft.
Agent zadań elastycznych może łączyć się z serwerami/bazami danych określonymi przez grupę docelową za pomocą dwóch opcji uwierzytelniania:
- Użyj uwierzytelniania microsoft Entra (dawniej Azure Active Directory) z tożsamością zarządzaną przypisaną przez użytkownika (UMI).
- Użyj poświadczeń o zakresie bazy danych.
Uwierzytelnianie za pośrednictwem tożsamości zarządzanej przypisanej przez użytkownika (UMI)
Microsoft Entra (dawniej Azure Active Directory) uwierzytelnianie za pośrednictwem tożsamości zarządzanej przypisanej przez użytkownika (UMI) jest zalecaną opcją łączenia zadań elastycznych z usługą Azure SQL Database. Dzięki obsłudze identyfikatorów Entra firmy Microsoft agent zadania będzie mógł łączyć się z docelowymi bazami danych (bazami danych, serwerami, elastycznymi pulami) i wyjściowymi bazami danych przy użyciu interfejsu użytkownika.
Opcjonalnie uwierzytelnianie microsoft Entra ID można również włączyć na serwerze logicznym zawierającym bazę danych zadań elastycznych na potrzeby uzyskiwania dostępu do tej bazy danych/wykonywania zapytań względem tej bazy danych za pośrednictwem połączeń Microsoft Entra ID. Jednak sam agent zadania używa wewnętrznego uwierzytelniania opartego na certyfikatach w celu nawiązania połączenia z bazą danych zadań.
Możesz utworzyć jeden interfejs użytkownika lub użyć istniejącego interfejsu użytkownika i przypisać ten sam interfejs użytkownika do wielu agentów zadań. Tylko jeden interfejs użytkownika jest obsługiwany dla każdego agenta zadań. Po przypisaniu interfejsu użytkownika do agenta zadań agent zadań agent zadań będzie używać tej tożsamości tylko do nawiązywania połączenia i uruchamiania zadań t-SQL w docelowych bazach danych. Uwierzytelnianie SQL nie będzie używane na serwerze docelowym/bazach danych tego agenta zadań.
Nazwa UMI musi zaczynać się literą lub cyfrą i długością od 3 do 128. Może zawierać -
znaki i _
.
Aby uzyskać więcej informacji na temat usługi UMI w usłudze Azure SQL Database, zobacz Tożsamości zarządzane dla usługi Azure SQL, w tym kroki wymagane i korzyści wynikające z używania interfejsu użytkownika jako tożsamości serwera logicznego usługi Azure SQL Database. Aby uzyskać więcej informacji, zobacz Korzystanie z uwierzytelniania usługi Microsoft Entra.
Ważne
W przypadku korzystania z uwierzytelniania identyfikatora Entra firmy Microsoft utwórz użytkownika jobuser
na podstawie tego identyfikatora Entra firmy Microsoft w każdej docelowej bazie danych. Przyznaj temu użytkownikowi uprawnienia wymagane do wykonania zadań w każdej docelowej bazie danych.
Używanie tożsamości zarządzanej przypisanej przez system (SMI) nie jest obsługiwane.
Uwierzytelnianie za pomocą poświadczeń o zakresie bazy danych
Chociaż uwierzytelnianie w usłudze Microsoft Entra (dawniej Azure Active Directory) jest zalecaną opcją, zadania można skonfigurować do używania poświadczeń o zakresie bazy danych do łączenia się z bazami danych określonymi przez grupę docelową po wykonaniu. Przed październikiem 2023 r. poświadczenia o zakresie bazy danych były jedyną opcją uwierzytelniania.
Jeśli grupa docelowa zawiera serwery lub pule, te poświadczenia o zakresie bazy danych są używane do nawiązywania połączenia z bazą master
danych w celu wyliczenia dostępnych baz danych.
- Poświadczenia o zakresie bazy danych muszą zostać utworzone w bazie danych zadań.
- Wszystkie docelowe bazy danych muszą mieć identyfikator logowania z wystarczającymi uprawnieniami do pomyślnego ukończenia zadania (
jobuser
na poniższym diagramie). - Poświadczenia utworzone w docelowych bazach danych (
LOGIN
i dlamasteruser
iPASSWORD
jobuser
na poniższym diagramie) powinny być zgodne zIDENTITY
poświadczeniami utworzonymi w bazie danych zadań iSECRET
. - Poświadczenia mogą być ponownie używane w zadaniach, a hasła poświadczeń są szyfrowane i zabezpieczone przed użytkownikami, którzy mają dostęp tylko do odczytu do obiektów zadań.
Poniższa ilustracja została zaprojektowana w celu ułatwienia zrozumienia konfigurowania odpowiednich poświadczeń zadania oraz sposobu łączenia agenta zadań elastycznych przy użyciu poświadczeń bazy danych jako uwierzytelniania do logowania/użytkowników na serwerach docelowych/bazach danych.
Uwaga
Podczas korzystania z poświadczeń o zakresie bazy danych pamiętaj, aby utworzyć użytkownika jobuser
w każdej docelowej bazie danych.
Prywatne punkty końcowe zadań elastycznych
Agent zadań elastycznych obsługuje prywatne punkty końcowe zadań elastycznych. Utworzenie prywatnego punktu końcowego zadań elastycznych powoduje utworzenie łącza prywatnego między zadaniem elastycznym a serwerem docelowym. Funkcja prywatnych punktów końcowych zadań elastycznych różni się od usługi Azure Private Link.
Funkcja prywatnych punktów końcowych zadania elastycznego obsługuje połączenia prywatne z serwerami docelowymi/wyjściowymi, tak aby agent zadania mógł nadal uzyskiwać do nich dostęp nawet wtedy, gdy opcja "Odmów dostępu publicznego" jest włączona. Korzystanie z prywatnych punktów końcowych jest również jednym z możliwych rozwiązań, jeśli chcesz wyłączyć opcję "Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera".
Prywatne punkty końcowe zadań elastycznych obsługują wszystkie opcje uwierzytelniania agenta zadań elastycznych.
Funkcja prywatnego punktu końcowego zadania elastycznego umożliwia wybranie prywatnego punktu końcowego zarządzanego przez usługę w celu ustanowienia bezpiecznego połączenia między agentem zadania a jego serwerami docelowymi/wyjściowymi. Prywatny punkt końcowy zarządzany przez usługę jest prywatnym adresem IP w ramach określonej sieci wirtualnej i podsieci. Jeśli zdecydujesz się używać prywatnych punktów końcowych na jednym z serwerów docelowych/wyjściowych agenta zadania, prywatny punkt końcowy zarządzany przez usługę jest tworzony przez firmę Microsoft. Ten prywatny punkt końcowy jest następnie używany wyłącznie przez agenta zadań do łączenia i wykonywania zadań lub zapisywania danych wyjściowych zadania w tych docelowych/wyjściowych bazach danych.
Prywatne punkty końcowe zadań elastycznych można tworzyć i zezwalać za pośrednictwem witryny Azure Portal. Serwery docelowe połączone za pośrednictwem łącza prywatnego mogą znajdować się w dowolnym miejscu na platformie Azure, nawet w różnych lokalizacjach geograficznych i subskrypcjach. Aby umożliwić tę komunikację, należy utworzyć prywatny punkt końcowy dla każdego żądanego serwera docelowego i serwera wyjściowego zadania.
Aby zapoznać się z samouczkiem dotyczącym konfigurowania nowego prywatnego punktu końcowego zarządzanego przez usługę dla zadań elastycznych, zobacz Konfigurowanie prywatnego punktu końcowego zadań elastycznych usługi Azure SQL.
Wymagania dotyczące prywatnych punktów końcowych zadań elastycznych
- Aby użyć prywatnego punktu końcowego zadań elastycznych, zarówno agent zadań, jak i serwery docelowe/bazy danych muszą być hostowane na platformie Azure (tym samym lub w różnych regionach) i w tym samym typie chmury (na przykład zarówno w chmurze publicznej, jak i w chmurze dla instytucji rządowych).
Microsoft.Network
dostawca zasobów musi być zarejestrowany dla subskrypcji hosta zarówno agenta zadań, jak i serwerów docelowych/wyjściowych.- Prywatne punkty końcowe zadań elastycznych są tworzone na serwer docelowy/wyjściowy. Należy je zatwierdzić, zanim agent zadań elastycznych będzie mógł ich używać. Można to zrobić za pośrednictwem okienka Sieć tego serwera logicznego lub preferowanego klienta. Następnie agent zadań elastycznych będzie mógł uzyskać dostęp do wszystkich baz danych na tym serwerze przy użyciu połączenia prywatnego.
- Połączenie agenta zadań elastycznych z bazą danych zadań nie będzie używać prywatnego punktu końcowego. Sam agent zadania używa wewnętrznego uwierzytelniania opartego na certyfikatach w celu nawiązania połączenia z bazą danych zadań. Jednym z zastrzeżeń jest dodanie bazy danych zadań jako członka grupy docelowej. Następnie zachowuje się jako zwykły element docelowy, który należy skonfigurować z prywatnym punktem końcowym zgodnie z potrzebami.
Uprawnienia bazy danych zadań elastycznych
Podczas tworzenia agenta zadań w bazie danych zadań są tworzone schematy, tabele i rola o nazwie jobs_reader. Rola jest tworzona przy użyciu następujących uprawnień i została zaprojektowana tak, aby zapewnić administratorom bardziej precyzyjną kontrolę dostępu na potrzeby monitorowania zadań. Administratorzy mogą zapewnić użytkownikom możliwość monitorowania wykonywania zadań przez dodanie ich do roli jobs_reader w bazie danych zadań.
Nazwa roli | jobs uprawnienia schematu |
jobs_internal uprawnienia schematu |
---|---|---|
jobs_reader |
SELECT |
Brak |
Uwaga
Nie należy aktualizować wewnętrznych widoków wykazu w bazie danych zadań, takich jak jobs.target_group_members. Ręczne zmienianie tych widoków wykazu może uszkodzić bazę danych zadań i spowodować niepowodzenie. Te widoki są przeznaczone tylko do wykonywania zapytań tylko do odczytu. Procedury składowane w bazie danych zadań umożliwiają dodawanie/usuwanie grup docelowych/członków, takich jak jobs.sp_add_target_group_member.
Ważne
Przed przyznaniem podwyższonego poziomu dostępu do bazy danych zadań należy wziąć pod uwagę implikacje dotyczące zabezpieczeń. Złośliwy użytkownik z uprawnieniami do tworzenia lub edytowania zadań może utworzyć lub edytować zadanie, które używa przechowywanych poświadczeń do łączenia się z bazą danych pod kontrolą złośliwego użytkownika, co może umożliwić złośliwemu użytkownikowi określenie hasła poświadczeń lub wykonanie złośliwych poleceń.
Monitorowanie zadań elastycznych
Agent zadań elastycznych ma integrację z alertami platformy Azure dla powiadomień o stanie zadania, upraszczając rozwiązanie do monitorowania stanu i historii wykonywania zadania.
Witryna Azure Portal ma również nowe, dodatkowe funkcje do obsługi zadań elastycznych i monitorowania zadań. Na stronie Przegląd agenta zadań elastycznych są wyświetlane najnowsze wykonania zadań, jak pokazano na poniższym zrzucie ekranu.
Reguły alertów usługi Azure Monitor można tworzyć za pomocą witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu PowerShell i interfejsu API REST. Metryka Zadania elastyczne niepowodzenie to dobry punkt wyjścia do monitorowania i odbierania alertów dotyczących wykonywania zadań elastycznych. Ponadto możesz zdecydować się na alerty za pomocą konfigurowalnej akcji, takiej jak SMS lub e-mail, przez obiekt Alert platformy Azure. Aby uzyskać więcej informacji, zobacz Tworzenie alertów dla usługi Azure SQL Database w witrynie Azure Portal.
Aby zapoznać się z przykładem, zobacz Tworzenie, konfigurowanie zadań elastycznych i zarządzanie nimi.
Dane wyjściowe zadania
Wyniki wykonywania kroków zadania w każdej docelowej bazie danych są szczegółowo rejestrowane, a dane wyjściowe skryptu mogą zostać przechwycone w określonej tabeli. Możesz określić bazę danych, aby zapisać wszystkie dane zwrócone z zadania.
Historia zadania
Wyświetl historię wykonywania zadań elastycznych w bazie danych zadań, wykonując zapytanie względem tabeli jobs.job_executions
. Zadanie oczyszczania systemu czyści historię wykonywania, która jest starsza niż 45 dni. Aby ręcznie usunąć historię mniej niż 45 dni, wykonaj procedurę sp_purge_jobhistory
składowaną w bazie danych zadań.
Stan zadania
Wykonywanie zadań elastycznych można monitorować w bazie danych zadań, wykonując zapytanie względem tabeli jobs.job_executions
.
Najlepsze rozwiązania
Podczas pracy z elastycznymi zadaniami bazy danych należy wziąć pod uwagę następujące najlepsze rozwiązania.
Najlepsze rozwiązania dotyczące zabezpieczeń
- Ogranicz użycie interfejsów API do tych zaufanych.
- Poświadczenia powinny mieć możliwie najmniejsze uprawnienia niezbędne do wykonania kroku zadania. Aby uzyskać więcej informacji, zobacz Autoryzacja i uprawnienia.
- W przypadku korzystania z elementu członkowskiego grupy docelowej serwera i/lub puli zdecydowanie zaleca się utworzenie oddzielnego poświadczenia z prawami do
master
bazy danych do wyświetlania/wyświetlania baz danych używanych do rozszerzania list baz danych serwerów i/lub puli przed wykonaniem zadania.
Wydajność zadań elastycznych
Zadania elastyczne używają minimalnych zasobów obliczeniowych podczas oczekiwania na ukończenie długotrwałych zadań.
W zależności od rozmiaru docelowej grupy baz danych i żądanego czasu wykonania zadania (liczba współbieżnych procesów roboczych) agent wymaga różnych ilości zasobów obliczeniowych i wydajności bazy danych zadań (tym więcej obiektów docelowych i większa liczba zadań, tym większa ilość wymaganych zasobów obliczeniowych).
Warstwy pojemności współbieżnych
Począwszy od października 2023 r., agent zadań elastycznych ma wiele warstw wydajności, aby umożliwić zwiększenie pojemności.
Przyrosty pojemności wskazują łączną liczbę współbieżnych baz danych docelowych, z którymi agent zadań może nawiązać połączenie i uruchomić zadanie. Aby uzyskać więcej współbieżnych połączeń docelowych na potrzeby wykonywania zadania, uaktualnij warstwę agenta zadań z domyślnej warstwy JA100, która ma limit 100 współbieżnych połączeń docelowych.
Większość środowisk wymaga w dowolnym momencie mniej niż 100 współbieżnych zadań, więc ja100 jest domyślną wartością.
Warstwa agenta zadań elastycznych | Maksymalna liczba współbieżnych zadań |
---|---|
JA100 |
100 |
JA200 |
200 |
JA400 |
400 |
JA800 |
800 |
Przekroczenie warstwy pojemności współbieżności agenta zadania z miejscami docelowymi zadań spowoduje utworzenie opóźnień kolejkowania dla niektórych docelowych baz danych/serwerów. Jeśli na przykład uruchomisz zadanie z 110 miejscami docelowymi w warstwie JA100, 10 miejsc docelowych będzie czekać na rozpoczęcie do zakończenia innych.
Cel warstwy lub usługi agenta zadań elastycznych można modyfikować za pośrednictwem witryny Azure Portal, programu PowerShell lub interfejsu API REST agentów zadań. Aby zapoznać się z przykładem, zobacz Skalowanie agenta zadania.
Ograniczanie wpływu zadania na pule elastyczne
Aby upewnić się, że zasoby nie są przeciążone podczas uruchamiania zadań względem baz danych w elastycznej puli usługi Azure SQL Database, zadania można skonfigurować tak, aby ograniczyć liczbę baz danych, względem których zadanie może być uruchamiane jednocześnie.
Ustaw liczbę współbieżnych baz danych, na których jest uruchamiane zadanie, ustawiając sp_add_jobstep
parametr procedury @max_parallelism
składowanej w języku T-SQL.
Skrypty idempotentne
Skrypty T-SQL zadania elastycznego muszą być idempotentne. Idempotent oznacza, że jeśli skrypt zakończy się pomyślnie i zostanie uruchomiony ponownie, wystąpi ten sam wynik. Skrypt może zakończyć się niepowodzeniem z powodu przejściowych problemów z siecią. W takim przypadku zadanie automatycznie ponowi próbę uruchomienia skryptu wstępnie zdefiniowaną liczbę razy przed zaniechaniem. Skrypt idempotentny ma ten sam wynik, nawet jeśli został pomyślnie uruchomiony dwa razy (lub więcej).
Prostym sposobem jest sprawdzenie istnienia obiektu przed jego utworzeniem. Poniżej przedstawiono hipotetyczny przykład:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE [name] = N'some_object')
print 'Object does not exist'
-- Create the object
ELSE
print 'Object exists'
-- If it exists, drop the object before recreating it.
Podobnie musi być możliwe pomyślne wykonanie skryptu przez logiczne testowanie wszystkich znalezionych warunków i reagowanie na nie.
Ograniczenia
Są to bieżące ograniczenia usługi zadań elastycznych. Aktywnie pracujemy nad usunięciem jak największej liczby tych ograniczeń.
Problem | opis |
---|---|
Agent zadań elastycznych musi zostać ponownie utworzony i uruchomiony w nowym regionie po przejściu w tryb failover/przeniesieniu do nowego regionu świadczenia usługi Azure. | Usługa zadań elastycznych przechowuje wszystkie metadane agenta zadania i zadania w bazie danych zadań. Każde przejście w tryb failover lub przeniesienie zasobów platformy Azure do nowego regionu platformy Azure spowoduje również przeniesienie bazy danych zadań, agenta zadań i metadanych zadań do nowego regionu świadczenia usługi Azure. Jednak agent zadań elastycznych jest tylko zasobem obliczeniowym i musi zostać jawnie utworzony i uruchomiony w nowym regionie, zanim zadania zostaną uruchomione ponownie w nowym regionie. Po uruchomieniu agent zadań elastycznych wznowi wykonywanie zadań w nowym regionie zgodnie z wcześniej zdefiniowanym harmonogramem zadań. |
Nadmierne dzienniki inspekcji z bazy danych zadań | Agent zadań elastycznych działa przez ciągłe sondowanie bazy danych zadań w celu sprawdzenia przybycia nowych zadań i innych operacji CRUD. Jeśli inspekcja jest włączona na serwerze zawierającym bazę danych zadań, duża liczba dzienników inspekcji może być generowana przez bazę danych zadań. Można temu zapobiec, filtrując te dzienniki inspekcji przy użyciu Set-AzSqlServerAudit polecenia z wyrażeniem predykatu.Na przykład: Set-AzSqlServerAudit -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -BlobStorageTargetState Enabled -StorageAccountResourceId "/subscriptions/7fe3301d-31d3-4668-af5e-211a890ba6e3/resourceGroups/resourcegroup01/providers/Microsoft.Storage/storageAccounts/mystorage" -PredicateExpression "database_principal_name <> '##MS_JobAccount##'" To polecenie będzie filtrować agenta zadań tylko do zadań dzienników inspekcji bazy danych, a nie agenta zadań do żadnych docelowych dzienników inspekcji baz danych. |
Używanie bazy danych Hiperskala jako bazy danych zadań | Używanie bazy danych w warstwie Hiperskala jako bazy danych zadań nie jest obsługiwane. Jednak zadania elastyczne mogą być przeznaczone dla baz danych w warstwie Hiperskala w taki sam sposób, jak każda inna baza danych w usłudze Azure SQL Database. |
Bezserwerowe bazy danych i automatyczne wstrzymanie zadań elastycznych. | Automatyczna wstrzymywanie bezserwerowej bazy danych nie jest obsługiwana jako baza danych zadań. Bezserwerowe bazy danych objęte zadaniami elastycznymi obsługują automatyczne wstrzymanie i będą wznawiane przez połączenia zadań. |
Eksportowanie bazy danych zadań do pliku BACPAC | Eksportowanie bazy danych zadań do pliku BACPAC nie jest obsługiwane. Jeśli program SQL Server zawierający bazę danych zadań musi zostać wyeksportowany, baza danych zadań powinna zostać porzucona najpierw przed wyeksportowaniem serwera. |
Powiązana zawartość
- Jak tworzyć zadania elastyczne i zarządzać nimi
- Automatyzowanie zadań zarządzania w usłudze Azure SQL
- Tworzenie zadań elastycznych i zarządzanie nimi przy użyciu programu PowerShell
- Tworzenie zadań elastycznych i zarządzanie nimi przy użyciu języka T-SQL