Automatyczne wstrzymywanie i automatyczne wznawianie w warstwie obliczeniowej bezserwerowej w usłudze Azure SQL Database

Dotyczy:Azure SQL Database

Ten artykuł wyjaśnia sposób działania funkcji automatycznego wstrzymywania i automatycznego wznawiania dla bezserwerowej warstwy obliczeniowej w Azure SQL Database oraz ich współdziałanie z różnymi funkcjami Azure SQL Database.

  • Bezserwerowe automatyczne wstrzymywanie i automatyczne wznawianie są dostępne w warstwie usługi Ogólnego przeznaczenia.
  • Automatyczne wstrzymywanie i automatyczne wznawianie w trybie serverless są funkcją w wersji zapoznawczej usługi Azure SQL Database Hyperscale.

Aby monitorować stan bezserwerowej bazy danych, zobacz Stan wstrzymania i wznowienia.

Automatyczne wstrzymywanie

Automatyczne zatrzymanie rozpoczyna się, jeśli podczas opóźnienia automatycznego pauzowania spełnione są wszystkie następujące warunki:

  • Liczba sesji = 0
  • CPU = 0 dla obciążenia roboczego użytkownika uruchomionego w puli zasobów użytkownika

Więcej informacji można znaleźć w konfiguracji wydajności bezserwerowej.

  • W warstwie usług ogólnego przeznaczenia domyślne opóźnienie automatycznego wstrzymania wynosi 60 minut, a minimum to 15 minut.
  • W przypadku automatycznego pauzowania (podglądu) w Hyperscale, domyślne opóźnienie automatycznego pauzowania wynosi 60 minut, a minimum 60 minut.

Funkcje zapobiegające automatycznej pauzie

Jeśli korzystasz z którejkolwiek z poniższych funkcji, wyłącz automatyczne pauzowanie. Baza danych pozostaje online niezależnie od tego, jak długo jest nieaktywna. Poniższe funkcje zapobiegają automatycznemu pauzowaniu, ale obsługują automatyczne skalowanie:

Poniższe scenariusze funkcji również uniemożliwiają automatyczne pauzowanie:

  • Baza danych synchronizacji używana w SQL Data Sync. W przeciwieństwie do baz danych synchronizacji, bazy danych węzłowe i członkowskie obsługują automatyczne wstrzymanie.
  • W zadaniach elastycznych baza danych bez serwera z włączoną automatyczną pauzą nie jest obsługiwana jako baza zadań. Bezserwerowe bazy danych obsługiwane przez zadania elastyczne obsługują automatyczne wstrzymywanie. Połączenia związane z pracą wznawiają działanie bazy danych.
  • Automatyczne wstrzymanie jest tymczasowo blokowane podczas wdrażania niektórych aktualizacji usługi, które wymagają, aby baza danych była dostępna online. W takich przypadkach automatyczne wstrzymanie staje się ponownie dozwolone po zakończeniu aktualizacji usługi.

Automatyczne wznawianie

Automatyczne wznawianie rozpoczyna się, jeśli w dowolnym momencie spełniony jest którykolwiek z następujących warunków:

Funkcja Wyzwalacz automatycznego wznawiania
Uwierzytelnianie i autoryzacja Próba logowania
Wykrywanie zagrożeń Włączanie lub wyłączanie ustawień wykrywania zagrożeń na poziomie bazy danych lub serwera.
Modyfikowanie ustawień wykrywania zagrożeń na poziomie bazy danych lub serwera.
Odnajdywanie i klasyfikacja danych Dodawanie, modyfikowanie, usuwanie lub wyświetlanie etykiet poufności
Przeprowadzanie inspekcji Wyświetlanie rekordów inspekcji.
Aktualizowanie lub wyświetlanie zasad inspekcji.
Maskowanie danych Dodawanie, modyfikowanie, usuwanie lub wyświetlanie reguł maskowania danych
Transparentne szyfrowanie danych Wyświetlanie stanu lub statusu przezroczystego szyfrowania danych
Ocena luk w zabezpieczeniach Skanowanie inicjowane ręcznie i okresowe skanowania, jeśli jest włączone
Zapytywanie składnicy danych dotyczących wydajności Modyfikowanie lub wyświetlanie ustawień Query Store
Zalecenia dotyczące wydajności Wyświetlanie lub stosowanie zaleceń dotyczących wydajności
Automatyczne dostrajanie Stosowanie i weryfikacja zaleceń dotyczących automatycznego dostrajania, takich jak automatyczne indeksowanie
Kopiowanie bazy danych Utwórz bazę danych jako kopię.
Eksportuj do pliku BACPAC.
Synchronizacja danych SQL Synchronizacja między bazami danych serwera centralnego i członkowskimi, które działają zgodnie z konfigurowalnym harmonogramem lub są wykonywane ręcznie.
Modyfikowanie niektórych metadanych bazy danych Dodawanie lub modyfikowanie tagów Azure w bazie danych.
Zmiana maksymalnej liczby rdzeni wirtualnych, minimalnej liczby rdzeni wirtualnych lub opóźnienia automatycznego wstrzymywania.
SQL Server Management Studio (SSMS) W wersjach SSMS starszych niż 18.1 i otwieraniu nowego okna zapytań dla dowolnej bazy danych na serwerze, każda automatycznie wstrzymana baza danych na tym samym serwerze jest wznawiana. To zachowanie nie występuje, jeśli używasz SSMS w wersji 18.1 lub nowzej.

Monitorowanie, zarządzanie lub inne rozwiązania wykonujące którąkolwiek z tych operacji uruchamiają automatyczne wznowienie. Automatyczne wznowienie rozpoczyna się także podczas wdrażania niektórych aktualizacji usług, które wymagają aktywności bazy danych.

Automatyczne wznawianie identyfikacji wyzwalacza

Dziennik aktywności Azure Monitor udostępnia informacje o wyzwalaczach automatycznego wznawiania dla operacji Resume Databases we właściwości Caller w kodzie JSON zdarzeń Started i Succeeded. Aby uzyskać więcej informacji, zobacz artykuł Monitorowanie bezserwerowej warstwy obliczeniowej.

Opóźnienie

Opóźnienie to zazwyczaj około minuty na automatyczne wznowienie i od 1 do 10 minut na automatyczne zatrzymanie po spełnieniu kryteriów wznowienia lub pauzy. Opóźnienie dla obu operacji może wynosić zaledwie około jednej sekundy.

Przejrzyste szyfrowanie danych zarządzane przez klienta

Usuwanie lub odwoływanie klucza

Jeśli używasz transparentnego szyfrowania danych zarządzanego przez klienta (użycie własnego klucza lub BYOK), a bezserwerowa baza danych jest wstrzymana w momencie usunięcia lub unieważnienia klucza, baza danych pozostaje w stanie automatycznego wstrzymania. W takim przypadku, po wznowieniu działania bazy danych, staje się ona niedostępna w ciągu około 10 minut. Gdy baza danych stanie się niedostępna, proces odzyskiwania jest taki sam jak w przypadku aprowizowanych baz danych obliczeniowych. Jeśli bezserwerowa baza danych jest online w momencie usuwania lub cofania klucza, również staje się niedostępna w ciągu około 10 minut, podobnie jak w przypadku przydzielonych baz danych obliczeniowych.

Rotacja klucza

Jeśli używasz transparentnego szyfrowania danych zarządzanego przez klienta (BYOK) i włączysz automatyczne wstrzymywanie w trybie bezserwerowym, baza danych jest automatycznie wznawiana za każdym razem, gdy następuje rotacja kluczy. Baza danych automatycznie wstrzymuje się, gdy spełnione są warunki automatycznego pauzowania.

Rozwiązywanie problemów z automatycznym zatrzymywaniem

Rozwiązywanie problemów z automatycznym wznowieniem łączności

Jeśli baza danych bezserwerowa jest wstrzymana, pierwsza próba połączenia wznawia bazę danych i zwraca błąd informujący, że baza danych jest niedostępna z kodem błędu 40613. Gdy baza danych wznowi się, spróbuj ponownie nawiązać połączenie. Bazy danych zazwyczaj wracają w mniej niż minutę.

Wszystkie aplikacje połączone z chmurą powinny stosować zalecenia logiki powtórek połączenia. Aplikacje wymagają logiki powtórek, aby odnieść sukces po przejściowych błędach łączności. Mechanizm ponawiania jest szczególnie ważny w bezserwerowych bazach danych, gdzie tymczasowe błędy łączności spowodowane automatycznym wznawianiem są przewidywalne.

Aby uzyskać opcje logiki ponawiania prób połączenia i zalecenia, zobacz:

Rozwiązywanie problemów z automatycznym pauzowaniem

Jeśli włączysz automatyczne pauzowanie i nie używasz funkcji blokujących automatyczne pauzowanie, ale baza danych nie robi automatycznego pauzowania po upływie czasu, sesje aplikacji lub użytkowników mogą uniemożliwiać automatyczne pauzowanie.

Important

Obecność otwartych sesji, z lub bez współbieżnego wykorzystania CPU w użytkownikowej puli zasobów, to najczęstszy powód, dla którego bezserwerowa baza danych nie auto-pauzuje się zgodnie z oczekiwaniami.

Wykrywanie połączeń zapobiegających automatycznym pauzom

Aby sprawdzić, czy jakiekolwiek sesje aplikacji lub użytkowników są obecnie połączone z bazą danych, wykonaj następujące zapytanie:

SELECT session_id,
       host_name,
       program_name,
       client_interface_name,
       login_name,
       status,
       login_time,
       last_request_start_time,
       last_request_end_time
FROM sys.dm_exec_sessions AS s
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON s.group_id = wg.group_id
WHERE s.session_id <> @@SPID
      AND
      (
          (
          wg.name like 'UserPrimaryGroup.DB%'
          AND
          TRY_CAST(RIGHT(wg.name, LEN(wg.name) - LEN('UserPrimaryGroup.DB') - 2) AS int) = DB_ID()
          )
      OR
      wg.name = 'DACGroup'
      );
  • Jeśli zbiór wyników nie jest pusty, oznacza to, że sesje obecnie uniemożliwiają automatyczne pauzowanie.
  • Jeśli zbiór wyników jest pusty, nadal możliwe, że sesje były otwarte, być może przez krótki czas, wcześniej podczas okresu opóźnienia automatycznego pauzowania. Aby sprawdzić aktywność w okresie opóźnienia, użyj audytu i przeanalizuj dane audytowe za odpowiedni okres.

Wskazówka

Po uruchomieniu zapytania rozłącz się z bazą danych. W przeciwnym razie otwarta sesja używana przez zapytanie zapobiega automatycznej pauzie.

Ograniczenia

  • W obecnej wersji zapoznawczej funkcji automatycznego wstrzymywania i automatycznego wznawiania w modelu bezserwerowym dla usługi Azure SQL Database Hyperscale minimalne opóźnienie przed automatycznym wstrzymaniem wynosi 60 minut.
  • W obecnej wersji zapoznawczej automatycznego pauzowania i automatycznego wznawiania dla Azure SQL Database Hyperscale nowe bezserwerowe bazy danych Hyperscale utworzone za pomocą Azure CLI, Azure PowerShell lub interfejsu API REST otrzymują domyślne opóźnienie automatycznego pauzowania wynoszące 60 minut, jeśli nie określisz jawnie --auto-pause-delay (lub równoważnego parametru). Aby wyłączyć automatyczne wstrzymywanie, określ --auto-pause-delay -1 podczas tworzenia lub aktualizowania bazy danych. To zachowanie odzwierciedla istniejące zachowanie dla bezserwerowych serwerów ogólnego przeznaczenia.
  • W bieżącej wersji zapoznawczej automatycznego wstrzymywania i automatycznego wznawiania w trybie serverless dla usługi Azure SQL Database Hyperscale nazwane repliki nie są obsługiwane w przypadku automatycznego wstrzymywania i automatycznego wznawiania.
  • Bazy danych serverless ogólnego przeznaczenia z opóźnieniem automatycznego pauzowania krótszym niż 60 minut nie uda się uaktualnić do usługi Hyperscale serverless, chyba że zostanie określone opóźnienie automatycznego pauzowania wynoszące co najmniej 60 minut (lub -1, aby wyłączyć automatyczne pauzowanie).