Aracılığıyla paylaş


REST API kullanarak Azure VM'lerinde SQL server veritabanlarını yönetme

Bu makalede, REST API kullanılarak Azure Backup tarafından yedeklenen SQL server veritabanlarının nasıl yönetilip izleneceği açıklanmaktadır. SQL veritabanı yedeklemelerini yönetmek için Azure CLI ve Azure portalını da kullanabilirsiniz.

İşleri izleme

Azure Backup hizmeti arka planda çalışan işleri tetikler. Bu, yedeklemeyi tetikleme, geri yükleme işlemleri ve yedeklemeyi devre dışı bırakma gibi senaryoları içerir. Kimliklerini kullanarak bu işleri izleyebilirsiniz. Yedekleme ve geri yükleme işlerini yönetme hakkında daha fazla bilgi edinin.

İşlemlerden iş bilgilerini getirme

Yedekleme tetikleme gibi bir işlem yanıt olarak bir jobID döndürür.

Örneğin, tetikleyici yedekleme REST API işleminin son yanıtı aşağıdaki gibidir:

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

Yedekleme işinin jobId alanı tarafından belirlendiğini belirleyebilir ve get isteği kullanarak burada belirtildiği gibi izleyebilirsiniz.

İşi izleme

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

{jobName} yukarıda bahsedilen jobId değeridir. Yanıt 200 (Tamam) şeklindedir ve durum alanı işin durumunu belirtir. Tamamlandı veya TamamlandıWarnings ile tamamlandıktan sonra extendedInfo bölümünde daha fazla iş ayrıntısı gösterilir.

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

Yanıt

Adı Tür Açıklama
200 Tamam JobResource Tamam

Yanıt örneği

GET URI'sı gönderildikten sonra 200 yanıtı döndürülür.

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

İlkeyi değiştirme

Veritabanını koruyan ilkeyi değiştirmek için korumayı etkinleştirmekle aynı biçimi kullanın. Ancak, istek gövdesinde yeni ilke kimliğini girin ve isteği gönderin. Örneğin, testVM ilkesini HourlyLogPolicy olan ProdPolicy olarak değiştirmek için istek gövdesinde ProdPolicy Kimliğini sağlayın.

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

Yanıt, korumayı etkinleştirmek için bahsedilen biçimin aynısını izler.

Korumayı durdurma ve mevcut verileri saklama

Korumalı veritabanından korumayı kaldırmak ve önceden yedeklenmiş verileri korumak için yedeklemeyi etkinleştirmek ve isteği göndermek için kullandığınız istek gövdesindeki ilkeyi kaldırın. İlkeyle ilişkilendirmeyi kaldırdığınızda yedeklemeler artık tetiklenmez ve yeni kurtarma noktaları oluşturulmaz.

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

Örnek yanıt

Bir veritabanı için korumanın durdurulması zaman uyumsuz bir işlemdir. İşlem, izlenmesi gereken başka bir işlem oluşturur. İki yanıt döndürür: başka bir işlem oluşturulduğunda 202 (Kabul Edildi) ve bu işlem tamamlandığında 200.

İşlem başarıyla kabul edildiğinde yanıt üst bilgisi:

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

Ardından, get komutuyla konum üst bilgisini veya Azure-AsyncOperation üst bilgisini kullanarak elde edilen işlemi izleyin:

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

Yanıt gövdesi

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

Korumayı durdurma ve yedekleme verilerini silme

Korumalı bir dosya paylaşımından korumayı kaldırmak ve yedekleme verilerini de silmek için silme işlemi gerçekleştirin.

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

containerName ve protectedItemName parametreleri, bu makaledeki yedeklemeyi yapılandırma adımında ayarlandığı şekildedir.

Yanıtlar

Silme koruması zaman uyumsuz bir işlemdir. İşlem, ayrı olarak izlenmesi gereken başka bir işlem oluşturur. İki yanıt döndürür: başka bir işlem oluşturulduğunda 202 (Kabul Edildi) ve bu işlem tamamlandığında 204 (NoContent).

Sonraki adımlar