Udostępnij za pośrednictwem


Zarządzanie bazami danych programu SQL Server na maszynach wirtualnych platformy Azure przy użyciu interfejsu API REST

W tym artykule opisano sposób zarządzania i monitorowania baz danych programu SQL Server, których kopia zapasowa jest tworzona przez usługę Azure Backup przy użyciu interfejsu API REST. Do zarządzania kopiami zapasowymi bazy danych SQL można również użyć interfejsu wiersza polecenia platformy Azure i witryny Azure Portal .

Uwaga / Notatka

Zapoznaj się z macierzą obsługi kopii zapasowych SQL , aby poznać obsługiwane konfiguracje i scenariusze.

Monitorowanie zadań

Usługa Azure Backup wyzwala zadania uruchamiane w tle. Obejmuje to scenariusze, takie jak wyzwalanie kopii zapasowej, operacje przywracania i wyłączanie kopii zapasowej. Możesz śledzić te zadania przy użyciu ich identyfikatorów. Dowiedz się więcej o zarządzaniu zadaniami tworzenia kopii zapasowych i przywracania.

Pobierz informacje o zadaniu z działań operacyjnych

Operacja, taka jak wyzwalanie kopii zapasowej, zwraca identyfikator zadania w odpowiedzi.

Na przykład końcowa odpowiedź operacji REST API uruchamiającej kopię zapasową jest następująca:

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

Zadanie tworzenia kopii zapasowej można zidentyfikować za pomocą pola jobId i śledzić zgodnie z opisem w tym miejscu przy użyciu żądania GET.

Śledzenie zadania

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}?api-version=2016-12-01

{jobName} to jest jobId wymieniony powyżej. Odpowiedzią jest 200 (OK) z polem stanu wskazującym stan zadania. Po Zakończeniu lub ZakończoneZeostrzeżeniami sekcja extendedInfo zawiera więcej szczegółów zadania.

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

Odpowiedź

Nazwa Typ Opis
200 OK ZadanieResource OK

Przykład odpowiedzi

Po przesłaniu identyfikatora URI GET zostanie zwrócona odpowiedź 200.

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

Modyfikowanie zasad

Aby zmienić zasady, które chronią bazę danych, użyj tego samego formatu co włączanie ochrony. Podaj jednak nowy identyfikator zasad w treści żądania i prześlij żądanie. Aby na przykład zmienić zasady testVM z HourlyLogPolicy na ProdPolicy, podaj identyfikator ProdPolicy w treści żądania.

{
  "properties": {
    "backupManagementType": "AzureWorkload",
    "workloadType": "SQLDataBase",
    "policyId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupPolicies/ProdPolicy"
  },
  "location": "westcentralus"
}

Odpowiedź będzie w tym samym formacie, jak wspomniano do włączenia ochrony.

Przestań chronić i zachowaj istniejące dane

Aby usunąć ochronę z chronionej bazy danych i zachować już kopie zapasowe danych, usuń zasadę w treści żądania, którą użyłeś do włączenia kopii zapasowej, i prześlij żądanie. Po usunięciu powiązania z zasadą, kopie zapasowe przestają być uruchamiane i nie są tworzone żadne nowe punkty odzyskiwania.

{
  "properties": {
    "protectedItemType": "AzureVmWorkloadSQLDatabase",
    "protectionState": "ProtectionStopped",
    "sourceResourceId":
"/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0",
    "policyId": ""
  }
}

Przykładowa odpowiedź

Zatrzymywanie ochrony bazy danych jest operacją asynchroniczną. Operacja tworzy kolejną operację, która musi być śledzona. Zwraca ona dwie odpowiedzi: 202 (Zaakceptowane) podczas tworzenia innej operacji i 200 po zakończeniu tej operacji.

Nagłówek odpowiedzi po pomyślnym zaakceptowaniu operacji:

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

Następnie śledź wynikową operację przy użyciu nagłówka lokalizacji lub nagłówka Azure-AsyncOperation za pomocą polecenia GET :

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

Ciało odpowiedzi

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

Zatrzymywanie ochrony i usuwanie danych kopii zapasowej

Aby usunąć ochronę z chronionego udziału plików i usunąć również dane kopii zapasowej, wykonaj operację usuwania.

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

Parametry containerName i protectedItemName są ustawione w kroku konfigurowania kopii zapasowej w tym artykule.

Odpowiedzi

Usuwanie ochrony jest operacją asynchroniczną. Operacja tworzy kolejną operację, która musi być śledzona oddzielnie. Zwraca dwie odpowiedzi: 202 (Zaakceptowane) podczas tworzenia innej operacji i 204 (NoContent) po zakończeniu tej operacji.

Dalsze kroki