مشاركة عبر


إدارة قواعد بيانات خادم SQL في أجهزة Azure الظاهرية باستخدام واجهة برمجة تطبيقات REST

توضح هذه المقالة كيفية إدارة ومراقبة قواعد بيانات خادم SQL التي تم نسخها احتياطيا بواسطة Azure Backup باستخدام REST API. يمكنك أيضا استخدام Azure CLIومدخل Azure لإدارة النسخ الاحتياطية لقاعدة بيانات SQL.

إشعار

راجع مصفوفة دعم النسخ الاحتياطي لـ SQL لمعرفة المزيد حول التكوينات والسيناريوهات المدعومة.

مراقبة المهام

تقوم خدمة Azure Backup بتشغيل المهام التي تعمل في الخلفية. يتضمن ذلك سيناريوهات، مثل تشغيل النسخ الاحتياطي واستعادة العمليات وتعطيل النسخ الاحتياطي. يمكنك تتبع هذه الوظائف باستخدام معرفاتهم (IDs). تعرف على المزيد حول إدارة مهام النسخ الاحتياطي والاستعادة.

إحضار معلومات الوظيفة من العمليات

إحدى العمليات، مثل تشغيل النسخ الاحتياطي، تعرض 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"
  }
}

يمكنك تحديد وظيفة النسخ الاحتياطي التي يتم تحديدها من خلال الحقل معرّف الوظيفة وتتبعها كـ مذكورة هنا باستخدام طلب 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 جيد مصدر الوظيفة موافق

مثال على الرد

بمجرد إرسال URI GET، يتم عرض 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"
  }
} 
}

تعديل النهج

لتغيير النهج التي تحمي قاعدة البيانات، استخدم نفس تنسيق تمكين الحماية. ومع ذلك، قم بتوفير معرّف النهج الجديد في نص الطلب وإرسال الطلب. على سبيل المثال، لتغيير نهج testVM من HourlyLogPolicy إلى ProdPolicy، أدخل معرّف ProdPolicy في نص الطلب.

{
  "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 (Accepted) عند إنشاء عملية أخرى، و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"
  }
}

بعد ذلك، تتبع العملية الناتجة باستخدام رأس الموقع أو رأس Azure-AsyncOperation باستخدام الأمر 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

هيئة الاستجابة

{
  "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 (Accepted) عند إنشاء عملية أخرى، و204 (NoContent) عند اكتمال تلك العملية.

الخطوات التالية