Compartir a través de


Administración de bases de datos de SQL Server en máquinas virtuales de Azure mediante la API REST

En este artículo se describe cómo administrar y supervisar las bases de datos de SQL Server de las que azure Backup realiza una copia de seguridad mediante la API REST. También puede usar la CLI de Azure y Azure Portal para administrar copias de seguridad de SQL Database.

Nota

Consulte la matriz de compatibilidad para la copia de seguridad de SQL para más información sobre las configuraciones y los escenarios admitidos.

Supervisión de trabajos

El servicio Azure Backup desencadena trabajos que se ejecutan en segundo plano. Esto incluye escenarios como desencadenar copias de seguridad, operaciones de restauración y deshabilitar la copia de seguridad. Puede realizar un seguimiento de estos trabajos con sus identificadores. Obtenga más información sobre administrar trabajos de copia de seguridad y restauración.

Captura de información sobre el trabajo de las operaciones

Una operación, como desencadenar la copia de seguridad, devuelve una respuesta de jobID.

Por ejemplo, la respuesta final de una operación para desencadenar una copia de seguridad en API REST es como sigue:

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

Puede identificar que el trabajo de Backup se identifica mediante el campo jobId y se puede realizar su seguimiento como se menciona aquí mediante una solicitud GET.

Realizar un seguimiento del trabajo

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

El {jobName} es el jobId mencionado anteriormente. La respuesta es "200 (Correcto)" y el campo status indica el estado del trabajo. Cuando el estado sea Completed o CompletedWithWarnings, la sección extendedInfo muestra más detalles sobre el trabajo.

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

Respuesta

Nombre Escribir Descripción
200 Ok JobResource Aceptar

Ejemplo de respuesta

Una vez que se envía el identificador URI de GET, se devuelve una respuesta 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"
  }
} 
}

Modificación de directivas

Para cambiar la directiva que protege la base de datos, use el mismo formato que cuando se habilita la protección. Sin embargo, proporcione el identificador de la nueva directiva en el cuerpo de solicitud y envíe la solicitud. Por ejemplo, para cambiar la directiva testVM de HourlyLogPolicy a ProdPolicy, proporcione el identificador ProdPolicy en el cuerpo de solicitud.

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

La respuesta seguirá el mismo formato que se mencionó para habilitar la protección.

Detener la protección y conservar los datos existentes

Para quitar la protección de una base de datos y conservar los datos que ya están en copia de seguridad, quite la directiva del cuerpo de la solicitud que usó para habilitar la copia de seguridad y enviar la solicitud. Una vez que se quita la asociación con la directiva, ya no se desencadenan las copias de seguridad ni se crea ningún punto de recuperación nuevo.

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

Respuesta de muestra

Detener la protección de una base de datos es una operación asincrónica. La operación crea otra de la que se tiene que hacer el seguimiento. Devuelve dos respuestas: 202 (Aceptado) cuando se crea otra operación y luego 200 cuando se completa esa operación.

Encabezado de respuesta cuando la operación se acepta correctamente:

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

A continuación, realice un seguimiento de la operación resultante con el encabezado de ubicación o el encabezado Azure-AsyncOperation y un comando 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

Cuerpo de respuesta

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

Detener la protección y eliminar los datos de copia de seguridad

Para quitar la protección de un recurso compartido de archivos y eliminar también los datos de la copia de seguridad, realice una operación de eliminación.

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

Los parámetros containerName y protectedItemName se establecen en el paso Configurar la copia de seguridad de este artículo.

Respuestas

La eliminación de la protección es una operación asincrónica. La operación crea otra operación de la que se debe hacer un seguimiento por separado. Devuelve dos respuestas: 202 (Aceptado) cuando se crea otra operación y, a continuación, 204 (SinContenido) cuando se completa dicha operación.

Pasos siguientes