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 erläutert, wie Sie eine SQL-Serverdatenbank in Azure VM aus einem von Azure Backup mithilfe der REST-API wiederherstellen.
Am Ende dieses Artikels erfahren Sie, wie Sie die folgenden Vorgänge mit der REST-API ausführen:
- Zeigen Sie die Wiederherstellungspunkte für eine gesicherte Datenbank SQL an.
- Wiederherstellen einer vollständigen SQL Datenbank.
Hinweis
Weitere Informationen zu den unterstützten Konfigurationen und Szenarien finden Sie in der Supportmatrix für SQL-Backups.
Voraussetzungen
Es wird davon ausgegangen, dass Sie über eine gesicherte SQL Datenbank für die Wiederherstellung verfügen. Wenn Sie noch keine haben, lesen Sie Sichern von SQL Server-Datenbanken in Azure-VMs mithilfe der REST-API zum Erstellen.
In diesem Artikel verwenden Sie die folgenden Ressourcen:
- Recovery Services Tresor: SQLServer2012
- Ressourcengruppe: SQLServerSelfHost
- SQL Server: sqlserver-0
- SQL-Datenbank: msdb
Wiederherstellen der primären Region
Informationen zum Auslösen eines regulären Wiederherstellungsauftrags im primären Bereich finden Sie in den folgenden Abschnitten. Informationen zur regionübergreifenden Wiederherstellung finden Sie im Abschnitt Regionübergreifende Wiederherstellung.
Abrufen von „ContainerName“ und „ProtectedItemName“
Für die meisten der wiederherzustellende API-Aufrufe müssen Sie Werte für die {containerName}
und {protectedItemName}
URI-Parameter übergeben. Verwenden Sie das ID-Attribut im Antworttext des GET backupprotectableitems-Vorgangs, um Werte für diese Parameter abzurufen. In unserem Beispiel lautet die ID der Dateifreigabe, die wir schützen wollen:
/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/sqldatabase;mssqlserver;msdb
Die Werte lassen werden also wie folgt übersetzt:
-
{containername}
: VMAppContainer; Compute; SQLServerPMDemo; sqlserver-0 -
{protectedItemName}
: sqldatabase; mssqlserver; msdb
Abrufen von Wiederherstellungspunkten für gesicherte SQL Datenbank
So stellen Sie eine gesicherte Datenbank wieder auf:
Wählen Sie einen Wiederherstellungspunkt aus, um den Wiederherstellungsvorgang durchzuführen.
Die verfügbaren Wiederherstellungspunkte eines gesicherten Elements können mithilfe des REST-API-Aufrufs Recovery Point-List aufgelistet werden. Es ist ein GET Vorgang mit allen relevanten Werten.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints?api-version=2016-12-01
Legen Sie die URI-Werte wie folgt fest:
-
{fabricName}
: Azure -
{vaultName}
: SQLServer2012 -
{containerName}
: VMAppContainer; Compute; SQLServerPMDemo; sqlserver-0 -
{protectedItemName}
: sqldatabase; mssqlserver; msdb -
{resourceGroupName}
: SQLServerSelfHost
Der GET-URI enthält alle erforderlichen Parameter. Es ist kein zusätzlicher Anforderungstext erforderlich.
GET "https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.RecoveryServices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/sqldatabase;mssqlserver;msdb/recoveryPoints?api-version=2016-12-01"
-
Beispielantwort für das Abrufen von Wiederherstellungspunkten
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: fab6cc6f-db1e-4ac1-acac-fc82ebdb1fdb
x-ms-client-request-id: 6fb93717-2876-47df-b01f-d53af5f08785; 6fb93717-2876-47df-b01f-d53af5f08785
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 14999
x-ms-correlation-request-id: fab6cc6f-db1e-4ac1-acac-fc82ebdb1fdb
x-ms-routing-request-id: SOUTHINDIA:20180604T061127Z:fab6cc6f-db1e-4ac1-acac-fc82ebdb1fdb
Cache-Control: no-cache
Date: Mon, 04 Jun 2018 06:11:26 GMT
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
{
"value": [
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/recoveryPoints/55515936059579",
"name": "55515936059579",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints",
"properties": {
"objectType": "AzureWorkloadSQLRecoveryPoint",
"recoveryPointTimeInUTC": "2018-06-01T22:15:12Z",
"type": "Full"
}
},
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/recoveryPoints/62043109781074",
"name": "62043109781074",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints",
"properties": {
"objectType": "AzureWorkloadSQLRecoveryPoint",
"recoveryPointTimeInUTC": "2018-05-31T22:15:08Z",
"type": "Full"
}
},
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/recoveryPoints/69710749096214",
"name": "69710749096214",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints",
"properties": {
"objectType": "AzureWorkloadSQLRecoveryPoint",
"recoveryPointTimeInUTC": "2018-05-30T22:15:09Z",
"type": "Full"
}
},
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/recoveryPoints/55459165802209",
"name": "55459165802209",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints",
"properties": {
"objectType": "AzureWorkloadSQLRecoveryPoint",
"recoveryPointTimeInUTC": "2018-05-29T22:15:15Z",
"type": "Full"
}
},
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/recoveryPoints/56798287946753",
"name": "56798287946753",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints",
"properties": {
"objectType": "AzureWorkloadSQLRecoveryPoint",
"recoveryPointTimeInUTC": "2018-05-28T13:18:15Z",
"type": "Full"
}
},
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/recoveryPoints/DefaultRangeRecoveryPoint",
"name": "DefaultRangeRecoveryPoint",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints",
"properties": {
"objectType": "AzureWorkloadSQLPointInTimeRecoveryPoint",
"timeRanges": [
{
"startTime": "2018-05-28T11:03:34Z",
"endTime": "2018-06-02T00:02:31Z"
}
],
"type": "Log"
}
}
]
}
Der Wiederherstellungspunkt wird durch das {name}
Feld in der obigen Antwort angegeben.
Datenbankwiederherstellung mit REST-API
Das Auslösen der Datenträgerwiederherstellung erfolgt über eine POST-Anforderung. Verwenden Sie zum Ausführen dieses Vorgangs die Triggerwiederherstellungs REST-API.
POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/restore?api-version=2019-05-13
Die Werte {containerName} und {protectedItemName} werden wie hier angegeben festgelegt, und „recoveryPointID“ ist das {name}-Feld des oben erwähnten Wiederherstellungspunkts.
POST https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerSelfHost/providers/Microsoft.RecoveryServices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/protectedItems/sqldatabase;mssqlserver;msdb/recoveryPoints/56798287946753/restore?api-version=2019-05-13'
Erstellen des Anforderungstexts
Beispiel für Anforderungstext zum Wiederherstellen einer Datenbank im selben Datenverzeichnis
Der folgende Anforderungstext definiert Eigenschaften, die erforderlich sind, um SQL Datenbankwiederherstellung in demselben Datenverzeichnis auszulösen.
{
"properties":{
"objectType":"AzureWorkloadSQLRestoreRequest",
"shouldUseAlternateTargetLocation":false,
"isNonRecoverable":false,
"targetInfo":{"ContainerName": "compute;SQLServerPMDemo;sqlserver-0", "DatabaseName" : "SQLINSTANCE/msdb"},
"alternateDirectoryPaths":null,
"isFallbackOnDefaultDirectoryEnabled":true,
"recoveryType":"AlternateLocation",
"sourceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerPMDemo/providers/Azure/virtualmachines/compute;SQLServerPMDemo;sqlserver-0"
}
}
Beispiel für Anforderungstext zum Wiederherstellen einer Datenbank in einem alternativen Datenverzeichnis
Der folgende Anforderungstext definiert Eigenschaften, die erforderlich sind, um SQL Datenbankwiederherstellung in demselben Datenverzeichnis auszulösen.
{
"properties":{
"objectType":"AzureWorkloadSQLRestoreRequest",
"shouldUseAlternateTargetLocation":true,
"isNonRecoverable":false,
"targetInfo":
{
"overwriteOption":"Overwrite","containerName":"compute;oneboxrg;oneboxvm","databaseName":"SQLINSTANCE/msdb"},
"alternateDirectoryPaths":[{"mappingType":"Log","sourcePath":"C:\\SQLfiles\\Default.ldf","targetPath":"C:\\SQLFiles\\Temp.ldf"}],
"recoveryType":"AlternateLocation",
"sourceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerPMDemo/providers/Azure/virtualmachines/compute;SQLServerPMDemo;sqlserver-0"
}
}
}
Antwort
Das Auslösen einer Wiederherstellung ist ein asynchroner Vorgang. In diesem Vorgang wird ein anderer Vorgang erstellt, der separat nachverfolgt werden muss.
Zwei Antworten werden zurückgegeben: 202 (Akzeptiert), wenn ein anderer Vorgang erstellt wurde, und 200 (OK), wenn dieser Vorgang abgeschlossen ist.
Antwortbeispiel
Status Code:
OK
Headers:
Pragma : no-cache
Cache-Control : no-cache
Server : Microsoft-IIS/10.0,Microsoft-IIS/10.0
X-Content-Type-Options : nosniff
x-ms-request-id : f17973f5-c788-482f-8aad-6bb50e647a2e
x-ms-client-request-id : b0356a0e-c68d-4ac2-a53f-4f546685146d,b0356a0e-c68d-4ac2-a53f-4f546685146d
X-Powered-By : ASP.NET
Strict-Transport-Security : max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-resource-requests: 149
x-ms-correlation-request-id : f17973f5-c788-482f-8aad-6bb50e647a2e
x-ms-routing-request-id : SOUTHINDIA:20210801T104711Z:f17973f5-c788-482f-8aad-6bb50e647a2e
Date : Sun, 01 Aug 2021 10:47:11 GMT
{
"id":"/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerSelfHost/providers/Microsoft.RecoveryServices/vaults/SQLServer2012/backupJobs/0bda1a53-73fa-427e-9a1c-72a2016adee3",
"name": "0bda1a53-73fa-427e-9a1c-72a2016adee3",
"type": "Microsoft.RecoveryServices/vaults/backupJobs",
"properties": {
"jobType": "AzureWorkloadJob",
"actionsInfo": [
1
],
"workloadType": "SQLDataBase",
"duration": "PT1.6543659S",
"extendedInfo": {
"tasksList": [
{
"taskId": "Transfer data from vault",
"status": "InProgress"
}
],
"propertyBag": {
"Job Type": "Recovery to the original database"
}
},
"isUserTriggered": true,
"entityFriendlyName": "msdb [sqlserver-0]",
"backupManagementType": "AzureWorkload",
"operation": "Restore",
"status": "InProgress",
"startTime": "2021-08-01T10:47:09.5865449Z",
"activityId": "b0356a0e-c68d-4ac2-a53f-4f546685146d"
}
}
Regionsübergreifende Wiederherstellung
Wenn Sie die regionübergreifende Wiederherstellung aktiviert haben, werden die Wiederherstellungspunkte auch in die sekundäre gekoppelte Region repliziert. Anschließend können Sie diese Wiederherstellungspunkte abrufen und die Wiederherstellung auf einem Computer auslösen, der in diesem gekoppelten Bereich vorhanden ist. Wie bei der normalen Wiederherstellung sollte der Zielcomputer beim Zieltresor in der sekundären Region registriert werden. Dazu müssen folgende Schritte ausgeführt werden:
Rufen Sie die Sicherungselemente ab, die in den sekundären Region repliziert werden.
Für das folgende Beispiel benötigen Sie:
- A Container: VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0
- Ein geschütztes Element: sqldatabase;mssqlserver;msdb) für die Datenbank, die wiederhergestellt werden muss, mithilfe der weiter oben in diesem Dokument erwähnten Schritte.
Rufen Sie die Wiederherstellungspunkte (eindeutige und/oder Protokolle) ab, die in den sekundären Regionen repliziert werden.
Wählen Sie einen Zielserver aus, der für einen Tresor innerhalb der sekundären gekoppelten Region registriert ist.
Lösen Sie die Wiederherstellung auf diesem Server aus, und verfolgen Sie diese mithilfe der JobId.
Hinweis
Das RPO für die Verfügbarkeit der Sicherungsdaten in der sekundären Region beträgt 12 Stunden. Wenn Sie CRR aktivieren, beträgt das RPO für die sekundäre Region daher 12 Stunden + Protokollhäufigkeitsdauer (die auf mindestens 15 Minuten festgelegt werden kann).
Abrufen eindeutiger Wiederherstellungspunkte aus der sekundären Region
Verwenden Sie die LIST Recovery Points-API, um die Liste der verfügbaren Wiederherstellungspunkte für die Datenbank in der sekundären Region abrufen. Im folgenden Beispiel wird ein optionaler Filter angewendet, um vollständige und differenzielle Wiederherstellungspunkte in einem bestimmten Zeitraum zu erhalten.
GET "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerSelfHost/providers/Microsoft.RecoveryServices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/recoveryPoints/?$filter=startDate eq'2021-07-25 08:41:32 AM' and endDate eq '2021-08-01 08:41:45 AM' and restorePointQueryType eq 'FullAndDifferential' and extendedInfo eq 'True'&api-version=2018-12-20"
Beispielantwort für das Abrufen von Wiederherstellungspunkten
Headers:
Pragma : no-cache
X-Content-Type-Options : nosniff
x-ms-request-id : 66b3fbb4-e38a-4a4b-98c7-56db66ab52e6
x-ms-client-request-id : 35eb7834-8b5c-4a2c-adda-eee2ed02eb08,35eb7834-8b5c-4a2c-adda-eee2ed02eb08
Strict-Transport-Security : max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-resource-requests: 149
x-ms-correlation-request-id : 66b3fbb4-e38a-4a4b-98c7-56db66ab52e6
x-ms-routing-request-id : SOUTHINDIA:20210801T102906Z:66b3fbb4-e38a-4a4b-98c7-56db66ab52e6
Cache-Control : no-cache
Date : Sun, 01 Aug 2021 10:29:06 GMT
Server : Microsoft-IIS/10.0
X-Powered-By : ASP.NET
Body:
{
"value": [
{
"id":
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerSelfHost/providers/Microsoft.RecoveryServices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/RecoveryPoints/932604119111216382",
"name": "932604119111216382",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints",
"properties": {
"objectType": "AzureWorkloadSQLRecoveryPoint",
"recoveryPointTimeInUTC": "2021-07-31T16:33:48Z",
"type": "Full"
}
},
{
"id":
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerSelfHost/providers/Microsoft.RecoveryServices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;compute;SQLServerPMDemo;sqlserver-0/protectedItems/SQLDataBase;mssqlserver;msdb/RecoveryPoints/932599942005436803",
"name": "932599942005436803",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints",
"properties": {
"objectType": "AzureWorkloadSQLRecoveryPoint",
"recoveryPointTimeInUTC": "2021-07-30T16:33:49Z",
"type": "Full"
}
},
.....
Der Wiederherstellungspunkt wird durch das {name}
Feld in der obigen Antwort angegeben.
Abrufen des Zugriffstokens
Zum Durchführen der regionübergreifenden Wiederherstellung benötigen Sie ein Zugriffstoken, um die ordnungsgemäße Kommunikation zwischen den Azure-Sicherungsdiensten zu ermöglichen. Führen Sie die folgenden Schritte aus, um ein Zugriffstoken abzurufen:
Verwenden Sie die Microsoft Entra-Eigenschaften-API, um Microsoft Entra-Eigenschaften für die sekundäre Region abzurufen (westus im nachfolgenden Beispiel).
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/westus/backupAadProperties?api-version=2018-12-20
Die zurückgegebene Antwort hat das folgende Format:
{ "properties": { "tenantId": "00000000-0000-0000-0000-000000000000", "audience": "https://RecoveryServices/IaasCoord/aadmgmt/wus", "servicePrincipalObjectId": "00000000-0000-0000-0000-000000000000" } }
Verwenden Sie die API Zugriffstoken, um ein Zugriffstoken abzurufen, um die Kommunikation zwischen den Azure-Sicherungsdiensten zu ermöglichen.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/accessToken?api-version=2018-12-20
Fügen Sie als Anforderungstext den Inhalt der Antwort ein, die von der Microsoft Entra-Eigenschaften-API im vorigen Schritt zurückgegeben wurde.
Das Format der zurückgegebenen Antwort lautet wie folgt:
{ "protectableObjectUniqueName": "MSSQLSERVER/model", "protectableObjectFriendlyName": "msdb", "protectableObjectWorkloadType": "SQL", "protectableObjectProtectionState": "Protected", "protectableObjectContainerHostOsName": "sqlserver-0", "protectableObjectParentLogicalContainerName": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0", "containerId": "0000000", "policyName": "HourlyLogBackup", "policyId": "00000000-0000-0000-0000-000000000000", "objectType": "WorkloadCrrAccessToken", "accessTokenString": "<access-token-string>", "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "SQLServerSelfHost", "resourceName": "SQLServer2012", "resourceId": "0000000000000000000", "protectionContainerId": 0000000, "recoveryPointId": "932603497994988273", "recoveryPointTime": "7/31/2021 4:33:17 PM", "containerName": "Compute;SQLServerPMDemo;sqlserver-0", "containerType": "VMAppContainer", "backupManagementType": "AzureWorkload", "datasourceType": "SQLDataBase", "datasourceName": "msdb", "datasourceId": "932350676859704517", "datasourceContainerName": "Compute;SQLServerPMDemo;sqlserver-0", "coordinatorServiceStampId": "00000000-0000-0000-0000-000000000000", "coordinatorServiceStampUri": "https://pod01-wbcm1.eus.backup.windowsazure.com", "protectionServiceStampId": "00000000-0000-0000-0000-000000000000", "protectionServiceStampUri": "https://pod01-prot1j-int.eus.backup.windowsazure.com", "rpOriginalSAOption": false, "rpIsManagedVirtualMachine": false, "bMSActiveRegion": "EastUS" }
Wiederherstellen von Datenträgern in einer sekundären Region
Verwenden Sie die regionenübergreifende Wiederherstellungsauslösungs-API, um ein Element in der sekundären Region wiederherzustellen.
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupCrossRegionRestore?api-version=2018-12-20
Der Anforderungstext sollte zwei Teile aufweisen:
crossRegionRestoreAccessDetails: Fügen Sie den Eigenschaften-Block der Antwort aus der im vorherigen Schritt ausgeführten API-Anfrage Zugriffstoken ein, um dieses Segment des Anfragetextes zu füllen.
restoreRequest: Zum Ausfüllen des RestoreRequest-Segments des Anforderungstexts müssen Sie die Details des Containers (in einem Tresor im sekundären Bereich registriert) übergeben, an den die Datenbank wiederhergestellt werden muss, sowie den Namen, unter dem die wiederhergestellte Datenbank gespeichert werden soll. Wenn Sie eine vollständige Sicherung für den sekundären Bereich wiederherstellen möchten, geben Sie AlternateLocation als Wiederherstellungstyp an.
Es folgt ein Beispiel für einen Anforderungstext zum Wiederherstellen der Datenträger eines VM in der sekundären Region:
{
"crossRegionRestoreAccessDetails": {
"protectableObjectUniqueName": "MSSQLSERVER/model",
"protectableObjectFriendlyName": "msdb",
"protectableObjectWorkloadType": "SQL",
"protectableObjectProtectionState": "Protected",
"protectableObjectContainerHostOsName": "sqlserver-0",
"protectableObjectParentLogicalContainerName": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0",
"containerId": "0000000",
"policyName": "HourlyLogBackup",
"policyId": "00000000-0000-0000-0000-000000000000",
"objectType": "WorkloadCrrAccessToken",
"accessTokenString": "<access-token-string>",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "SQLServerSelfHost",
"resourceName": "SQLServer2012",
"resourceId": "0000000000000000000",
"protectionContainerId": 0000000,
"recoveryPointId": "932603497994988273",
"recoveryPointTime": "7/31/2021 4:33:17 PM",
"containerName": "Compute;SQLServerPMDemo;sqlserver-0",
"containerType": "VMAppContainer",
"backupManagementType": "AzureWorkload",
"datasourceType": "SQLDataBase",
"datasourceName": "msdb",
"datasourceId": "932350676859704517",
"datasourceContainerName": "Compute;SQLServerPMDemo;sqlserver-0",
"coordinatorServiceStampId": "00000000-0000-0000-0000-000000000000",
"coordinatorServiceStampUri": "https://pod01-wbcm1.eus.backup.windowsazure.com",
"protectionServiceStampId": "00000000-0000-0000-0000-000000000000",
"protectionServiceStampUri": "https://pod01-prot1j-int.eus.backup.windowsazure.com",
"rpOriginalSAOption": false,
"rpIsManagedVirtualMachine": false,
"bMSActiveRegion": "EastUS"
},
"restoreRequest": {
"objectType": "AzureWorkloadSQLRestoreRequest",
"shouldUseAlternateTargetLocation": true,
"isNonRecoverable": false,
"alternateDirectoryPaths": [],
"recoveryType": "AlternateLocation",
"sourceResourceId":"/subscriptions/600000000-0000-0000-0000-000000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0",
"targetInfo": {
"overwriteOption": "FailOnConflict",
"containerId":"/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/RestoreRG/providers/Microsoft.RecoveryServices/vaults/wusRestoreVault/backupFabrics/Azure/protectionContainers/vmappcontainer;compute;restorerg;wusrestorevm",
"databaseName": "MSSQLSERVER/msdb_restored_8_1_2021_1758"
}
}
}
Nächste Schritte
Verwalten von SQL Server-Datenbanken in Azure-VMs mit Azure-Portal, Azure CLI, REST-API.
Weitere Informationen zu den Azure Backup-REST-APIs finden Sie in den folgenden Dokumenten: