Bagikan melalui


Mengelola database server SQL di Azure VM menggunakan REST API

Artikel ini menjelaskan cara mengelola dan memantau database server SQL yang dicadangkan oleh Azure Backup menggunakan REST API. Anda juga dapat menggunakan Azure CLI dan portal Microsoft Azure untuk mengelola cadangan database SQL.

Catatan

Lihat matriks dukungan pencadangan SQL untuk mengetahui lebih lanjut tentang konfigurasi dan skenario yang didukung.

Pantau pekerjaan

Layanan Azure Backup memicu pekerjaan yang berjalan di latar belakang. Ini mencakup skenario, seperti memicu pencadangan, operasi pemulihan, dan menonaktifkan pencadangan. Anda dapat melacak pekerjaan tersebut menggunakan ID-nya. Pelajari selengkapnya tentang mengelola pekerjaan pencadangan dan pemulihan.

Dapatkan detail pekerjaan dari proses operasi

Operasi, seperti memicu pencadangan, mengembalikan jobID sebagai respons.

Misalnya, respons akhir dari operasi pemicu REST API cadangan adalah sebagai berikut:

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

Anda dapat mengidentifikasi tugas Cadangan melalui bidang jobId dan melacaknya seperti yang disebutkan di sini menggunakan permintaan GET.

Melacak pekerjaan

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

{jobName} adalah jobId yang disebutkan di atas. Responsnya adalah 200 (OK) dengan bidang status menunjukkan status pekerjaan. Setelah Completed atau CompletedWithWarnings, bagian extendedInfo menampilkan lebih banyak detail pekerjaan.

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

Tanggapan

Nama Tipe Deskripsi
200 OK JobResources OKE

Contoh tanggapan

Setelah URI GET dikirimkan, 200 respons dikembalikan.

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

Ubah kebijakan

Untuk mengubah kebijakan yang melindungi database, gunakan format yang sama dengan mengaktifkan perlindungan. Namun, berikan ID kebijakan baru di isi permintaan dan kirimkan permintaan. Misalnya, untuk mengubah kebijakan testVM dari HourlyLogPolicy menjadi ProdPolicy, berikan ID ProdPolicy di isi permintaan.

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

Respons akan mengikuti format yang sama seperti yang disebutkan untuk mengaktifkan perlindungan.

Menghentikan perlindungan dan mempertahankan data yang ada

Untuk menghapus perlindungan dari database yang dilindungi dan menyimpan data yang sudah dicadangkan, hapus kebijakan di isi permintaan yang Anda gunakan untuk mengaktifkan pencadangan, lalu kirimkan permintaan. Setelah Anda menghapus asosiasi dengan kebijakan, pencadangan tidak lagi dipicu, dan tidak ada titik pemulihan baru yang dibuat.

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

Tanggapan sampel

Menghentikan perlindungan untuk database adalah operasi asinkron. Operasi ini akan menciptakan operasi lain yang perlu dilacak. Ini menghasilkan dua respons: 202 (Accepted) ketika operasi lain dibuat, dan 200 ketika operasi itu selesai.

Kop respons ketika operasi berhasil diterima:

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

Kemudian, lacak operasi yang dihasilkan menggunakan header lokasi atau header Azure-AsyncOperation dengan perintah 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

Isi respons

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

Menghentikan proteksi dan menghapus data cadangan

Untuk menghapus perlindungan dari berbagi file yang dilindungi dan juga menghapus data cadangan, lakukan operasi hapus.

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

Parameter containerName dan protectedItemName seperti yang ditetapkan dalam langkah konfigurasikan pencadangan di artikel ini.

Respons

Perlindungan terhadap penghapusan adalah operasi asinkron. Operasi ini akan menciptakan operasi lain yang perlu dilacak secara terpisah. Ini menghasilkan dua respons: 202 (Accepted) saat operasi lain dibuat, dan 204 (NoContent) saat operasi itu selesai.

Langkah berikutnya