Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, PostgreSQL veritabanlarını Azure Backup aracılığıyla yedeklediğiniz postgreSQL için Azure Veritabanı sunucusuna geri yüklemek için Veri Koruma REST API'sinin nasıl kullanılacağı açıklanmaktadır. Ayrıca Azure portalını, Azure PowerShell'i ve Azure CLI'yı kullanarak bir PostgreSQL veritabanını geri yükleyebilirsiniz.
PostgreSQL veritabanı bir hizmet olarak platform (PaaS) veritabanı olduğundan, mevcut veritabanını değiştirerek (yedeklemelerin alındığı yerden) geri yüklemek için Original-Location Recovery (OLR) seçeneği desteklenmez. Aynı PostgreSQL için Azure Veritabanı sunucusunda veya başka bir PostgreSQL sunucusunda yeni bir veritabanı oluşturmak için kurtarma noktasından geri yükleyebilirsiniz. Bu seçenek Alternate-Location Kurtarma (ALR) olarak adlandırılır. ALR hem kaynak veritabanını hem de geri yüklenen (yeni) veritabanını tutmaya yardımcı olur.
Önkoşullar
- Backup kasası oluşturma
- PostgreSQL veritabanı yedekleme ilkesi oluşturma
- Bir PostgreSQL veritabanı yedeği yapılandırma
Bu makalede yer alan örnekler, kaynak grubu TestBkpVault
altında testBkpVaultRG
adlı mevcut bir Yedekleme kasasına atıfta bulunmaktadır.
Yedeklenmiş bir PostgreSQL veritabanını geri yükleme
İzinleri ayarlama
Backup kasası, diğer Azure kaynaklarına erişmek için yönetilen kimlik kullanır. Veritabanını yedeklemeden geri yüklemek için, bir Backup kasasının yönetilen kimliği, veritabanının geri yükleneceği PostgreSQL için Azure Veritabanı sunucusunda bir dizi izne ihtiyaç duyar.
Hedef PostgreSQL sunucusunda vault'un sistem atamalı yönetilen kimliği için ilgili izinleri atamak amacıyla, PostgreSQL veritabanını yedeklemek için gereken izinlere bakın.
Kurtarma noktasını dosya olarak bir depolama hesabına geri yüklemek için, yedek kasasının sistem tarafından atanan yönetilen kimliğinin hedef depolama hesabına erişimi gerekir.
İlgili kurtarma noktasını getir
Bir yedekleme örneğinin tüm kullanılabilir kurtarma noktalarını listelemek için Kurtarma Noktalarını Listele API'sini kullanın:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/recoveryPoints?api-version=2021-07-01
Örneğin, API şu şekilde çevrilir:
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/testpostgresql-empdb11-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/recoveryPoints?api-version=2021-07-01
Kurtarma noktalarının listesi için yanıtlar
İsteği gönderdikten GET
sonra aşağıdaki yanıtları döndürür. Ayrıca ilgili ayrıntıları içeren tüm ayrık kurtarma noktalarının listesini döndürür.
İsim | Türü | Açıklama |
---|---|---|
200 OK |
AzureBackupRecoveryPointResourceList | İstek tamamlandı. |
Diğer durum kodları | CloudError | Hata yanıtı, işlem hatasının nedenini açıklar. |
Örnek bir yanıt aşağıda verilmişti:
HTTP/1.1 200 OK
Content-Length: 53396
Content-Type: application/json
Expires: -1
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 11999
x-ms-correlation-request-id: 41f7ef85-f31e-4db7-87ef-115e3ca65b93
x-ms-routing-request-id: SOUTHINDIA:20211022T200018Z:ba3bc1ce-c081-4895-a292-beeeb6eb22cc
Cache-Control: no-cache
Date: Fri, 22 Oct 2021 20:00:18 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
{
"value": [
{
"properties": {
"objectType": "AzureBackupDiscreteRecoveryPoint",
"recoveryPointId": "eb006fde78cb47198be5a320fbe45e9b",
"recoveryPointTime": "2021-10-21T16:31:16.8316716Z",
"recoveryPointType": "Full",
"friendlyName": "794ead7c7661410da03997d210d469e7",
"recoveryPointDataStoresDetails": [
{
"id": "9ea7eaf4-eeb8-4c8f-90a7-7f04b60bf075",
"type": "VaultStore",
"creationTime": "2021-10-21T16:31:16.8316716Z",
"expiryTime": "2022-10-21T16:31:16.8316716Z",
"metaData": null,
"visible": true,
"state": "COMMITTED",
"rehydrationExpiryTime": null,
"rehydrationStatus": null
}
],
"retentionTagName": "Default",
"retentionTagVersion": "637212748405148394",
"policyName": "osspol3",
"policyVersion": null
},
.
.
.
.
Kurtarma noktasını arşiv katmanından getirmek için içindeki type
değişkenini recoveryPointDataStoreDetails
olarak ArchiveStore
değiştirin.
Önceki listeden ilgili kurtarma noktalarını seçin ve geri yükleme isteğini hazırlayın. Bu makalede geri yüklemek için önceki listeden adlı 794ead7c7661410da03997d210d469e7
bir kurtarma noktası kullanılır.
Geri yükleme isteğini hazırlayın
PostgreSQL veritabanı için çeşitli geri yükleme seçenekleri vardır. Kurtarma noktasını başka bir veritabanı olarak geri yükleyebilir veya dosya olarak geri yükleyebilirsiniz. Kurtarma noktası arşiv katmanında da olabilir.
Veritabanı olarak geri yükleme
İzinlerin atandığı hedef PostgreSQL sunucusuyla oluşturulacak yeni PostgreSQL veritabanının Azure Resource Manager Kimliğini oluşturun (daha önce açıklandığı gibi). Gerekli PostgreSQL veritabanı adını ekleyin. Örneğin, bir PostgreSQL veritabanı farklı bir aboneliğe sahip kaynak grubunda emprestored21
adlı hedef PostgreSQL sunucusu altında adlandırılabilir:targetossserver
targetrg
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21"
Aşağıdaki istek gövdesi kurtarma noktası kimliğini ve geri yükleme hedefi ayrıntılarını içerir:
{
"restoreRequestObject": {
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"sourceDataStoreType": "VaultStore",
"restoreTargetInfo": {
"objectType": "restoreTargetInfo",
"recoveryOption": "FailIfExists",
"dataSourceInfo": {
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21",
"resourceName": "emprestored21",
"resourceType": "Microsoft.DBforPostgreSQL/servers/databases",
"resourceLocation": "westus",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21",
"datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
},
"dataSourceSetInfo": {
"objectType": "DatasourceSet",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver",
"resourceName": "targetossserver",
"resourceType": "Microsoft.DBforPostgreSQL/servers",
"resourceLocation": "westus",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
},
"datasourceAuthCredentials": {
"objectType": "SecretStoreBasedAuthCredentials",
"secretStoreResource": {
"secretStoreType": "AzureKeyVault",
"uri": "https://vikottur-test.vault.azure.net/secrets/dbauth3",
"value": null
}
},
"restoreLocation": "westus"
},
"recoveryPointId": "eb006fde78cb47198be5a320fbe45e9b"
}
}
Arşiv tabanlı bir kurtarma noktası için şunlara ihtiyacınız var:
- Arşiv veri deposundan kasa veri deposuna yeniden doldurma.
- Kaynak veri deposunu değiştirin.
- Yeniden sulandırma önceliğini belirlemek için diğer parametreleri ekleyin.
- Yeniden etkinleştirilen kurtarma noktasının depo veri tabanında tutulacağı süreyi belirtin.
{
"restoreRequestObject": {
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"sourceDataStoreType": "ArchiveStore",
"restoreTargetInfo": {
"objectType": "restoreTargetInfo",
"recoveryOption": "FailIfExists",
"dataSourceInfo": {
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21",
"resourceName": "emprestored21",
"resourceType": "Microsoft.DBforPostgreSQL/servers/databases",
"resourceLocation": "westus",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21",
"datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
},
"dataSourceSetInfo": {
"objectType": "DatasourceSet",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver",
"resourceName": "targetossserver",
"resourceType": "Microsoft.DBforPostgreSQL/servers",
"resourceLocation": "westus",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
},
"datasourceAuthCredentials": {
"objectType": "SecretStoreBasedAuthCredentials",
"secretStoreResource": {
"secretStoreType": "AzureKeyVault",
"uri": "https://vikottur-test.vault.azure.net/secrets/dbauth3",
"value": null
}
},
"restoreLocation": "westus"
},
"recoveryPointId": "eb006fde78cb47198be5a320fbe45e9b",
"rehydration_priority": "Standard",
"rehydration_retention_duration": "P15D",
}
}
Dosyalar olarak geri yükle
Daha önce açıklandığı gibi, izinlerin atandığı depolama hesabı içindeki kapsayıcının URI'sini getirin. Örneğin, farklı bir abonelikle testcontainerrestore
adlı depolama hesabının altında testossstorageaccount
adlı bir kapsayıcı kullanın.
"https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"
{
"objectType": "ValidateRestoreRequestObject",
"restoreRequestObject": {
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"sourceDataStoreType": "VaultStore",
"restoreTargetInfo": {
"targetDetails": {
"url": "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore",
"filePrefix": "empdb11_postgresql-westus_1628853549768",
"restoreTargetLocationType": "AzureBlobs"
},
"restoreLocation": "westus",
"recoveryOption": "FailIfExists",
"objectType": "RestoreFilesTargetInfo"
},
"recoveryPointId": "eb006fde78cb47198be5a320fbe45e9b"
}
}
Arşiv tabanlı bir kurtarma noktası için kaynak veri depolarını değiştirin. Yeniden doldurma önceliğini ve yeniden doldurulan kurtarma noktasının saklama süresini gün cinsinden ekleyin:
{
"objectType": "ValidateRestoreRequestObject",
"restoreRequestObject": {
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"sourceDataStoreType": "ArchiveStore",
"restoreTargetInfo": {
"targetDetails": {
"url": "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore",
"filePrefix": "empdb11_postgresql-westus_1628853549768",
"restoreTargetLocationType": "AzureBlobs"
},
"restoreLocation": "westus",
"recoveryOption": "FailIfExists",
"objectType": "RestoreFilesTargetInfo"
},
"recoveryPointId": "eb006fde78cb47198be5a320fbe45e9b",
"rehydration_priority": "Standard",
"rehydration_retention_duration": "P15D",
}
}
Geri yükleme isteğini doğrulama
İstek gövdesini hazırladıktan sonra Geri Yükleme için Doğrula API'sini kullanarak doğrulayın. Yedekleme için Doğrula API'sinde olduğu gibi bu API de bir POST
işlemdir.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/validateRestore?api-version=2021-07-01
Örneğin, yukarıdaki API şu şekilde çevrilir:
POST "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/testpostgresql-empdb11-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/ValidateRestore?api-version=2021-07-01"
Bu API'nin istek gövdesi hakkında POST
.
Geri yükleme talebini doğrulamak için istek içeriği
Önceki bir bölümde bir istek gövdesi oluşturmıştınız. Şimdi bir nesne türü ekleyin ve bunu kullanarak doğrulama işlemini tetikleyin:
{
"objectType": "ValidateRestoreRequestObject",
"recoveryPointId": "eb006fde78cb47198be5a320fbe45e9b",
"restoreRequestObject": {
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"sourceDataStoreType": "VaultStore",
"restoreTargetInfo": {
"objectType": "restoreTargetInfo",
"recoveryOption": "FailIfExists",
"dataSourceInfo": {
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21",
"resourceName": "emprestored21",
"resourceType": "Microsoft.DBforPostgreSQL/servers/databases",
"resourceLocation": "westus",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21",
"datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
},
"dataSourceSetInfo": {
"objectType": "DatasourceSet",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver",
"resourceName": "targetossserver",
"resourceType": "Microsoft.DBforPostgreSQL/servers",
"resourceLocation": "westus",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
},
"datasourceAuthCredentials": {
"objectType": "SecretStoreBasedAuthCredentials",
"secretStoreResource": {
"secretStoreType": "AzureKeyVault",
"uri": "https://vikottur-test.vault.azure.net/secrets/dbauth3",
"value": null
}
},
"restoreLocation": "westus"
}
}
}
Geri yükleme isteğini doğrulama yanıtı
Geri yükleme isteğinin doğrulanması zaman uyumsuz bir işlemdir. Bu nedenle, bu işlem ayrı olarak izlemeniz gereken başka bir işlem oluşturur.
İşlem şu yanıtları döndürür:
İsim | Türü | Açıklama |
---|---|---|
200 Tamam | İşlem tamamlandı. | |
202 Kabul Edildi | İstek kabul edilir. Yeni bir işlem oluşturuluyor. |
POST
işlem gönderildikten sonra, bir 202 Accepted
üst bilgi içeren Azure-asyncOperation
ilk yanıtı döndürür. Bu örnek yanıt aşağıda gösterilmiştir:
HTTP/1.1 202 Accepted
Content-Length: 0
Expires: -1
Pragma: no-cache
Retry-After: 10
Azure-AsyncOperation: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzVlNzMxZDBiLTQ3MDQtNDkzNS1hYmNjLWY4YWEzY2UzNTk1ZQ==?api-version=2021-07-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1199
x-ms-correlation-request-id: bae60c92-669d-45a4-aed9-8392cca7cc8d
x-ms-routing-request-id: CENTRALUSEUAP:20210708T205935Z:f51db7a4-9826-4084-aa3b-ae640dc78af6
Cache-Control: no-cache
Date: Thu, 08 Jul 2021 20:59:35 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExOzVlNzMxZDBiLTQ3MDQtNDkzNS1hYmNjLWY4YWEzY2UzNTk1ZQ==?api-version=2021-07-01
X-Powered-By: ASP.NET
Azure-AsyncOperation
Basit GET
bir istekle üst bilgiyi izleyin. İstek başarılı olduğunda, 200 OK
durum yanıtı ile döndürür.
GET https://management.azure.com/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.DataProtection/locations/westus/operationStatus/YWJjMGRmMzQtNTY1NS00MGMyLTg4YmUtMTUyZDE3ZjdiNzMyOzY4NDNmZWZkLWU4ZTMtNDM4MC04ZTJhLWUzMTNjMmNhNjI1NA==?api-version=2021-07-01
{
"id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.DataProtection/locations/westus/operationStatus/YWJjMGRmMzQtNTY1NS00MGMyLTg4YmUtMTUyZDE3ZjdiNzMyOzY4NDNmZWZkLWU4ZTMtNDM4MC04ZTJhLWUzMTNjMmNhNjI1NA==",
"name": "YWJjMGRmMzQtNTY1NS00MGMyLTg4YmUtMTUyZDE3ZjdiNzMyOzY4NDNmZWZkLWU4ZTMtNDM4MC04ZTJhLWUzMTNjMmNhNjI1NA==",
"status": "Inprogress",
"startTime": "2021-10-22T20:22:41.0305623Z",
"endTime": "0001-01-01T00:00:00Z"
}
Yanıt, geri yükleme isteğini göndermeden önce çözmeniz gereken hataları gösterir. Aşağıdaki örnek, hedef veritabanı daha düşük bir sürüme sahip olduğunda ne olacağını gösterir, bu nedenle geri yüklenemez:
---------- Response (1892 ms) ------------
HTTP/1.1 200 OK
Content-Length: 1236
Content-Type: application/json
Expires: -1
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 11999
x-ms-correlation-request-id: 784764f8-941d-4f05-8d8c-c02d2c05f799
x-ms-routing-request-id: SOUTHINDIA:20211022T202725Z:e109a061-a09e-4f13-acd0-9b9833f851ac
Cache-Control: no-cache
Date: Fri, 22 Oct 2021 20:27:25 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
{
"id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.DataProtection/locations/westus/operationStatus/YWJjMGRmMzQtNTY1NS00MGMyLTg4YmUtMTUyZDE3ZjdiNzMyOzY4NDNmZWZkLWU4ZTMtNDM4MC04ZTJhLWUzMTNjMmNhNjI1NA==",
"name": "YWJjMGRmMzQtNTY1NS00MGMyLTg4YmUtMTUyZDE3ZjdiNzMyOzY4NDNmZWZkLWU4ZTMtNDM4MC04ZTJhLWUzMTNjMmNhNjI1NA==",
"status": "Failed",
"error": {
"additionalInfo": [
{
"type": "UserFacingError",
"info": {
"message": "Restoring backups of a higher PostgreSQL version to a lower version is not supported.",
"recommendedAction": [
"Restore to the same or a higher PostgreSQL version from which the backup was taken."
],
"code": "UserErrorRestoreToLowerVersion",
"target": "",
"innerError": {
"code": "InnerErrorCodeUnavailable",
"additionalInfo": {
"DetailedNonLocalisedMessage": "Restoring backup from version:10 of PostgreSQL to 9.5 of PostgreSQL not supported, as the restore server version is lower."
}
},
"isRetryable": false,
"isUserError": false,
"properties": {
"ActivityId": "2a23524f-0217-4bc1-bbe8-1546d2e6204d-Ibz"
}
}
}
],
"code": "UserErrorRestoreToLowerVersion",
"message": "Restoring backups of a higher PostgreSQL version to a lower version is not supported."
},
"startTime": "2021-10-22T20:22:41.0305623Z",
"endTime": "2021-10-22T20:23:11Z"
}
Hataları düzelttikten ve isteği yeniden doğruladıktan sonra, 200 OK
döner ve başarılı bir yanıt verir.
HTTP/1.1 200 OK
Content-Length: 443
Content-Type: application/json
Expires: -1
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 11999
x-ms-correlation-request-id: 61d62dd8-8e1a-473c-bcc6-c6a7a19fb035
x-ms-routing-request-id: SOUTHINDIA:20211022T203846Z:89af04a6-4e91-4b64-8998-a369dc763408
Cache-Control: no-cache
Date: Fri, 22 Oct 2021 20:38:46 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
{
"id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.DataProtection/locations/westus/operationStatus/YWJjMGRmMzQtNTY1NS00MGMyLTg4YmUtMTUyZDE3ZjdiNzMyOzU0NDI4YzdhLTJjNWEtNDNiOC05ZjBjLTM2NmQ3ZWVjZDUxOQ==",
"name": "YWJjMGRmMzQtNTY1NS00MGMyLTg4YmUtMTUyZDE3ZjdiNzMyOzU0NDI4YzdhLTJjNWEtNDNiOC05ZjBjLTM2NmQ3ZWVjZDUxOQ==",
"status": "Succeeded",
"startTime": "2021-10-22T20:28:24.3820169Z",
"endTime": "2021-10-22T20:28:49Z"
}
Geri yükleme isteğini tetikleme
Geri yükleme isteğini tetikleme işlemi bir POST
API'dir.
Bu işlem hakkında daha fazla bilgi edinin.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/restore?api-version=2021-07-01
Örneğin, API şu şekilde çevrilir:
POST "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/testpostgresql-empdb11-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/restore?api-version=2021-07-01"
Geri yükleme işlemleri için bir istek gövdesi oluşturun.
İstekler doğrulandıktan sonra, geri yükleme isteğini tetikleme amacıyla aynı istek gövdesini (küçük değişikliklerle) kullanın.
Aşağıdaki örnekte gösterildiği gibi, geri yükleme isteğini doğrulamak için istek gövdesindeki tek değişiklik, nesneyi başlangıçta kaldırmaktır restoreRequest
:
{
"objectType": "AzureBackupRecoveryPointBasedRestoreRequest",
"sourceDataStoreType": "VaultStore",
"restoreTargetInfo": {
"objectType": "restoreTargetInfo",
"recoveryOption": "FailIfExists",
"dataSourceInfo": {
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21",
"resourceName": "emprestored21",
"resourceType": "Microsoft.DBforPostgreSQL/servers/databases",
"resourceLocation": "westus",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21",
"datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
},
"dataSourceSetInfo": {
"objectType": "DatasourceSet",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetrg/providers/Microsoft.DBforPostgreSQL/servers/targetossserver",
"resourceName": "targetossserver",
"resourceType": "Microsoft.DBforPostgreSQL/servers",
"resourceLocation": "westus",
"resourceUri": "",
"datasourceType": "Microsoft.DBforPostgreSQL/servers/databases"
},
"datasourceAuthCredentials": {
"objectType": "SecretStoreBasedAuthCredentials",
"secretStoreResource": {
"secretStoreType": "AzureKeyVault",
"uri": "https://vikottur-test.vault.azure.net/secrets/dbauth3",
"value": null
}
},
"restoreLocation": "westus"
},
"recoveryPointId": "eb006fde78cb47198be5a320fbe45e9b"
}
Geri yükleme isteklerini tetikleme yanıtı
Geri yükleme isteğini tetikleme işlemi zaman uyumsuzdur. Bu operasyon, ayrı olarak izlenmesi gereken başka bir operasyon yaratır.
İşlem şu yanıtları döndürür:
İsim | Türü | Açıklama |
---|---|---|
200 OK |
İşlem tamamlandı. | |
202 Accepted |
İstek kabul edilir. Yeni bir işlem oluşturuluyor. |
POST
işlemi gönderildikten sonra, ilk yanıtını 202 Accepted
olarak bir Azure-asyncOperation
üst bilgisi ile birlikte, aşağıdaki örnek yanıtta gösterildiği gibi döndürür.
HTTP/1.1 202 Accepted
Content-Length: 0
Expires: -1
Pragma: no-cache
Retry-After: 30
Azure-AsyncOperation: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==?api-version=2021-07-01
X-Content-Type-Options: nosniff
x-ms-request-id:
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-writes: 1197
x-ms-correlation-request-id: 8661209c-5b6a-44fe-b676-4e2b9c296593
x-ms-routing-request-id: CENTRALUSEUAP:20210708T204652Z:69e3fa4b-c5d9-4601-9410-598006ada187
Cache-Control: no-cache
Date: Thu, 08 Jul 2021 20:46:52 GMT
Location: https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationResults/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==?api-version=2021-07-01
X-Powered-By: ASP.NET
Azure-AsyncOperation
Basit GET
bir istekle üst bilgiyi izleyin. İstek başarılı olduğunda, geri yükleme isteğinin tamamlanması için izlenmesi gereken bir iş kimliği ile 200 OK
döner.
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==?api-version=2021-07-01
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/providers/Microsoft.DataProtection/locations/westus/operationStatus/ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==",
"name": "ZmMzNDFmYWMtZWJlMS00NGJhLWE4YTgtMDNjYjI4Y2M5OTExO2Q1NDIzY2VjLTczYjYtNDY5ZC1hYmRjLTc1N2Q0ZTJmOGM5OQ==",
"status": "Succeeded",
"startTime": "2021-07-08T20:46:52.4110868Z",
"endTime": "2021-07-08T20:46:56Z",
"properties": {
"jobId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupJobs/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"objectType": "OperationJobExtendedInfo"
}
}
İşleri takip et
Geri yükleme işi tetiklendiğinde, GET Jobs API'sini kullanarak sonuçta elde edilen iş kimliğini izleyebilirsiniz.
GET
değeri izlemek jobId
için aşağıdaki komutu kullanın:
GET /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupJobs/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a?api-version=2021-07-01
İş durumu, geri yükleme işinin tamamlandığını gösterir.