إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يتم استخدام Azure CLI لإنشاء موارد Azure وإدارتها من سطر الأوامر أو من خلال البرامج النصية. توضح هذه المقالة كيفية إدارة قاعدة بيانات SQL احتياطية على Azure VM باستخدام Azure CLI. يمكنك أيضا تنفيذ هذه الإجراءات باستخدام مدخل Microsoft Azure.
ملاحظه
إذا كنت قد استخدمت النسخ الاحتياطي لقاعدة بيانات SQL في Azure باستخدام CLI لنسخ قاعدة بيانات SQL احتياطيا، فأنت تستخدم الموارد التالية:
- مجموعة موارد تسمى SQLResourceGroup
- مخزن يسمى SQLVault
- حاوية محمية تسمى VMAppContainer؛ حسب; SQLResourceGroup; testSQLVM
- قاعدة بيانات/عنصر تم نسخه احتياطيا باسم sqldatabase؛ mssqlserver؛ أحسن
- الموارد في منطقة westus2
يسهل Azure CLI عملية إدارة قاعدة بيانات SQL تعمل على جهاز Azure الظاهري الذي تم نسخه احتياطيا باستخدام Azure Backup. تصف الأقسام التالية كل عملية من عمليات الإدارة.
تعرف على المزيد حول التكوينات والسيناريوهات المدعومة للنسخ الاحتياطي SQL.
مراقبة مهام النسخ الاحتياطي والاستعادة
استخدم الأمر az backup job list لمراقبة المهام المكتملة أو قيد التشغيل حاليا (النسخ الاحتياطي أو الاستعادة). يسمح لك CLI أيضا بتعليق مهمة قيد التشغيل حاليا أو الانتظار حتى تكتمل المهمة.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
يظهر الإخراج على النحو التالي:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master [testSQLVM] 2019-12-03T03:09:210831+00:00
ccdb4dce-8b15-47c5-8c46-b0985352238f Backup (Full) Completed master [testSQLVM] 2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282 Backup (Differential) Completed master [testSQLVM] 2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed master [testSQLVM] 2019-12-03T05:44:51.081607+00:00
تغيير نهج
لتغيير النهج الأساسي لتكوين النسخ الاحتياطي SQL، استخدم الأمر az backup policy set . تشير معلمة الاسم في هذا الأمر إلى عنصر النسخ الاحتياطي الذي تريد تغيير نهجه. هنا، استبدل نهج قاعدة بيانات SQL sqldatabase؛ mssqlserver؛ master مع نهج جديد جديدSQLPolicy. يمكنك إنشاء نهج جديدة باستخدام الأمر az backup policy create .
az backup item set-policy --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name newSQLPolicy \
--name sqldatabase;mssqlserver;master \
يظهر الإخراج على النحو التالي:
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ --------------- --------- ----------- ------------------------ -------------------------------- --------------
ba350996-99ea-46b1-aae2-e2096c1e28cd ConfigureBackup Completed master AzureWorkload 2022-06-22T08:24:03.958001+00:00 0:01:12.435765
إنشاء نهج نسخ احتياطي تفاضلي
لإنشاء نهج نسخ احتياطي تفاضلي، استخدم الأمر az backup policy create مع المعلمات التالية:
- --backup-management-type: حمل عمل Azure.
- --نوع حمل العمل: قاعدة بيانات SQL.
- --name: اسم النهج.
- --policy: ملف JSON مع التفاصيل المناسبة للجدول الزمني والاحتفاظ.
- --resource-group: مجموعة موارد المخزن.
- --vault-name: اسم المخزن/
على سبيل المثال:
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
نموذج JSON (sqlpolicy.json):
"eTag": null,
"id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupPolicies/SQLPolicy",
"location": null,
"name": "sqlpolicy",
"properties": {
"backupManagementType": "AzureWorkload",
"workLoadType": "SQLDataBase",
"settings": {
"timeZone": "UTC",
"issqlcompression": false,
"isCompression": false
},
"subProtectionPolicy": [
{
"policyType": "Full",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Sunday"
],
"scheduleRunTimes": [
"2022-06-13T19:30:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 104,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
},
{
"policyType": "Differential",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunTimes": [
"2022-06-13T02:00:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
},
{
"policyType": "Log",
"schedulePolicy": {
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": 120
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 15,
"durationType": "Days"
}
}
}
],
"protectedItemsCount": 0
},
"resourceGroup": "SQLResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
بمجرد إنشاء النهج بنجاح، يظهر إخراج الأمر نهج JSON الذي قمت بتمريره كمعلمة أثناء تنفيذ الأمر.
يمكنك تعديل القسم التالي من النهج لتحديد تكرار النسخ الاحتياطي المطلوب والاحتفاظ به للنسخ الاحتياطية التفاضلية.
على سبيل المثال:
{
"policyType": "Differential",
"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 يوما، فقم بإجراء التغييرات التالية في النهج:
- تحديث عدد مدة الاستبقاء إلى 60 يوما.
- حدد يوم السبت فقط ك ScheduleRunDays.
{
"policyType": "Differential",
"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
}
}
حماية قواعد البيانات الجديدة المضافة إلى مثيل SQL
تسجيل مثيل SQL مع مخزن خدمات الاسترداد يكتشف تلقائيا جميع قواعد البيانات في هذا المثيل.
ومع ذلك، إذا قمت بإضافة قواعد بيانات جديدة إلى مثيل SQL لاحقا، فاستخدم الأمر az backup protectable-item initialize . يكتشف هذا الأمر قواعد البيانات الجديدة المضافة.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
ثم استخدم az backup protectable-item list cmdlet لسرد جميع قواعد البيانات التي تم اكتشافها على مثيل SQL الخاص بك. ومع ذلك، تستبعد هذه القائمة قواعد البيانات التي تم تكوين النسخ الاحتياطي عليها بالفعل. بمجرد اكتشاف قاعدة البيانات التي سيتم نسخها احتياطيا، راجع تمكين النسخ الاحتياطي على قاعدة بيانات SQL.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
تظهر قاعدة البيانات الجديدة التي تريد نسخها احتياطيا في هذه القائمة، والتي تظهر على النحو التالي:
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
إيقاف الحماية لقاعدة بيانات SQL
يمكنك إيقاف حماية قاعدة بيانات SQL في العمليات التالية:
- أوقف جميع مهام النسخ الاحتياطي المستقبلية واحذف جميع نقاط الاسترداد.
- أوقف جميع مهام النسخ الاحتياطي المستقبلية واترك نقاط الاسترداد سليمة.
إذا اخترت ترك نقاط الاسترداد، فضع في اعتبارك هذه التفاصيل:
- تظل جميع نقاط الاسترداد سليمة إلى الأبد، وتتوقف جميع عمليات اقتطاع البيانات عند إيقاف الحماية مع الاحتفاظ بالبيانات.
- ستتم محاسبتك على المثيل المحمي والتخزين المستهلك.
- إذا حذفت مصدر بيانات دون إيقاف النسخ الاحتياطية، فستفشل النسخ الاحتياطية الجديدة.
فيما يلي تفاصيل عمليات إيقاف الحماية.
إيقاف الحماية مع الاحتفاظ بالبيانات
لإيقاف الحماية مع الاحتفاظ بالبيانات، استخدم الأمر az backup protection disable' .
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--output table
يظهر الإخراج على النحو التالي:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
للتحقق من حالة هذه العملية، استخدم الأمر az backup job show .
إيقاف الحماية دون الاحتفاظ بالبيانات
لإيقاف الحماية دون الاحتفاظ بالبيانات، استخدم الأمر az backup protection disable .
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--delete-backup-data true \
--output table
يظهر الإخراج على النحو التالي:
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
للتحقق من حالة هذه العملية، استخدم الأمر az backup job show .
استئناف الحماية
عند إيقاف الحماية لقاعدة بيانات SQL مع الاحتفاظ بالبيانات، يمكنك استئناف الحماية لاحقا. إذا لم تحتفظ بالبيانات التي تم نسخها احتياطيا، فلن تتمكن من استئناف الحماية.
لاستئناف الحماية، استخدم الأمر az backup protection resume .
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name SQLPolicy \
--output table
يظهر الإخراج على النحو التالي:
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
للتحقق من حالة هذه العملية، استخدم الأمر az backup job show .
الخطوات التالية
- تعرف على كيفية إجراء نسخ احتياطي لقاعدة بيانات SQL قيد التشغيل على جهاز Azure الظاهري باستخدام مدخل Microsoft Azure.
- تعرف على كيفية إدارة قاعدة بيانات SQL احتياطية تعمل على Azure VM باستخدام مدخل Microsoft Azure.