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.
In diesem Artikel wird beschrieben, wie Sie die SQL Server-Datenbanken verwalten und überwachen, die von Azure Backup mithilfe der REST-API gesichert werden. Sie können auch das Azure CLI - und Azure-Portal verwenden, um SQL-Datenbanksicherungen zu verwalten.
Informationen zu den derzeit von uns unterstützten Sicherungs- und Wiederherstellungsszenarien finden Sie in der Support-Matrix. Allgemeine Fragen finden Sie in den häufig gestellten Fragen.
Aufträge überwachen
Der Azure Backup-Dienst löst Aufträge aus, die im Hintergrund ausgeführt werden. Dies umfasst Szenarien wie das Auslösen von Sicherungen, Wiederherstellungsvorgängen und das Deaktivieren der Sicherung. Sie können diese Aufträge mit ihren IDs nachverfolgen. Erfahren Sie mehr über Verwalten von Sicherungs- und Wiederherstellungsaufträgen.
Abrufen von Jobinformationen aus Vorgängen
Ein Vorgang, wie etwa das Auslösen einer Sicherung, gibt als Antwort eine Auftrags-ID zurück.
Die letzte Antwort eines REST-API-Vorgangs zum Auslösen einer Sicherung lautet beispielsweise wie folgt:
{
"id": "cd2a3b13-d392-4e81-86ac-02ea91cc70b9",
"name": "cd2a3b13-d392-4e81-86ac-02ea91cc70b9",
"status": "Succeeded",
"startTime": "2018-05-28T11:43:21.6516182Z",
"endTime": "2018-05-28T11:43:21.6516182Z",
"properties": {
"objectType": "OperationStatusJobExtendedInfo",
"jobId": "c22eca5d-0c1c-48a0-a40d-69bef708d92a"
}
}
Der Sicherungsauftrag wird anhand des Felds jobId identifiziert und kann, wie hier beschrieben, mit einer GET-Anforderung nachverfolgt werden.
Nachverfolgen des Auftrags
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}?api-version=2016-12-01
Die {jobName} ist die oben erwähnte jobId. Die Antwort lautet immer 200 (OK), und im Feld Status wird der Status des Auftrags angegeben. Sobald es Completed oder CompletedWithWarnings ist, werden im Abschnitt extendedInfo weitere Auftragsdetails angezeigt.
GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/Microsoft.RecoveryServices/vaults/SQLServer2012/backupJobs/c22eca5d-0c1c-48a0-a40d-69bef708d92a?api-version=2016-12-01
Antwort
| Name | Typ | BESCHREIBUNG |
|---|---|---|
| 200 – OK | JobResource (Englisch) | OKAY |
Beispielantwort
Wenn der GET-URI übermittelt wird, wird die Antwort „200“ zurückgegeben.
HTTP/1.1 200 OK
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id: e057b496-8ceb-45b6-bd9e-367f7dd73d6d
x-ms-client-request-id: 1ffda117-b2c0-4a80-a9ba-43ba66eaec9b; 1ffda117-b2c0-4a80-a9ba-43ba66eaec9b
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 14999
x-ms-correlation-request-id: e057b496-8ceb-45b6-bd9e-367f7dd73d6d
x-ms-routing-request-id: SOUTHINDIA:20180528T115536Z:e057b496-8ceb-45b6-bd9e-367f7dd73d6d
Cache-Control: no-cache
Date: Mon, 28 May 2018 11:55:35 GMT
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupJobs/c22eca5d-0c1c-48a0-a40d-69bef708d92a",
"name": "c22eca5d-0c1c-48a0-a40d-69bef708d92a",
"type": "Microsoft.RecoveryServices/vaults/backupJobs",
"properties": {
"jobType": "AzureWorkloadJob",
"workloadType": "SQLDataBase",
"duration": "00:03:13.6439467",
"actionsInfo": [
1
],
"errorDetails": [
{
"errorCode": 510008,
"errorString": "Operation cancelled as a conflicting operation was already running on the same database.",
"errorTitle": "OperationCancelledBecauseConflictingOperationRunningUserError",
"recommendations": [
"Please try again after sometime."
]
}
],
"extendedInfo": {
"tasksList": [
{
"taskId": "Transfer data to vault",
"status": "Failed"
}
],
"propertyBag": {
"Data Transferred (in MB)": "0"
}
},
"entityFriendlyName": "MSSQLSERVER/msDB [sqlserver-0.contoso.com]",
"backupManagementType": "AzureWorkload",
"operation": "Backup (Full)",
"status": "Failed",
"startTime": "2018-05-28T11:43:21.6516182Z",
"endTime": "2018-05-28T11:46:35.2955649Z",
"activityId": "6b033cf6-f875-4c03-8985-9add07ec2845"
}
}
}
Liste geschützter SQL-Instanzen und -Datenbanken
Um SQL-Instanzen und deren Datenbanken für Snapshot-Schutz auf Instanzebene aufzulisten, verwenden Sie die API-Version 2024-01-31-preview. Ersetzen Sie die URI-Platzhalter Ihre Tresordetails. Die folgenden Beispiele zeigen ausgewählte Antwortfelder.
Geschützte SQL-Instanzen auflisten
Filtern Sie geschützte Elemente nach itemType eq 'SQLInstance':
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems?api-version=2024-01-31-preview&$filter=backupManagementType eq 'AzureWorkload' and itemType eq 'SQLInstance'
Die Antwort enthält ein value Array. Jede Instanz enthält ihren geschützten Elementnamen, den Containernamen, die Unterdatenbanken und den Schutzstatus. Beispiele:
{
"value": [
{
"name": "SQLInstance;mssqlserver",
"properties": {
"childDBList": ["MSSQLSERVER;testdb", "MSSQLSERVER;testdb1", "MSSQLSERVER;testdb2"],
"instanceProtectionReadiness": "Ready",
"friendlyName": "mssqlserver",
"serverName": "sqlserver-0",
"protectedItemType": "AzureVmWorkloadSQLInstance",
"backupManagementType": "AzureWorkload",
"workloadType": "SQLInstance",
"containerName": "VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0",
"protectionStatus": "Healthy",
"protectionState": "IRPending",
"protectedItemDataSourceId": "2265943933205758867"
}
}
]
}
Speichere die zurückgegebenen Container- und geschützten Elementnamen für spätere Anfragen. Zum Beispiel bei Punkt-in-Zeit-Wiederherstellungsabfragen, speichern Sie ebenfalls protectedItemDataSourceId.
Datenbanken auflisten, die unter einer Instanz geschützt sind
Datenbankgeschützte Objekte im Tresor auflisten:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems?api-version=2024-01-31-preview&$filter=backupManagementType eq 'AzureWorkload' and itemType eq 'SQLDatabase'
Im zurückgegebenen value Array identifizieren Sie Datenbanken, bei denen protectionLevel auf DatabaseUnderInstance gesetzt ist. Verwenden Sie parentProtectedItem, zusammen mit den Details des Containers und des Servers, um die übergeordnete Instanz zu identifizieren. Die Eigenschaften eines Datenbankelements können Folgendes umfassen:
{
"parentProtectedItem": "mssqlserver",
"protectionLevel": "DatabaseUnderInstance",
"friendlyName": "testdb",
"serverName": "sqlserver-0",
"parentName": "MSSQLSERVER",
"protectedItemType": "AzureVmWorkloadSQLDatabase",
"backupManagementType": "AzureWorkload",
"workloadType": "SQLDataBase"
}
Holen Sie sich eine geschützte SQL-Instanz
Um eine Instanz abzurufen, verwenden Sie deren zurückgegebenen Container und geschützte Itemnamen:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2024-01-31-preview
Zum Beispiel kann {protectedItemName}SQLInstance;mssqlserver sein. Die Antwort umfasst childDBList, instanceProtectionReadiness, und protectionState. Wenn das Element zur verzögerten Löschung vorgesehen ist, überprüfen Sie auch isScheduledForDeferredDelete, deferredDeleteTimeInUTC und softDeleteRetentionPeriod.
Ändern der Richtlinie
Wenn Sie die Richtlinie ändern möchten, mit der die Datenbank geschützt wird, verwenden Sie dasselbe Format wie das Aktivieren des Schutzes. Geben Sie jedoch die neue Richtlinien-ID im Anforderungskörper ein und übermitteln Sie die Anforderung. Um beispielsweise die Richtlinie von testVM von HourlyLogPolicy in ProdPolicyzu ändern, geben Sie die ProdPolicy-ID im Anforderungstext an.
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLDataBase",
"policyId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupPolicies/ProdPolicy"
},
"location": "westcentralus"
}
Die Antwort wird das zum Aktivieren des Schutzes erwähnte Format verwenden.
Ändern Sie die Richtlinie für eine snapshot-geschützte Instanz
Reichen Sie eine PUT-Anfrage für das instanzgeschützte Element ein und geben Sie die neue Snapshot-Policy-ID an:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2024-01-31-preview
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLInstance",
"protectedItemType": "AzureVmWorkloadSQLInstance",
"friendlyName": "MSSQLSERVER",
"policyId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{newPolicyName}",
"childDatabaseNameList": ["model"]
}
}
Ersetze die Platzhalter im JSON-Körper sowie im URI. Verwenden Sie die ausgewählten Datenbanknamen der Instanz in childDatabaseNameList.
Sicherung für eine SQL-Instanz fortsetzen
Um das Backup fortzusetzen, senden Sie eine PUT-Anfrage an das instanzgeschützte Element mit der Momentaufnahme der Richtlinien-ID. Das folgende Beispiel verwendet eine leere childDatabaseNameList Methode für den Wiederaufnahmevorgang:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2024-01-31-preview
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLInstance",
"protectedItemType": "AzureVmWorkloadSQLInstance",
"friendlyName": "MSSQLSERVER",
"policyId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/SQLInstanceSnapPolicy",
"childDatabaseNameList": []
}
}
Verwenden Sie den instanzgeschützten Elementnamen, z. B. SQLInstance;mssqlserver, und ersetzen Sie die Platzhalter der Policen-ID durch Ihre Tresor-/Vault-Details. Verfolgen Sie die resultierende Operation und den Job, wie in Einzelvorgänge überwachen beschrieben.
Beenden des Schutzes und Beibehalten vorhandener Daten
Wenn Sie den Schutz einer geschützten Datenbank entfernen und die bereits gesicherten Daten beibehalten möchten, entfernen Sie die Richtlinie im Anforderungstext, den Sie zum Aktivieren der Sicherung verwendet haben, und senden Sie die Anforderung. Nachdem Sie die Zuordnung zur Richtlinie entfernt haben, werden keine Sicherungen mehr ausgelöst, und es werden keine neuen Wiederherstellungspunkte mehr erstellt.
{
"properties": {
"protectedItemType": "AzureVmWorkloadSQLDatabase",
"protectionState": "ProtectionStopped",
"sourceResourceId":
"/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0",
"policyId": ""
}
}
Beispiel für eine Antwort
Das Beenden des Schutzes für eine Datenbank ist ein asynchroner Vorgang. Der Vorgang erstellt einen anderen Vorgang, der nachverfolgt werden muss. Zwei Antworten werden zurückgegeben: 202 (Akzeptiert), wenn ein anderer Vorgang erstellt wurde, und 200 (OK), wenn dieser Vorgang abgeschlossen ist.
Antwortheader bei erfolgreich akzeptiertem Vorgang:
Status Code:
OK
Headers:
Pragma : no-cache
X-Content-Type-Options : nosniff
x-ms-request-id : 388c9359-e237-4644-8f6c-38ae5eb0dfcb
x-ms-client-request-id : 5ef896e6-d812-431a-ad58-9d9ee1bb8bb3,5ef896e6-d812-431a-ad58-9d9ee1bb8bb3
Strict-Transport-Security : max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-resource-requests: 107
x-ms-correlation-request-id : 388c9359-e237-4644-8f6c-38ae5eb0dfcb
x-ms-routing-request-id : SOUTHINDIA:20211126T054036Z:388c9359-e237-4644-8f6c-38ae5eb0dfcb
Cache-Control : no-cache
Date : Fri, 26 Nov 2021 05:40:36 GMT
Server : Microsoft-IIS/10.0
X-Powered-By : ASP.NET
Body:
{
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"name": "TestOBJ",
"status": "Succeeded",
"startTime": "2021-11-26T05:36:36.5262731Z",
"endTime": "2021-11-26T05:36:36.5262731Z",
"properties": {
"objectType": "OperationStatusJobExtendedInfo",
"jobId": "68178d86-d564-460b-9643-829046aac1b1"
}
}
Verfolgen Sie dann den resultierenden Vorgang mithilfe des Location-Headers oder des Azure-AsyncOperation-Headers mit einem GET-Befehl:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupoperations/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e?api-version=2016-12-01
Antwortkörper
{
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"name": "TestOBJ",
"status": "Succeeded",
"startTime": "2021-11-26T05:36:36.5262731Z",
"endTime": "2021-11-26T05:36:36.5262731Z",
"properties": {
"objectType": "OperationStatusJobExtendedInfo",
"jobId": "68178d86-d564-460b-9643-829046aac1b1"
}
}
Schutz für eine Datenbank beenden, die durch eine Instanz geschützt ist
Für eine Datenbank, die durch eine Instanz-Momentaufnahmen-Richtlinie geschützt ist, senden Sie eine PUT-Anfrage an das Datenbank-Schutzelement, nicht an das Instanzelement:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}/protectedItems/SQLDatabase;MSSQLSERVER;tdb2?api-version=2024-01-31-preview
Setzen protectionState Sie auf ProtectionStopped und fügen Sie die Momentaufnahmen-Richtlinien-ID der Instanz ein:
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLDataBase",
"friendlyName": "MSSQLSERVER;tdb2",
"protectedItemType": "AzureVmWorkloadSQLDatabase",
"protectionState": "ProtectionStopped",
"policyId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/SQLInstanceSnapPolicy"
}
}
Ersetzen Sie den Namen des Beispiel-Datenbankelements durch den für Ihre Datenbank zurückgegebenen Namen und ersetzen Sie die Platzhalter der Policen-ID. Dieser Vorgang beendet den Schutz, wobei vorhandene Backup-Daten beibehalten werden. Verfolgen Sie den asynchronen Vorgang, wie zuvor in diesem Abschnitt beschrieben.
Schutz beenden und Sicherungsdaten löschen
Führen Sie einen Löschvorgang aus, um den Schutz aus einer geschützten Dateifreigabe zu entfernen und die Sicherungsdaten ebenfalls zu löschen.
DELETE https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2019-05-13
Die Parameter containerName und protectedItemName werden im Sicherungsschritt konfigurieren in diesem Artikel festgelegt.
Antworten
Das Löschen des Schutzes ist ein asynchroner Vorgang. Der Vorgang erstellt einen anderen Vorgang, der separat nachverfolgt werden muss. Es gibt zwei Antworten zurück: 202 (Akzeptiert) beim Erstellen eines anderen Vorgangs und 204 (NoContent), wenn dieser Vorgang abgeschlossen ist.
Nächste Schritte
- Erfahren Sie, wie Sie Probleme beim Konfigurieren der Sicherung für SQL Server-Datenbanken beheben.