Freigeben über


Verwalten von SQL Server-Datenbanken in Azure-VMs mithilfe der REST-API

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.

Hinweis

Informationen zu den unterstützten Konfigurationen und Szenarien finden Sie in der SQL-Sicherungsunterstützungsmatrix.

Überwachen von Aufträgen

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 Auftragsinformationen aus Vorgängen

Ein Vorgang, z.B. das Auslösen einer Sicherung, wird als Antwort eine Auftrags-ID zurück gegeben.

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 für Azure-Dateifreigaben 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"
  }
} 
}

Ä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 Anforderungstext 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.

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 Dateifreigabe 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 mit dem Positionsheader oder dem Azure-AsyncOperation mit einem GET Befehl:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupoperations/0000aaaa-11bb-cccc-dd22-eeeeee333333?api-version=2016-12-01

Antworttext

{
  "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 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