Aracılığıyla paylaş


REST API aracılığıyla Azure Backup kullanarak Azure VM'lerindeki SQL server veritabanlarını yedekleme

Bu makalede, REST API aracılığıyla Azure Backup kullanarak Azure VM'lerindeki SQL server veritabanlarının nasıl yedekleneceği açıklanmaktadır.

Uyarı

Desteklenen yapılandırmalar ve senaryolar hakkında daha fazla bilgi edinmek için SQL yedekleme destek matrisine bakın.

Önkoşullar

  • Kurtarma Hizmetleri kasası
  • SQL veritabanlarınız için yedeklemeyi yapılandırma ilkesi.

Yeni kasalar ve ilkeler oluşturma hakkında daha fazla bilgi için Kasa oluşturma ve İlke oluşturma REST API öğreticilerine bakın.

Aşağıdaki kaynakları kullanın:

  • Kurtarma Hizmetleri Kasası: SQLServer2012
  • İlke: HourlyLogBackup
  • Kaynak grubu: SQLServerSelfHost

Azure VM'de korumasız SQL server veritabanları için yedeklemeyi yapılandırma

Korumasız SQL Server veritabanlarını bulma

Kasanın, SQL veritabanlarına sahip olan ve Recovery Services kasasına yedeklenebilecek abonelik kapsamındaki tüm Azure VM'lerini bulması gerekir. Ayrıntıları getirmek için yenileme işlemini tetikleyin. Bu, kasanın geçerli abonelikteki tüm korumasız SQL veritabanlarının en son listesini almasını ve bunları önbelleğe almasını sağlayan zaman uyumsuz bir POST işlemidir. Veritabanı önbelleğe alındıktan sonra kurtarma hizmetleri veritabanına erişebilir ve veritabanını koruyabilir.

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{vaultResourceGroupName}/providers/microsoft.recoveryservices/vaults/{vaultName}/backupFabrics/{fabricName}/refreshContainers?api-version=2016-12-01&$filter={$filter}

POST URI'sinde , {subscriptionId}, {vaultName}ve {vaultresourceGroupName} parametreleri vardır{fabricName}. Aşağıdaki örnekte, farklı parametrelerin değerleri aşağıdaki gibidir:

  • {fabricName}: Azure
  • {vaultName}: SQLServer2012
  • {vaultresourceGroupName}: SQLServerSelfHost
  • $filter: backupManagementType eq 'AzureWorkload'

URI3'te tüm gerekli parametreler verildiğinden ayrı bir istek gövdesi gerekmez.

POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/refreshContainers?api-version=2016-12-01&$filter=backupManagementType eq 'AzureWorkload'

Yenileme işlemine yanıtlar

Yenileme işlemi zaman uyumsuz bir işlemdir. Bu, bu işlemin ayrı olarak izlenmesi gereken başka bir işlem oluşturduğu anlamına gelir.

İ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 (Tamam).

Yenileme işlemine örnek yanıtlar

POST isteğini gönderdikten sonra 202 (Kabul Edildi) yanıtı döndürülür.

HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 60
X-Content-Type-Options: nosniff
x-ms-request-id: a85ee4a2-56d7-4477-b29c-d140a8bb90fe
x-ms-client-request-id: 4653a4ed-ffbe-4492-ae7d-3e1ab03722af; 4653a4ed-ffbe-4492-ae7d-3e1ab03722af
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: a85ee4a2-56d7-4477-b29c-d140a8bb90fe
x-ms-routing-request-id: SOUTHINDIA:20180528T075517Z:a85ee4a2-56d7-4477-b29c-d140a8bb90fe
Cache-Control: no-cache
Date: Mon, 28 May 2018 07:55:16 GMT
Location: https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/operationResults/a60bfc5e-e237-4ead-be5c-b845e9566ea8?api-version=2016-12-01
X-Powered-By: ASP.NET

Konum üst bilgisini basit bir GET komutuyla kullanarak sonuçta elde edilen işlemi izleyin.

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/operationResults/a60bfc5e-e237-4ead-be5c-b845e9566ea8?api-version=2016-12-01

Tüm SQL veritabanları bulunduktan sonra GET komutu 200 (İçerik Yok) yanıtı döndürür. Kasa artık abonelik içinde yedeklenebilen SQL veritabanlarına sahip tüm VM'leri bulabilir.

HTTP/1.1 204 NoContent
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id: 55ae46bb-0d61-4284-a408-bcfaa36af643
x-ms-client-request-id: b5ffa56f-a521-48a4-91b2-e3bc1e3f1110; b5ffa56f-a521-48a4-91b2-e3bc1e3f1110
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 14968
x-ms-correlation-request-id: 55ae46bb-0d61-4284-a408-bcfaa36af643
x-ms-routing-request-id: SOUTHINDIA:20180528T075607Z:55ae46bb-0d61-4284-a408-bcfaa36af643
Cache-Control: no-cache
Date: Mon, 28 May 2018 07:56:06 GMT
X-Powered-By: ASP.NET

SQL veritabanlarına sahip olan VM'lerin Kurtarma Hizmetleri kasalarıyla yedeklenmesi için listelenmesi

Önbelleğe alma işleminin tamamlandığını onaylamak için abonelikteki tüm VM'leri Kurtarma Hizmetleri kasasıyla yedeklenebilen SQL veritabanlarıyla listeleyin. Ardından yanıtta istediğiniz depolama hesabını bulun. Bu, GET ProtectableContainers işlemi kullanılarak yapılır.

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectableContainers?api-version=2016-12-01&$filter=backupManagementType eq 'AzureWorkload'

Uyarı

GET URI'sinde gerekli tüm parametreler bulunur. Ek bir talep gövdesine gerek yok.

Yanıt gövdesi örneği:

{
  "value": [
    {
      "id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectableContainers/VMAppContainer;Compute;SQLServerPMDemo;ad-primary-dc",
      "name": "VMAppContainer;Compute;SQLServerPMDemo;ad-primary-dc",
      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers",
      "properties": {
        "friendlyName": "ad-primary-dc",
        "backupManagementType": "AzureWorkload",
        "protectableContainerType": "VMAppContainer",
        "healthStatus": "Healthy",
        "containerId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/ad-primary-dc"
      }
    },
    {
      "id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectableContainers/VMAppContainer;Compute;SQLServerPMDemo;ad-secondry-dc",
      "name": "VMAppContainer;Compute;SQLServerPMDemo;ad-secondry-dc",
      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers",
      "properties": {
        "friendlyName": "ad-secondry-dc",
        "backupManagementType": "AzureWorkload",
        "protectableContainerType": "VMAppContainer",
        "healthStatus": "Healthy",
        "containerId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/ad-secondry-dc"
      }
    },
    {
      "id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectableContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0",
      "name": "VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0",
      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers",
      "properties": {
        "friendlyName": "sqlserver-0",
        "backupManagementType": "AzureWorkload",
        "protectableContainerType": "VMAppContainer",
        "healthStatus": "Healthy",
        "containerId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0"
      }
    }
  ]
}

Yanıt gövdesindeki VM'leri kolay adlarıyla bulabildiğimiz için, yukarıda gerçekleştirilen yenileme işlemi başarılı oldu. Kurtarma Hizmetleri kasası artık aynı abonelikteki korumasız SQL veritabanlarına sahip VM'leri başarıyla bulabilir.

VM'leri Kurtarma Hizmetleri Varlığına kaydetme

Azure Backup hizmetinin VM içindeki SQL veritabanlarıyla etkileşim kurabilmesi için VM'leri Kurtarma Hizmetleri kasasına kaydetmeniz gerekir (Azure VM kapsayıcısını tanımlamak için Ad alanındaki değeri kullanın). HTTP istek gövdesini, liste korunabilir kapsayıcılar sonucunun özellikler çantasından almak için JSON isteğindeki değerleri sağlamanız gerekir.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.recoveryservices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}?api-version=2016-12-01

URI için değişkenleri aşağıdaki gibi ayarlayın:

  • {resourceGroupName} - SQLServerSelfHost
  • {fabricName} - Gök mavisi
  • {vaultName} - SQLServer2012
  • {containerName} - Bu, GET ProtectableContainers işleminin yanıt gövdesindeki name özniteliğidir. Örneğimizde öznitelik adı VMAppContainer'dır; Hesaplamak; SQLServerPMDemo; sqlserver-0.

Uyarı

Her zaman yanıtın ad özniteliğini alın ve bu isteği doldurun. Sabit kod oluşturmayın veya kapsayıcı adı biçimini oluşturmayın. Bunu oluşturur veya sabit kodlarsanız, gelecekte kapsayıcı adı biçimi değişirse API çağrısı başarısız olur.


PUT 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?api-version=2016-12-01

Oluşturma isteği gövdesi aşağıdaki gibidir:

{
  "properties": {
    "backupManagementType": "AzureWorkload",
    "friendlyName": "sqlserver-0",
    "containerType": "VMAppContainer",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectableContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0",
    "workloadType": "SQLDataBase"
  }
}

İstek gövdesi tanımlarının tam listesi ve diğer ayrıntılar için ProtectionContainers-Register bağlantısına bakın.

Bu zaman uyumsuz bir işlemdir ve iki yanıt döndürür: işlem kabul edildiğinde 202 (Kabul Edildi) ve işlem tamamlandığında 200 (Tamam). İşlem durumunu izlemek için, işlemin en son durumunu almak için konum üst bilgisini kullanın.

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/operationResults/2a72d206-b4d8-4c59-89ef-ef3283132237?api-version=2016-12-01

İşlem tamamlandığında yanıt gövdesi örneği:

{
  "id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0",
  "name": "VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0",
  "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers",
  "properties": {
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0",
    "lastUpdatedTime": "2018-05-28T08:33:14.7304852Z",
    "extendedInfo": {
      "hostServerName": "sqlserver-0.shopkart.com",
      "inquiryInfo": {
        "status": "Success",
        "errorDetail": {
          "code": "Success",
          "message": "",
          "recommendations": [
            ""
          ]
        },
        "inquiryDetails": [
          {
            "type": "SQL",
            "itemCount": 5,
            "inquiryValidation": {
              "status": "Success",
              "errorDetail": {
                "code": "Success",
                "message": "",
                "recommendations": [
                  ""
                ]
              }
            }
          }
        ]
      }
    },
    "friendlyName": "sqlserver-0",
    "backupManagementType": "AzureWorkload",
    "registrationStatus": "Registered",
    "healthStatus": "Healthy",
    "containerType": "VMAppContainer",
    "protectableObjectType": "VMAppContainer"
  }
}

Kayıt işleminin başarılı olup olmadığını, yanıt gövdesindeki registrationstatus parametresinin değerinden doğrulayabilirsiniz. Bizim örneğimizde SQLServer2012 için kayıtlı durumu gösterir; bu nedenle kayıt işlemi başarılı oldu.

Vm altındaki tüm korumasız SQL veritabanlarını sorgulama

Depolama hesabındaki korunabilir öğeler hakkında bilgi almak için Koruma Kapsayıcıları-Sorgulama işlemini kullanın. Bu zaman uyumsuz bir işlemdir ve sonuçlar konum üst bilgisi kullanılarak izlenmelidir.

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/inquire?api-version=2016-12-01$filter={$filter}

Yukarıdaki URI için değişkenleri aşağıdaki gibi ayarlayın:

  • {resourceGroupName}: SQLServerSelfHost
  • {vaultName}: SQLServer2012
  • {fabricName}: Azure
  • {containerName}: GET ProtectableContainers işleminin yanıt gövdesindeki name özniteliğine bakın. Örneğimizde öznitelik adı VMAppContainer'dır; Hesaplamak; SQLServerPMDemo; sqlserver-0.
POST https://management.azure.com/subscriptions/e3d2d341-4ddb-4c5d-9121-69b7e719485e/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0/inquire?api-version=2016-12-01$filter=workloadType EQ 'SQLDatabase'

İstek başarılı olduktan sonra durum kodunu Tamam olarak döndürür.

HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 60
X-Content-Type-Options: nosniff
x-ms-request-id: 50295ae9-3d5b-48d1-8a6d-a0acb6d06b98
x-ms-client-request-id: 4174f98a-80b9-4747-9500-6f702ed83930; 4174f98a-80b9-4747-9500-6f702ed83930
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1197
x-ms-correlation-request-id: 50295ae9-3d5b-48d1-8a6d-a0acb6d06b98
x-ms-routing-request-id: SOUTHINDIA:20180528T084628Z:50295ae9-3d5b-48d1-8a6d-a0acb6d06b98
Cache-Control: no-cache
Date: Mon, 28 May 2018 08:46:28 GMT
Location: 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/operationResults/f0751ec2-445a-4d0e-a6a5-a19957459655?api-version=2016-12-01
X-Powered-By: ASP.NET

Yedeklemek istediğiniz veritabanlarını seçin

Abonelik altındaki tüm korunabilir öğeleri listelemek ve yedeklenecek istenen veritabanını bulmak için GET backupprotectableItems işlemini kullanın.

GET https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems?api-version=2016-12-01&$filter={$filter}

URI'yi aşağıdaki gibi oluşturun:

  • {resourceGroupName}: SQLServerSelfHost
  • {vaultName}: SQLServer2012
  • {$filter}: backupManagementType eq 'AzureWorkload'
GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupProtectableItems?api-version=2016-12-01&$filter=backupManagementType eq 'AzureWorkload'

Örnek yanıt:

Status Code:200

{
  "value": [
    {
      "id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/vmappcontainer;compute;SQLServerSelfHost;SQLServersql2012/protectableItems/sqldatabase;mssqlserver;msdb",
      "name": "sqldatabase;mssqlserver;msdb",
      "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectableItems",
      "properties": {
        "parentName": "MSSQLSERVER",
        "serverName": "SQLServersql2012",
        "isAutoProtectable": false,
        "subinquireditemcount": 0,
        "subprotectableitemcount": 0,
        "backupManagementType": "AzureWorkload",
        "workloadType": "SQL",
        "protectableItemType": "SQLDataBase",
        "friendlyName": "msdb",
        "protectionState": "NotProtected"
      }
    }
]
}

Yanıt, korumasız tüm veritabanlarının listesini içerir ve Azure Kurtarma Hizmeti tarafından yedeklemeyi yapılandırmak için gereken tüm bilgileri içerir. Veritabanı adlarını daha sonra kullanmak üzere kaydedin.

Veritabanı için yedeklemeyi etkinleştirme

İlgili veritabanı kolay adla tanımlandıktan sonra:

  1. Korunacak ilkeyi seçin.
  2. Kasadaki mevcut politikaları listeleyin, Politika API'sini kullanarak görün.
  3. İlke adına bakarak ilgili ilkeyi seçin.
  4. Politika eğitimi oluşturma.

Korumayı etkinleştirme, korumalı bir öğe oluşturan zaman uyumsuz bir PUT işlemidir.

PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupFabrics/Azure/protectionContainers/{containerName};sqlserver-0/protectedItems/{protectedItemName}?api-version=2016-12-01

GET backupprotectableitems işleminin yanıt gövdesindeki ID özniteliğini kullanarak containerName ve protectedItemName değişkenlerini ayarlayın.

Örneğimizde, korumak istediğimiz dosya paylaşımının kimliği:

/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
  • {containerName}: VMAppContainer; Hesaplamak; SQLServerPMDemo; sqlserver-0
  • {protectedItemName}: sqldatabase; mssqlserver; msdb

İstek gövdesi oluşturma:

Aşağıdaki istek gövdesi, korumalı öğe oluşturmak için gereken özellikleri tanımlar.

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

Korumalı öğe oluşturma veya güncelleştirme için PUT isteğini gönderdikten sonra, ilk yanıt 202 (Kabul Edildi) ve bir konum üst bilgisi olur.

Örnek yanıt

Korumalı bir öğenin oluşturulması, izlenmesi gereken başka bir işlem oluşturan zaman uyumsuz bir işlemdir. İ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 (Tamam).

Korumalı öğe oluşturma veya güncelleştirme için PUT isteğini gönderdikten sonra, ilk yanıt 202 (Kabul Edildi) ve bir konum üst bilgisi olur.

HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 60
Azure-AsyncOperation: 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/operationsStatus/b686a165-387f-461d-8579-c55338566338?api-version=2016-12-01
X-Content-Type-Options: nosniff
x-ms-request-id: ab6a8c6c-ab90-433a-8dc2-5194901d428d
x-ms-client-request-id: 7d03bcef-562a-4ddc-8086-a3f4981be915; 7d03bcef-562a-4ddc-8086-a3f4981be915
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: ab6a8c6c-ab90-433a-8dc2-5194901d428d
x-ms-routing-request-id: SOUTHINDIA:20180528T102112Z:ab6a8c6c-ab90-433a-8dc2-5194901d428d
Cache-Control: no-cache
Date: Mon, 28 May 2018 10:21:12 GMT
Location: 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/operationResults/b686a165-387f-461d-8579-c55338566338?api-version=2016-12-01
X-Powered-By: ASP.NET

Ardından get komutuyla konum üst bilgisini veya Azure-AsyncOperation üst bilgisini kullanarak sonuçta elde edilen işlemi izleyin.

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/operationResults/b686a165-387f-461d-8579-c55338566338?api-version=2016-12-01

İşlem tamamlandıktan sonra, yanıt gövdesinde korumalı öğe içeriğiyle 200 (Tamam) döndürür.

Örnek Yanıt Gövdesi:

{
  "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",
  "name": "SQLDataBase;mssqlserver;msdb",
  "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems",
  "properties": {
    "friendlyName": "msdb",
    "serverName": "sqlserver-0.shopkart.com",
    "parentName": "MSSQLSERVER",
    "parentType": "AzureVmWorkloadSQLInstance",
    "protectionStatus": "Healthy",
    "protectionState": "IRPending",
    "lastBackupStatus": "IRPending",
    "lastBackupErrorDetail": {
      "code": "Success",
      "message": ""
    },
    "protectedItemDataSourceId": "17592741727863",
    "protectedItemHealthStatus": "IRPending",
    "extendedInfo": {
      "recoveryPointCount": 0,
      "policyState": "Consistent"
    },
    "protectedItemType": "AzureVmWorkloadSQLDatabase",
    "backupManagementType": "AzureWorkload",
    "workloadType": "SQLDataBase",
    "containerName": "VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0",
    "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/VMAppContainer/sqlserver-0",
    "policyId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupPolicies/HourlyLogBackup"
  }
}

Bu, veritabanı için korumanın etkinleştirildiğini onaylar ve ilke zamanlamasına göre ilk yedekleme tetiklenir.

Veritabanı için isteğe bağlı yedekleme tetikleme

Veritabanını yedekleme için yapılandırdıktan sonra yedeklemeler ilke zamanlamasına göre çalışır. İstediğiniz zaman ilk zamanlanmış yedeklemeyi bekleyebilir veya isteğe bağlı yedekleme tetikleyebilirsiniz.

İsteğe bağlı yedekleme tetikleme bir POST işlemidir.

Uyarı

Bu yedeklemenin saklama süresi, çalıştırdığınız isteğe bağlı yedekleme türüne göre belirlenir.

  • İsteğe bağlı tam yedeklemeleri en az 45 gün ve en fazla 99 yıl boyunca korur.
  • Yalnızca tam isteğe bağlı kopya saklama için herhangi bir değeri kabul eder.
  • Talep üzerine farklar, politika kapsamında ayarlanan zamanlanmış farkların tutulma ayarlarına göre yedeklemeyi korur.
  • İsteğe bağlı günlük, politikada belirtilen zamanlanmış günlüklerin saklama süresine göre yedekleri tutar.
POST https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/backup?api-version=2016-12-01

Yedekleme etkinleştirilirken {containerName} ve {protectedItemName} yukarıda belirtildiği gibi oluşturulmuştur. Örneğimiz için şu ifadeye çevrilir:

POST 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/backup?api-version=2016-12-01

İstek gövdesi oluşturma

İsteğe bağlı tam yedekleme oluşturmak için aşağıdaki istek gövdesini kullanın.

{
  "properties": {
    "objectType": "AzureWorkloadBackupRequest",
    "backupType": "Full"
  }
}

İsteğe bağlı yedekleme işlemine yanıtlar

İsteğe bağlı yedekleme tetikleme zaman uyumsuz bir işlemdir. Bu, bu işlemin ayrı olarak izlenmesi gereken başka bir işlem oluşturduğu anlamına gelir.

İ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 (Tamam).

İsteğe bağlı yedekleme işlemine örnek yanıtlar

İsteğe bağlı yedekleme için POST isteğini gönderdikten sonra ilk yanıt, konum üst bilgisi veya Azure-async-header ile 202 (Kabul Edildi) olur.

HTTP/1.1 202 Accepted
Pragma: no-cache
Retry-After: 60
Azure-AsyncOperation: 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/operationsStatus/cd2a3b13-d392-4e81-86ac-02ea91cc70b9?api-version=2016-12-01
X-Content-Type-Options: nosniff
x-ms-request-id: a691e2a9-8203-462d-a4da-d1badde22f83
x-ms-client-request-id: 6b033cf6-f875-4c03-8985-9add07ec2845; 6b033cf6-f875-4c03-8985-9add07ec2845
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: a691e2a9-8203-462d-a4da-d1badde22f83
x-ms-routing-request-id: SOUTHINDIA:20180528T114321Z:a691e2a9-8203-462d-a4da-d1badde22f83
Cache-Control: no-cache
Date: Mon, 28 May 2018 11:43:21 GMT
Location: 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/operationResults/cd2a3b13-d392-4e81-86ac-02ea91cc70b9?api-version=2016-12-01
X-Powered-By: ASP.NET

Ardından get komutuyla konum üst bilgisini veya Azure-AsyncOperation üst bilgisini kullanarak sonuçta elde edilen işlemi izleyin.

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/operationsStatus/cd2a3b13-d392-4e81-86ac-02ea91cc70b9?api-version=2016-12-01

İşlem tamamlandıktan sonra, yanıtın içeriğinde elde edilen yedekleme işinin kimliğiyle birlikte 200 (Tamam) döndürür.

Örnek yanıt gövdesi

{
  "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şi uzun süre çalışan bir işlem olduğundan, REST API belgesi kullanılarak izleme işlerinde açıklandığı gibi izlenmesi gerekir.

Sonraki Adımlar