مشاركة عبر


نسخ قواعد بيانات SQL نسخًا احتياطيًا في جهاز Azure الظاهري باستخدام Azure CLI

يتم استخدام Azure CLI لإنشاء موارد Azure وإدارتها من سطر الأوامر أو من خلال البرامج النصية. توضح هذه المقالة كيفية إجراء نسخ احتياطي لقاعدة بيانات SQL في Azure VM وتشغيل النسخ الاحتياطية عند الطلب باستخدام Azure CLI. يمكنك أيضا تنفيذ هذه الإجراءات باستخدام مدخل Microsoft Azure.

يفترض هذا المقال أن لديك قاعدة بيانات SQL مثبتة على جهاز Azure الافتراضي مسبقًا. (يمكنك أيضا إنشاء جهاز ظاهري باستخدام Azure CLI).

ستتعرف في هذه المقالة على كيفية:

  • أنشئ مخزن خدمات الاسترداد
  • تسجيل خادم SQL واكتشاف قاعدة (قواعد) البيانات عليه
  • تمكين النسخ الاحتياطي على قاعدة بيانات SQL
  • تشغيل نسخة احتياطية عند الطلب

راجع السيناريوهات المدعومة حاليا ل SQL في Azure VM.

المتطلبات الأساسية

أنشئ مخزن خدمات الاسترداد

يُعد مخزن Recovery Services حاوية منطقية تخزن بيانات النسخ الاحتياطي للموارد المحمية، على سبيل المثال أجهزة Azure الظاهرية. عند تشغيل مهمة النسخ الاحتياطي، فإنها تنشئ نقطة استعادة داخل مخزن Recovery Services. يمكنك بعد ذلك استخدام إحدى نقاط الاسترداد هذه لاستعادة البيانات إلى نقطة زمنية معينة.

إنشاء مخزن خدمات الاسترداد باستخدام الأمر az backup vault create . استخدم مجموعة الموارد وموقعها تمامًا مثل الجهاز الظاهري الذي ترغب في حمايته. تعرف على كيفية إنشاء جهاز ظاهري يعمل بنظام WindowsوLinux VM باستخدام Azure CLI.

لهذه المقالة، سنستخدم:

  • مجموعة موارد تسمى SQLResourceGroup
  • جهاز ظاهري يسمى testSQLVM
  • الموارد في موقع westus2 .

قم بتشغيل الأمر التالي لإنشاء مخزن يسمى SQLVault.

az backup vault create --resource-group SQLResourceGroup \
    --name SQLVault \
    --location westus2

بشكل افتراضي، يتم تعيين مخزن خدمات الاستعادة لتخزين Geo-Redundant. يضمن التكرار الجغرافي تكرار البيانات الاحتياطية في منطقة Azure ثانوية، حتى لو كان على بعد مئات الأميال من المنطقة الرئيسية. إذا كان إعداد التكرار للتخزين بحاجة إلى تعديل، فاستخدم الأمر az backup vault backup-properties set .

az backup vault backup-properties set \
    --name SQLVault  \
    --resource-group SQLResourceGroup \
    --backup-storage-redundancy "LocallyRedundant/GeoRedundant"

للتحقق مما إذا تم إنشاء المخزن بنجاح، استخدم الأمر az backup vault list . تظهر الاستجابة على النحو التالي:

Location   Name             ResourceGroup
---------  ---------------  -------------  
westus2    SQLVault     	SQLResourceGroup

تسجيل وحماية SQL Server

لتسجيل SQL Server مع مخزن خدمات الاسترداد، استخدم الأمر az backup container register . VMResourceId هو معرف المورد للجهاز الظاهري الذي قمت بإنشائه لتثبيت SQL.

az backup container register --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
    --backup-management-type AzureWorkload \
    --resource-id VMResourceId

إشعار

إذا لم يكن الجهاز الظاهري موجودا في نفس مجموعة الموارد مثل المخزن، فإن SQLResourceGroup يستخدم مجموعة الموارد حيث تم إنشاء المخزن.

تسجيل خادم SQL تلقائياً يكتشف جميع قواعد البيانات الحالية الخاصة به. ومع ذلك، لاكتشاف أي قواعد بيانات جديدة قد تتم إضافتها في المستقبل، راجع قسم Discovering new databases added to the registered SQL server .

استخدم الأمر az backup container list للتحقق مما إذا كان مثيل SQL مسجلا بنجاح في المخزن الخاص بك. تظهر الاستجابة على النحو التالي:

Name                                                    Friendly Name    Resource Group        Type           Registration Status
------------------------------------------------------  --------------   --------------------  ---------      ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM   	testSQLVM        SQLResourceGroup  		AzureWorkload  Registered

إشعار

يشير اسم العمود في الإخراج أعلاه إلى اسم الحاوية. يتم استخدام اسم الحاوية هذا في المقاطع التالية لتمكين النسخ الاحتياطية وتشغيلها. على سبيل المثال، VMAppContainer؛ حسب; SQLResourceGroup; testSQLVM.

تمكين النسخ الاحتياطي على قاعدة بيانات SQL

يسرد الأمر az backup protectable-item list جميع قواعد البيانات المكتشفة على مثيل SQL الذي قمت بتسجيله في الخطوة السابقة.

az backup protectable-item list --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
	--backup-management-type AzureWorkload \
	--protectable-item-type SQLDataBase
    --output table

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

Name                           		Protectable Item Type    ParentName    ServerName    	IsProtected
-----------------------------  		----------------------   ------------  -----------   	------------
sqldatabase;mssqlserver;master      SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;model       SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;msdb        SQLDataBase              MSSQLServer   testSQLVM        NotProtected  

الآن، قم بتكوين النسخ الاحتياطي ل sqldatabase؛ mssqlserver؛ قاعدة البيانات الرئيسية.

لتكوين النسخ الاحتياطية وحمايتها على قاعدة بيانات، واحدا تلو الآخر، استخدم الأمر az backup protection enable-for-azurewl . أدخل اسم النهج الذي تريد استخدامه. لإنشاء نهج باستخدام CLI، استخدم الأمر az backup policy create . بالنسبة لهذه المقالة، استخدمنا نهج testSQLPolicy .

az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqldatabase;mssqlserver;master"  \
    --protectable-item-type SQLDataBase \
    --server-name testSQLVM \
    --workload-type SQLDataBase \
    --output table

يمكنك استخدام نفس الأمر، إذا كان لديك مجموعة قابلية وصول عالية التوفر AlwaysOn SQL وتريد تحديد مصدر البيانات القابل للحماية داخل مجموعة التوفر. هنا، نوع العنصر القابل للحماية هو SQLAG.

للتحقق مما إذا كان تكوين النسخ الاحتياطي أعلاه مكتملا، استخدم الأمر az backup job list . يظهر الإخراج على النحو التالي:

Name                                  Operation         Status     Item Name   Start Time UTC
------------------------------------  ---------------   ---------  ----------  -------------------  
e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup   Completed  master         2019-12-03T03:09:210831+00:00  

يسرد الأمر az backup job list جميع مهام النسخ الاحتياطي (المجدولة أو عند الطلب) التي تم تشغيلها أو التي تعمل حاليا على قاعدة البيانات المحمية، بالإضافة إلى عمليات أخرى، مثل التسجيل وتكوين النسخ الاحتياطي وحذف بيانات النسخ الاحتياطي.

إشعار

لا يتم ضبط Azure Backup تلقائياً لتغييرات التوقيت الصيفي عند النسخ الاحتياطي لقاعدة بيانات SQL قيد التشغيل في أجهزة Azure الظاهرية.

تعديل النهج يدوياً حسب الحاجة.

تمكين الحماية التلقائية

لتكوين النسخ الاحتياطي السلس، يمكن حماية جميع قواعد البيانات المضافة في المستقبل تلقائيًا باستخدام نهج معين. لتمكين الحماية التلقائية، استخدم الأمر az backup protection auto-enable-for-azurewl .

نظرا لأن التعليمات هي إجراء نسخ احتياطي لجميع قواعد البيانات المستقبلية، يتم إجراء العملية على مستوى SQLInstance .

az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqlinstance;mssqlserver"  \
    --protectable-item-type SQLInstance \
    --server-name testSQLVM \
    --workload-type MSSQL\
    --output table

تشغيل نسخة احتياطية عند الطلب

لتشغيل نسخة احتياطية عند الطلب، استخدم الأمر az backup protection backup-now .

إشعار

يتم تحديد فترة الاحتفاظ بهذه النسخة الاحتياطية حسب نوع النسخ الاحتياطي عند الطلب الذي قمت بتشغيله.

  • يحتفظ كامل عند الطلب بالنسخ الاحتياطية لمدة لا تقل عن 45 يوما وبحد أقصى 99 عاما.
  • تقبل النسخة الكاملة عند الطلب فقط أي قيمة للاحتفاظ بها.
  • يحتفظ التفاضلي عند الطلب بالنسخ الاحتياطي وفقا للاحتفاظ بالفوارق المجدولة المحددة في النهج.
  • يحتفظ السجل عند الطلب بالنسخ الاحتياطية وفقا للاحتفاظ بالسجلات المجدولة المحددة في النهج.
az backup protection backup-now --resource-group SQLResourceGroup \
    --item-name sqldatabase;mssqlserver;master \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --backup-type Full
    --retain-until 01-01-2040
    --output table

يظهر الإخراج على النحو التالي:

Name                                  ResourceGroup
------------------------------------  -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3  sqlResourceGroup

ستوفر الاستجابة اسم المهمة. يمكنك استخدام اسم الوظيفة هذا لتعقب حالة الوظيفة باستخدام الأمر az backup job show .

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