Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure SQL-Datenbank
Dieser Artikel erklärt das Verhalten der automatischen Pause und des automatischen Fortlaufens für die serverlose Compute-Stufe in Azure SQL-Datenbank und wie diese mit verschiedenen Funktionen der Azure SQL-Datenbank interagiert.
Derzeit ist die General Purpose Service Tier die einzige Service-Stufe, die serverloses automatisches Pausieren und automatisches Fortsetzen unterstützt.
Um den Zustand einer serverlosen Datenbank zu überwachen, siehe Monitor pause und resume status.
Automatisches Anhalten
Die automatische Pause beginnt, wenn während der automatischen Pauseverzögerung alle folgenden Bedingungen erfüllt sind:
- Anzahl von Sitzungen: 0
- CPU = 0 für im Benutzer-Ressourcenpool ausgeführte Benutzer-Workloads
Standardmäßig gibt es eine einstündige automatische Pausenverzögerung.
Funktionen, die automatische Pause verhindern
Wenn du eine der folgenden Funktionen nutzt, deaktiviere die automatische Pause. Die Datenbank bleibt online, egal wie lange sie inaktiv ist. Die folgenden Funktionen verhindern das automatische Pausieren, aber sie unterstützen die automatische Skalierung:
- Georeplikation (aktive Georeplikation und Failovergruppen)
- Langfristige Backup-Retention (LTR)
- Ein DNS-Alias, das für den logischen Server erstellt wurde, der eine serverlose Datenbank enthält
Die folgenden Feature-Szenarien verhindern außerdem das automatische Pausieren:
- Die in SQL Datensynchronisierung verwendete Synchronisierungsdatenbank. Im Gegensatz zu einer Synchronisierungsdatenbank unterstützen die Hub- und Mitgliederdatenbanken das automatische Anhalten.
- Bei elastischen Jobs wird eine serverlose Datenbank mit aktivierter automatischer Pausierung nicht als Jobdatenbank unterstützt. Serverlose Datenbanken, auf die elastische Jobs abzielen, unterstützen das automatische Pausieren. Berufliche Verbindungen nehmen eine Datenbank wieder auf.
- Automatisches Anhalten wird während der Bereitstellung bestimmter Dienstupdates vorübergehend verhindert, die erfordern, dass die Datenbank online ist. In solchen Fällen ist das automatische Anhalten wieder zulässig, sobald das Dienstupdate abgeschlossen ist.
Automatisches Fortsetzen
Die automatische Fortsetzung wird gestartet, wenn zu irgendeinem Zeitpunkt eine der folgenden Bedingungen zutrifft:
| Funktion | Trigger für automatisches Fortsetzen |
|---|---|
| Authentifizierung und Autorisierung | Anmeldeversuch |
| Bedrohungserkennung | Aktivieren oder deaktivieren von Bedrohungserkennungseinstellungen auf Datenbank- oder Serverebene. Ändern von Einstellungen für die Bedrohungserkennung auf der Datenbank- oder Serverebene. |
| Datenerkennung und -klassifizierung | Hinzufügen, Ändern, Löschen oder Anzeigen von Vertraulichkeitsbezeichnungen |
| Überwachen | Anzeigen von Audit-Daten. Aktualisieren oder Anzeigen von Audit-Richtlinien. |
| Datenmaskierung | Hinzufügen, Ändern, Löschen oder Anzeigen von Datenmaskierungsregeln |
| Transparente Datenverschlüsselung | Anzeigen des Status der transparenten Datenverschlüsselung |
| Sicherheitsrisikobewertung | Manuell initiierte Scans und regelmäßige Scans, wenn diese aktiviert sind |
| Abfragedatenspeicher (Leistung) | Ändern oder Anzeigen der Abfragespeicher-Einstellungen |
| Empfehlungen zur Leistung | Anzeigen oder Anwenden von Empfehlungen zur Leistungsverbesserung |
| Automatische Optimierung | Anwendung und Verifikation von Auto-Tuning-Empfehlungen wie der Autoindexierung |
| Kopieren von Datenbanken | Erstelle Datenbank als Kopie. Exportieren in eine BACPAC-Datei. |
| SQL-Datensynchronisierung | Die Synchronisierung zwischen Hub- und Mitgliedsdatenbanken, die nach einem konfigurierbaren Zeitplan oder manuell ausgeführt werden |
| Ändern bestimmter Datenbankmetadaten | Hinzufügen oder Ändern von Azure-Tags in der Datenbank. Ändern von maximalen vCores, minimalen vCores oder der Autopausenverzögerung. |
| SQL Server Management Studio (SSMS) | In SSMS-Versionen vor 18.1 und beim Öffnen eines neuen Abfragefensters für jede Datenbank im Server wird jede automatisch pausierte Datenbank auf demselben Server wieder aufgenommen. Dieses Verhalten tritt nicht auf, wenn du SSMS Version 18.1 oder später verwendest. |
Überwachung, Verwaltung oder andere Lösungen, die eine dieser Operationen ausführen, lösen die automatische Wiederaufnahme aus. Die automatische Wiederaufnahme beginnt auch während der Bereitstellung einiger Service-Updates, die erfordern, dass die Datenbank online ist.
Automatische Identifizierung von Fortsetzungstriggern
Das Azure Monitor-Aktivitätsprotokoll weist Trigger für die automatische Wiederaufnahme für „Resume Databases“-Vorgänge unter der Eigenschaft Caller im JSON der Ereignisse Started und Succeeded aus. Weitere Informationen finden Sie unter Überwachen der serverlosen Computebene.
Latenz
Die Latenz liegt in der Regel bei etwa einer Minute zum automatischen Fortsetzen und 1–10 Minuten zum automatischen Pausieren. Die Latenz für die jeweiligen Vorgänge kann so gering wie die Größenordnung einer Sekunde sein.
Kundenseitig verwaltete transparente Datenverschlüsselung
Löschen oder Sperren von Schlüsseln
Wenn Sie eine vom Kunden verwaltete transparente Datenverschlüsselung verwenden (bringen Sie Ihren eigenen Schlüssel oder BYOK mit) und die serverlose Datenbank automatisch pausiert wird, wenn eine Schlüssellöschung oder -widerrufung erfolgt, bleibt die Datenbank im automatisch pausierten Zustand. Nach dem nächsten Fortsetzen der Datenbank kann in diesem Fall innerhalb von ungefähr 10 Minuten nicht mehr auf die Datenbank zugegriffen werden. Sobald der Zugriff auf die Datenbank nicht mehr möglich ist, wird der Wiederherstellungsvorgang identisch mit dem für bereitgestellte Computedatenbanken. Wenn die serverlose Datenbank beim Löschen oder Widerruf des Schlüssels online ist, wird die Datenbank innerhalb von etwa 10 Minuten ebenfalls unzugänglich, ähnlich wie bei bereitgestellten Rechendatenbanken.
Schlüsselrotation
Wenn Sie kundenverwaltete transparente Datenverschlüsselung (BYOK) verwenden und das serverlose automatische Pausieren aktivieren, wird die Datenbank automatisch fortgesetzt, sobald die Schlüssel gedreht werden. Die Datenbank pausiert dann automatisch, wenn die Bedingungen für automatische Pausen erfüllt sind.
Problembehandlung bei der automatischen Pause
Fehlerbehebung der automatischen Wiederaufnahme-Konnektivität
Wenn eine serverlose Datenbank gepausiert ist, wird beim ersten Verbindungsversuch die Datenbank wieder aufgenommen, wobei ein Fehler (Fehlercode 40613) mit dem Hinweis zurückgegeben wird, dass die Datenbank nicht verfügbar ist. Sobald die Datenbank wieder aufgenommen wird, versuchen Sie die Verbindung erneut. Datenbanken werden in der Regel in weniger als einer Minute wieder aufgenommen.
Alle cloudverbundenen Anwendungen sollten Empfehlungen zur Verbindungs-Wiederversuchslogik verwenden. Anwendungen benötigen Retry-Logik, um nach vorübergehenden Konnektivitätsfehlern erfolgreich zu sein. Die Logik des erneuten Versuchs ist besonders wichtig für serverlose Datenbanken, in denen temporäre Konnektivitätsfehler durch Auto-Resume vorhersehbar sind.
Informationen zu den Optionen und Empfehlungen für die Verbindungswiederholungslogik finden Sie unter:
- Verbindungswiederholungslogik in SqlClient
- Verbindungswiederholungslogik in SQL-Datenbank mithilfe von Entity Framework Core
- Verbindungswiederholungslogik in SQL-Datenbank mit Entity Framework 6
- Verbindungswiederholungslogik in SQL-Datenbanken mithilfe von ADO.NET
- Verbindungsresilienz in JDBC
- Verbindungsresilienz in PHP
- Verbindungsresilienz in ODBC
Fehlerbehebung der automatischen Pause
Wenn du das automatische Pausieren aktivierst und keine Funktionen nutzt, die das automatische Pausieren blockieren, aber die Datenbank nach der Verzögerungsphase nicht automatisch pausiert, könnten Anwendungs- oder Benutzersitzungen das automatische Pausieren verhindern.
Um zu sehen, ob derzeit Anwendungs- oder Benutzersitzungen mit der Datenbank verbunden sind, führen Sie folgende Abfrage aus:
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'
);
Tip
Stellen Sie nach dem Ausführen der Abfrage sicher, dass Sie die Verbindung mit der Datenbank trennen. Andernfalls verhindert die von der Abfrage verwendete geöffnete Sitzung die automatische Pause.
- Wenn die Ergebnismenge nicht leer ist, zeigt das, dass Sitzungen derzeit das automatische Pausieren verhindern.
- Wenn die Ergebnismenge leer ist, ist es dennoch möglich, dass die Sitzungen zu einem Zeitpunkt während der automatischen Pause-Verzögerungsphase irgendwann für kurze Zeit geöffnet waren. Um die Aktivität während der Verzögerungsphase zu überprüfen, verwenden Sie Auditing for Azure SQL-Datenbank und Azure Synapse Analytics und prüfen Sie die Auditdaten für den entsprechenden Zeitraum.
Important
Das Vorhandensein von offenen Sitzungen mit oder ohne gleichzeitige CPU-Auslastung im Benutzerressourcenpool ist der häufigste Grund dafür, dass eine serverlose Datenbank nicht wie erwartet automatisch angehalten wird.