本文介绍如何使用 REST API 管理和监视 由 Azure 备份 备份备份的 SQL Server 数据库。 还可以使用 Azure CLI 和 Azure 门户 管理 SQL 数据库备份。
注意
若要了解支持的配置和场景,请参阅 SQL 备份支持矩阵。
监视作业
Azure 备份服务会触发在后台运行的作业。 这包括触发备份、还原操作和禁用备份等方案。 可以使用作业的 ID 跟踪这些作业。 详细了解如何管理备份和还原作业。
从操作中获取作业信息
操作(例如触发备份)将返回 jobID 作为响应。
例如:触发备份 REST API操作的最终响应如下所示:
{
"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"
}
}
你可以通过 jobId 字段标识备份作业,并且可以如此处所述使用 GET 请求进行跟踪。
跟踪作业
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}?api-version=2016-12-01
{jobName}
是上面提到的“jobId”。 响应为“200 (正常)”其中 status 字段指示作业的状态。 当状态为“Completed”或“CompletedWithWarnings”之后,extendedInfo 部分将显示作业的更多详细信息 。
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
响应
名称 | 类型 | 说明 |
---|---|---|
200 正常 | JobResource | 确定 |
响应示例
提交“GET”URI 后,将返回 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"
}
}
}
修改策略
若要更改保护数据库的策略,请使用与启用保护相同的格式。 但需在请求正文中提供新的策略 ID 并提交请求。 例如:要将 testVM 的策略从“HourlyLogPolicy”更改为“ProdPolicy”,请在请求正文中提供“ProdPolicy”ID 。
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLDataBase",
"policyId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupPolicies/ProdPolicy"
},
"___location": "westcentralus"
}
响应将采用与上文所述的启用保护相同的格式。
停止保护并保留现有数据
若要停止保护受保护的数据库但保留已备份的数据,请删除请求正文中的策略并提交请求。 删除与策略的关联后,将不再触发备份,也不会创建新的恢复点。
{
"properties": {
"protectedItemType": "AzureVmWorkloadSQLDatabase",
"protectionState": "ProtectionStopped",
"sourceResourceId":
"/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0",
"policyId": ""
}
}
示例响应
停止对数据库的保护是一个异步操作。 此操作会创建另一个需要跟踪的操作。 它将返回两个响应:创建另一个操作时为“202 (已接受)”,该操作完成时为“200”。
成功接受操作时的响应标头:
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"
}
}
然后通过 GET 命令并使用位置标头或 Azure-AsyncOperation 标头跟踪生成的操作:
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
响应正文
{
"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"
}
}
停止保护并删除备份数据
若要停止保护受保护的文件共享,并删除备份数据,请执行删除操作。
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 和 protectedItemName 采用本文的“配置备份”步骤中的设置 。
响应
删除保护是一种异步操作。 此操作会创建另一个需要单独跟踪的操作。 它将返回两个响应:创建另一个操作时为“202 (已接受)”,然后在该操作完成时为“204 (无内容)”。