البرنامج التعليمي: إدارة قواعد بيانات SAP Hana في Azure VM باستخدام Azure CLI

يتم استخدام Azure CLI لإنشاء موارد Azure وإدارتها من سطر الأوامر أو من خلال البرامج النصية. توضح هذه الوثائق بالتفصيل كيفية إدارة قاعدة بيانات SAP Hana التي تم نسخها احتياطياً على Azure VM - كل ذلك باستخدام Azure CLI. يمكنك أيضاً تنفيذ هذه الخطوات باستخدام مدخل Microsoft Azure.

استخدم Azure Cloud Shell لتشغيل أوامر CLI.

بحلول نهاية هذا البرنامج التعليمي، عليك أن تكون قادرًا على:

  • مراقبة النسخ الاحتياطي واستعادة الوظائف
  • حماية قواعد البيانات الجديدة المضافة إلى مثيل SAP Hana
  • قم بتغيير السياسة
  • توقف عن الحماية
  • استئناف الحماية

إذا استخدمت نسخ قاعدة بيانات SAP Hana احتياطياً في Azure باستخدام CLI لنسخ قاعدة بيانات SAP Hana احتياطياً، فأنت تستخدم الموارد التالية:

  • مجموعة موارد تسمى saphanaResourceGroup
  • قبو باسم saphanaVault
  • حاوية محمية باسم VMAppContainer؛ Compute؛ saphanaResourceGroup؛ saphanaVM
  • قاعدة بيانات/عنصر تم نسخه احتياطياً باسم saphanadatabase؛ hxe؛ hxe
  • الموارد في منطقة westus2

يعمل Azure CLI على تسهيل إدارة قاعدة بيانات SAP Hana التي تعمل على Azure VM الذي تم نسخه احتياطياً باستخدام Azure Backup. يوضح هذا البرنامج التعليمي تفاصيل كل من عمليات الإدارة.

ملاحظة

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

مراقبة النسخ الاحتياطي واستعادة الوظائف

لمراقبة المهام المكتملة أو قيد التشغيل حالياً (النسخ الاحتياطي أو الاستعادة)، استخدم الأمر"cmdlet" لقائمة مهام النسخ الاحتياطي من az. يتيح لك CLI أيضاً تعليق مهمة قيد التشغيل حالياً أو الانتظار حتى تكتمل المهمة.

az backup job list --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --output table

ستبدو المخرجات كما يلي:

Name                                  Operation              Status      Item Name       Start Time UTC
------------------------------------  ---------------        ---------   ----------      -------------------  
e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup        Completed   hxe             2019-12-03T03:09:210831+00:00  
ccdb4dce-8b15-47c5-8c46-b0985352238f  Backup (Full)          Completed   hxe [hxehost]   2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282  Backup (Differential)  Completed   hxe [hxehost]   2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813  Restore (Log)          Completed   hxe [hxehost]   2019-12-03T05:44:51.081607+00:00

تغيير السياسة

لتغيير السياسة الأساسية لتكوين النسخ الاحتياطي لـ SAP Hana، استخدم cmdlet مجموعة سياسة النسخ الاحتياطي من az. تشير معلمة الاسم في أمر cmdlet هذا إلى عنصر النسخ الاحتياطي الذي نريد تغيير سياسته. بالنسبة لهذا البرنامج التعليمي، سنقوم باستبدال سياسة قاعدة بيانات SAP Hana saphanadatabase؛ hxe؛ hxe بسياسة جديدة newsaphanaPolicy. يمكن إنشاء سياسات جديدة باستخدام cmdlet سياسة النسخ الاحتياطي من az.

az backup item set policy --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --policy-name newsaphanaPolicy \
    --name saphanadatabase;hxe;hxe \

يجب أن يبدو الإخراج كما يلي:

Name                                  Resource Group
------------------------------------- --------------
cb110094-9b15-4c55-ad45-6899200eb8dd  SAPHANA

إنشاء سياسة نسخ احتياطي تزايدي

لإنشاء سياسة نسخ احتياطي تزايدي، قم بتنفيذ الأمر إنشاء سياسة النسخ الاحتياطي من az بالمعلمات التالية:

  • -نوع إدارة النسخ الاحتياطي - عبء عمل Azure
  • -نوع حمل العمل - SAPHana
  • - الاسم - اسم السياسة
  • -السياسة - ملف JSON بتفاصيل مناسبة للجدول الزمني والاحتفاظ
  • --مجموعة الموارد - مجموعة موارد المخزن
  • -اسم المخزن - اسم المخزن

مثال:

az backup policy create --resource-group saphanaResourceGroup --vault-name saphanaVault --name sappolicy --backup-management-type AzureWorkload --policy sappolicy.json --workload-type SAPHana

نموذج JSON (sappolicy.json):

  "eTag": null,
  "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/saphanaResourceGroup/providers/Microsoft.RecoveryServices/vaults/saphanaVault/backupPolicies/sappolicy",
  "location": null,
  "name": "sappolicy",
  "properties": {
    "backupManagementType": "AzureWorkload",
    "makePolicyConsistent": null,
    "protectedItemsCount": 0,
    "settings": {
      "isCompression": false,
      "issqlcompression": false,
      "timeZone": "UTC"
    },
    "subProtectionPolicy": [
      {
        "policyType": "Full",
        "retentionPolicy": {
          "dailySchedule": null,
          "monthlySchedule": {
            "retentionDuration": {
              "count": 60,
              "durationType": "Months"
            },
            "retentionScheduleDaily": null,
            "retentionScheduleFormatType": "Weekly",
            "retentionScheduleWeekly": {
              "daysOfTheWeek": [
                "Sunday"
              ],
              "weeksOfTheMonth": [
                "First"
              ]
            },
            "retentionTimes": [
              "2021-01-19T00:30:00+00:00"
            ]
          },
          "retentionPolicyType": "LongTermRetentionPolicy",
          "weeklySchedule": {
            "daysOfTheWeek": [
              "Sunday"
            ],
            "retentionDuration": {
              "count": 104,
              "durationType": "Weeks"
            },
            "retentionTimes": [
              "2021-01-19T00:30:00+00:00"
            ]
          },
          "yearlySchedule": {
            "monthsOfYear": [
              "January"
            ],
            "retentionDuration": {
              "count": 10,
              "durationType": "Years"
            },
            "retentionScheduleDaily": null,
            "retentionScheduleFormatType": "Weekly",
            "retentionScheduleWeekly": {
              "daysOfTheWeek": [
                "Sunday"
              ],
              "weeksOfTheMonth": [
                "First"
              ]
            },
            "retentionTimes": [
              "2021-01-19T00:30:00+00:00"
            ]
          }
        },
        "schedulePolicy": {
          "schedulePolicyType": "SimpleSchedulePolicy",
          "scheduleRunDays": [
            "Sunday"
          ],
          "scheduleRunFrequency": "Weekly",
          "scheduleRunTimes": [
            "2021-01-19T00:30:00+00:00"
          ],
          "scheduleWeeklyFrequency": 0
        }
      },
      {
        "policyType": "Incremental",
        "retentionPolicy": {
          "retentionDuration": {
            "count": 30,
            "durationType": "Days"
          },
          "retentionPolicyType": "SimpleRetentionPolicy"
        },
        "schedulePolicy": {
          "schedulePolicyType": "SimpleSchedulePolicy",
          "scheduleRunDays": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
          ],
          "scheduleRunFrequency": "Weekly",
          "scheduleRunTimes": [
            "2017-03-07T02:00:00+00:00"
          ],
          "scheduleWeeklyFrequency": 0
        }
      },
      {
        "policyType": "Log",
        "retentionPolicy": {
          "retentionDuration": {
            "count": 15,
            "durationType": "Days"
          },
          "retentionPolicyType": "SimpleRetentionPolicy"
        },
        "schedulePolicy": {
          "scheduleFrequencyInMins": 120,
          "schedulePolicyType": "LogSchedulePolicy"
        }
      }
    ],
    "workLoadType": "SAPHanaDatabase"
  },
  "resourceGroup": "saphanaResourceGroup",
  "tags": null,
  "type": "Microsoft.RecoveryServices/vaults/backupPolicies"
} 

بمجرد إنشاء السياسة بنجاح، سيعرض إخراج الأمر سياسة JSON التي قمت بتمريرها كمعامل أثناء تنفيذ الأمر.

يمكنك تعديل القسم التالي من السياسة لتحديد تردد النسخ الاحتياطي المطلوب والاحتفاظ بالنسخ الاحتياطية المتزايدة.

على سبيل المثال:

{
  "policyType": "Incremental",
  "retentionPolicy": {
    "retentionDuration": {
      "count": 30,
      "durationType": "Days"
    },
    "retentionPolicyType": "SimpleRetentionPolicy"
  },
  "schedulePolicy": {
    "schedulePolicyType": "SimpleSchedulePolicy",
    "scheduleRunDays": [
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday",
      "Saturday"
    ],
    "scheduleRunFrequency": "Weekly",
    "scheduleRunTimes": [
      "2017-03-07T02:00:00+00:00"
    ],
    "scheduleWeeklyFrequency": 0
  }
}

مثال:

إذا كنت ترغب في الحصول على نسخ احتياطية تزايدي فقط يوم السبت والاحتفاظ بها لمدة 60 يوماً، فقم بإجراء التغييرات التالية في السياسة:

  • تحديث retentionDuration عد إلى 60 يوماً
  • حدد يوم السبت فقط كـ ScheduleRunDays
 {
  "policyType": "Incremental",
  "retentionPolicy": {
    "retentionDuration": {
      "count": 60,
      "durationType": "Days"
    },
    "retentionPolicyType": "SimpleRetentionPolicy"
  },
  "schedulePolicy": {
    "schedulePolicyType": "SimpleSchedulePolicy",
    "scheduleRunDays": [
      "Saturday"
    ],
    "scheduleRunFrequency": "Weekly",
    "scheduleRunTimes": [
      "2017-03-07T02:00:00+00:00"
    ],
    "scheduleWeeklyFrequency": 0
  }
}

حماية قواعد البيانات الجديدة المضافة إلى مثيل SAP Hana

يؤدي تسجيل مثيل SAP Hana مع Recovery Services vault إلى اكتشاف جميع قواعد البيانات الموجودة في هذا المثيل تلقائياً.

ومع ذلك، في الحالات التي تتم فيها إضافة قواعد بيانات جديدة إلى مثيل SAP Hana لاحقاً، استخدم عنصر حماية النسخ الاحتياطي من az cmdlet. يكتشف هذا الأمر cmdlet قواعد البيانات الجديدة المضافة.

az backup protectable-item initialize --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --workload-type SAPHANA

ثم استخدم الأمر cmdlet لقائمة العناصر القابلة للحماية من az للنسخ الاحتياطي من az لسرد جميع قواعد البيانات التي تم اكتشافها في مثيل SAP Hana الخاص بك. ومع ذلك، تستثني هذه القائمة قواعد البيانات التي تم تكوين النسخ الاحتياطي عليها بالفعل. بمجرد اكتشاف قاعدة البيانات المراد نسخها احتياطياً، راجع تمكين النسخ الاحتياطي على قاعدة بيانات SAP Hana.

az backup protectable-item list --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --workload-type SAPHANA \
    --output table

ستظهر قاعدة البيانات الجديدة التي تريد نسخها احتياطياً في هذه القائمة، والتي ستبدو على النحو التالي:

Name                            Protectable Item Type    ParentName    ServerName    IsProtected
---------------------------     ----------------------   ------------  -----------   ------------
saphanasystem;hxe               SAPHanaSystem            HXE           hxehost       NotProtected  
saphanadatabase;hxe;systemdb    SAPHanaDatabase          HXE           hxehost       NotProtected
saphanadatabase;hxe;newhxe      SAPHanaDatabase          HXE           hxehost       NotProtected

أوقف الحماية لقاعدة بيانات SAP Hana

يمكنك التوقف عن حماية قاعدة بيانات SAP Hana بطريقتين:

  • أوقف جميع مهام النسخ الاحتياطي المستقبلية واحذف جميع نقاط الاسترداد.
  • أوقف جميع مهام النسخ الاحتياطي المستقبلية واترك نقاط الاسترداد سليمة.

إذا اخترت ترك نقاط الاسترداد، فضع هذه التفاصيل في الاعتبار:

  • ستبقى جميع نقاط الاسترداد سليمة إلى الأبد، وستتوقف جميع عمليات التقليم عند إيقاف الحماية مع الاحتفاظ بالبيانات.
  • ستتم محاسبتك على المثيل المحمي والتخزين المستهلك.
  • إذا حذفت مصدر بيانات دون إيقاف النسخ الاحتياطية، فستفشل النسخ الاحتياطية الجديدة.

دعونا نلقي نظرة على كل طريقة من طرق إيقاف الحماية بمزيد من التفصيل.

أوقف الحماية مع الاحتفاظ بالبيانات

لإيقاف الحماية مع الاحتفاظ بالبيانات، استخدم الأمر cmdlet تعطيل حماية النسخ الاحتياطي من az.

az backup protection disable --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --item-name saphanadatabase;hxe;hxe \
    --workload-type SAPHANA \
    --output table

يجب أن يبدو الإخراج كما يلي:

Name                                  ResourceGroup
------------------------------------  ---------------  
g0f15dae-7cac-4475-d833-f52c50e5b6c3  saphanaResourceGroup

للتحقق من حالة هذه العملية، استخدم الأمر cmdlet لمهمة النسخ الاحتياطي من az.

أوقف الحماية بدون الاحتفاظ بالبيانات

لإيقاف الحماية بدون الاحتفاظ بالبيانات، استخدم الأمر cmdlet تعطيل حماية النسخ الاحتياطي من az.

az backup protection disable --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --item-name saphanadatabase;hxe;hxe \
    --workload-type SAPHANA \
    --delete-backup-data true \
    --output table

يجب أن يبدو الإخراج كما يلي:

Name                                  ResourceGroup
------------------------------------  ---------------  
g0f15dae-7cac-4475-d833-f52c50e5b6c3  saphanaResourceGroup

للتحقق من حالة هذه العملية، استخدم الأمر cmdlet لمهمة النسخ الاحتياطي من az.

استئناف الحماية

عند إيقاف حماية قاعدة بيانات SAP Hana مع الاحتفاظ بالبيانات، يمكنك استئناف الحماية لاحقاً. إذا لم تحتفظ بالبيانات التي تم نسخها احتياطياً، فلن تتمكن من استئناف الحماية.

لاستئناف الحماية، استخدم الأمر cmdlet لاستئناف حماية النسخ الاحتياطي من az.

az backup protection resume --resource-group saphanaResourceGroup \
    --vault-name saphanaVault \
    --container-name VMAppContainer;Compute;saphanaResourceGroup;saphanaVM \
    --policy-name saphanaPolicy \
    --output table

يجب أن يبدو الإخراج كما يلي:

Name                                  ResourceGroup
------------------------------------  ---------------  
b2a7f108-1020-4529-870f-6c4c43e2bb9e  saphanaResourceGroup

للتحقق من حالة هذه العملية، استخدم الأمر cmdlet لمهمة النسخ الاحتياطي من az.

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