حول النَّسخ الاحتياطي لـ SQL Server في Azure VMs
يوفرAzure Backup حلّاً متخصصاً قائماً على التدفق لعمل نسخة احتياطية من SQL Server الذي يتم تشغيله في Azure VMs. يتوافق هذا الحل مع مزايا Azure Backup للنسخ الاحتياطي دون بنية الأساسية واستبقاء طويل الأمد وإدارة مركزية. يوفر بالإضافة إلى ذلك المزايا التالية خصوصاً لـ SQL Server:
- حمل العمل على علم بالنسخ الاحتياطية التي تدعم جميع أنواع النسخ الاحتياطي -- النسخ الاحتياطي الكامل، والنسخ الاحتياطي التفاضلي، والنسخ الاحتياطي للسجل
- 15 دقيقة RPO (هدف نقطة الاسترداد) مع نسخ احتياطي متكرر للسجلات
- استرداد في نقطة زمنية حتى ثانية
- نسخ احتياطي واستعادة مستوى قاعدة بيانات فردية
لعرض سيناريوهات النَّسخ الاحتياطي والاستعادة التي ندعمها اليوم، راجع مصفوفة الدعم.
عملية النسخ الاحتياطي
يستفيد هذا الحل من واجهات برمجة التطبيقات الأصلية لـ SQL لأخذ نُسخ احتياطية من قواعد بيانات SQL الخاصة بك.
بمخزون تحديد SQL Server VM الذي تريد حمايته والاستعلام عن قواعد البيانات الموجودة فيه، ستقوم Azure Backup Service بتثبيت ملحق نسخة احتياطية لحمل العمل على الجهاز الظاهري حسب الاسم
AzureBackupWindowsWorkload
الملحق.يتكون هذا الامتداد من منسق ومكوِّن إضافي لـ SQL. بينما يكون المنسق مسؤولاً عن بدء سير العمل لمختلف العمليات، مثل تكوين النَّسخ الاحتياطي والنَّسخ الاحتياطي والاستعادة، فإن المكون الإضافي مسؤول عن تدفق البيانات الفعلي.
لتتمكن من اكتشاف قواعد البيانات على هذا الجهاز الظاهري، يقوم Azure Backup بإنشاء الحساب
NT SERVICE\AzureWLBackupPluginSvc
. يتم استخدام هذا الحساب للنسخ الاحتياطي والاستعادة، ويتطلب أذونات SQL sysadmin. حسابNT SERVICE\AzureWLBackupPluginSvc
هو حساب خدمة ظاهري، وبالتالي لا يتطلب أي إدارة لكلمات المرور. يستخدم Azure Backup حسابNT AUTHORITY\SYSTEM
لاكتشاف/استعلام قاعدة البيانات؛ لذلك يجب أن يكون هذا الحساب تسجيل دخول عامّاً على SQL. إذا لم تقم بإنشاء الجهاز الظاهري SQL Server من Azure Marketplace، فقد تتلقى خطأ UserErrorSQLNoSysadminShip. إذا حدث هذا، فاتبع هذه الإرشادات.بمخزون تشغيل تكوين الحماية على قواعد البيانات المحددة، تقوم خدمة النَّسخ الاحتياطي بإعداد المنسق بجداول النَّسخ الاحتياطي وتفاصيل النُّهج الأخرى، والتي يخزنها الامتداد مؤقتاً محليًّا على الجهاز الظاهري.
في الوقت المحدد، يتواصل المنسق مع المكون الإضافي ويبدأ في دفق بيانات النسخ الاحتياطي من خادم SQL باستخدام VDI.
يرسل المكون الإضافي البيانات مباشرة إلى خزنة خدمات الاسترداد، وبالتالي يُلغي الحاجة إلى موقع التدريج. يتم تشفير البيانات وتخزينها بواسطة خدمة Azure Backup في حسابات التخزين.
عند اكتمال نقل البيانات، يؤكد المنسق الالتزام بخدمة النَّسخ الاحتياطي.
قبل أن تبدأ
قَبل أن تبدأ، تحقق من المتطلبات التالية:
- تأكد من تشغيل مثيل SQL Server في Azure. يمكنك إنشاء مثيل SQL Server بسرعة في السوق.
- راجع اعتبارات الميزات ودعم السيناريو.
- راجع الأسئلة المتداولة حول هذا السيناريو.
تعيين أذونات الجهاز الظاهري
عند تشغيل اكتشاف على SQL Server، تقوم خدمة Azure Backup بما يلي:
- إضافة الملحق AzureBackUpWindowsWorkload.
- إنشاء حساب NT SERVICE\AzureWLBackupPluginSvc لاكتشاف قواعد البيانات على الجهاز الظاهري. يتم استخدام هذا الحساب للنسخ الاحتياطي والاسترداد ويتطلب أذونات مسؤول نظام SQL.
- اكتشاف قواعد البيانات التي تعمل على الجهاز الظاهري، تستخدم خدمة Azure Backup حساب NT AUTHORITY\SYSTEM. يجب أن يكون هذا الحساب مخصصًا لتسجيل الدخول العام على SQL.
إذا لم تقم بإنشاء SQL Server VM في Azure Marketplace أو إذا كنت تستخدم SQL 2008 أو 2008 R2، فقد تتلقى خطأ UserErrorSQLNoSysadminMembership.
لمنح الأذونات في حالة تشغيل SQL 2008 و2008 R2 على Windows 2008 R2، راجع هنا.
لجميع الإصدارات الأخرى، أصلح الأذونات من خلال الخطوات التالية:
استخدم حساباً به أذونات مسؤول النظام في SQL Server لتسجيل الدخول إلى SQL Server Management Studio (SSMS). يجب أن تعمل مصادقة Windows ما لم تكن بحاجة إلى أذونات خاصة.
في SQL Server، افتح المجلد Security/Logins.
انقر بزر الماوس الأيمن فوق المجلد Logins وحدد New Login. في Login - New، حدد Search.
تم إنشاء حساب خدمة Windows الافتراضية NT SERVICE \ AzureWLBackupPluginSvc في أثناء تسجيل الجهاز الظاهري ومرحلة اكتشاف SQL. أدخل اسم الحساب كما هو موضح في أدخل اسم الكائن لتحديد. حدد Check Names لتحديد الاسم. حدد موافق.
في أدوار الخادم، تأكد من تحديد دور مسؤول النظام. حدد موافق. يجب أن تكون الأذونات المطلوبة موجودة الآن.
الآن قم بربط قاعدة البيانات بمخزن خدمات الاسترداد. في مدخل Microsoft Azure، في قائمة Protected Servers، انقر بزر الماوس الأيمن فوق الخادم الموجود في حالة خطأ >Rediscover DBs.
تحقق من التقدم في منطقة التنبيهات. عند العثور على قواعد البيانات المحددة، تظهر رسالة نجاح.
إشعار
إذا كان لدى SQL Server مثيلات متعددة من SQL Server مثبتة، يجب عليك إضافة إذن مسؤول النظام لحساب NT Service \ AzureWLBackupPluginSvc إلى جميع مثيلات SQL.
امنح أذونات SQL sysadmin لكلٍّ مِن SQL 2008 وSQL 2008 R2
أضف تسجيلات دخول NT AUTHORITY \ SYSTEM وNT Service \ AzureWLBackupPluginSvc إلى مثيل SQL Server:
انتقل إلى مثيل SQL Server في مستكشف الكائنات.
انتقل إلى Security -> Logins
انقر بزر الماوس الأيمن فوق عمليات تسجيل الدخول، وحدد New Login…
انتقل إلى علامة التبويب "عام" وأدخل NT AUTHORITY \ SYSTEM كاسم تسجيل الدخول.
انتقل إلى Server Roles واختر الدورَيْن public وsysadmin.
انتقل إلى Status. امنح الإذن بالاتصال بمحرك قاعدة البيانات وتسجيل الدخول كـ ممكَّن.
حدد موافق.
كرر تسلسل الخطوات نفسه (1-7 أعلاه) لإضافة تسجيل دخول NT Service \ AzureWLBackupPluginSvc إلى مثيل SQL Server. إذا كان تسجيل الدخول موجوداً بالفعل، فتأكد من أنه يحتوي على دور خادم مسؤول النظام وتحت الحالة، منح الإذن بالاتصال بمحرك قاعدة البيانات وتسجيل الدخول كممكَّن.
بعد منح الإذن، أعد اكتشاف DBs في المدخل: Vault -> Manage -> Backup Infrastructure -> Workload في Azure VM:
بدلاً من ذلك، يمكنك أتمتة منح الأذونات عن طريق تشغيل أوامر PowerShell التالية في وضع المسؤول. يتم تعيين اسم المثيل إلى MSSQLSERVER افتراضيًّا. تغيير وسيطة اسم المثيل في البرنامج النصي إذا لزم الأمر.
param(
[Parameter(Mandatory=$false)]
[string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
$fullInstance = $env:COMPUTERNAME # In case it is the default SQL Server Instance
}
else
{
$fullInstance = $env:COMPUTERNAME + "\" + $InstanceName # In case of named instance
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
تكوين النسخ الاحتياطية المتزامنة
يمكنك الآن تكوين النسخ الاحتياطية لحفظ نقاط وسجلات استرداد خادم SQL في مخزن محلي وخزنة خدمات الاسترداد في وقت واحد.
لتكوين النسخ الاحتياطية المتزامنة، اتبع الخطوات التالية:
انتقل إلى
C:\Program Files\Azure Workload Backup\bin\plugins
الموقع، ثم قم بإنشاء الملف PluginConfigSettings.json، إذا لم يكن موجودا.أضف كيانات قيمة المفتاح المفصولة بفواصل، مع المفاتيح
EnableLocalDiskBackupForBackupTypes
وإلىLocalDiskBackupFolderPath
ملف JSON.ضمن
EnableLocalDiskBackupForBackupTypes
، اسرد أنواع النسخ الاحتياطي التي تريد تخزينها محليا.على سبيل المثال، إذا كنت تريد تخزين النسخ الاحتياطية الكاملة والسجل، فذكر
["Full", "Log"]
. لتخزين النسخ الاحتياطية للسجل فقط، ذكر["Log"]
.ضمن
LocalDiskBackupFolderPath
، اذكر المسار إلى المجلد المحلي. تأكد من استخدام الشرطة المائلة المزدوجة للأمام أثناء الإشارة إلى المسار في ملف JSON.على سبيل المثال، إذا كان المسار المفضل للنسخ الاحتياطي المحلي هو
E:\LocalBackup
، فذكر المسار في JSON كE:\\LocalBackup
.يجب أن يظهر JSON النهائي على النحو التالي:
{ "EnableLocalDiskBackupForBackupTypes": ["Log"], "LocalDiskBackupFolderPath": "E:\\LocalBackup", }
إذا كانت هناك إدخالات أخرى مملوءة مسبقا في ملف JSON، فأضف الإدخالين أعلاه في أسفل ملف JSON قبل قوس الإغلاق المتعرج.
لكي تدخل التغييرات حيز التنفيذ على الفور بدلا من ساعة واحدة عادية، انتقل إلى TaskManager>Services، وانقر بزر الماوس الأيمن فوق AzureWLbackupPluginSvc وحدد Stop.
تنبيه
سيؤدي هذا الإجراء إلى إلغاء جميع مهام النسخ الاحتياطي المستمرة.
سيكون
{LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}
اصطلاح التسمية لملف النسخ الاحتياطي المخزن وبنية المجلد له هو .على سبيل المثال، إذا كان لديك قاعدة بيانات
Contoso
ضمن مثيلMSSQLSERVER
SQL ، فستوجد الملفات في .E:\LocalBackup\MSSQLSERVER\Contoso
اسم الملف هو
VDI device set guid
، والذي يستخدم لعملية النسخ الاحتياطي.تحقق مما إذا كان الموقع الهدف ضمن
LocalDiskBackupFolderPath
لديه أذونات القراءة والكتابة لNT Service\AzureWLBackupPluginSvc
.إشعار
بالنسبة إلى مجلد على أقراص الجهاز الظاهري المحلية، انقر بزر الماوس الأيمن فوق المجلد وقم بتكوين الأذونات المطلوبة ل
NT Service\AzureWLBackupPluginSvc
في علامة التبويب الأمان .إذا كنت تستخدم شبكة أو مشاركة SMB، فكون الأذونات عن طريق تشغيل أوامر PowerShell cmdlets أدناه من وحدة تحكم مستخدم لديها بالفعل الإذن للوصول إلى المشاركة:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>: -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
مثال:
$cred = Get-Credential New-SmbGlobalMapping -RemotePath \\i00601p1imsa01.file.core.windows.net\rsvshare -Credential $cred -LocalPath Y: -FullAccess @("NT AUTHORITY\SYSTEM","NT Service\AzureWLBackupPluginSvc") -Persistent $true
الخطوات التالية
- تعرف على معلومات حول النَّسخ الاحتياطي لقواعد بيانات SQL Server.
- تعرف على استعادة قواعد بيانات SQL Server التي تم نسخها احتياطيًّا.
- تعرف على إدارة قواعد بيانات SQL Server التي تم نسخها احتياطيًّا.