نسخ قواعد البيانات احتياطيا واستعادتها في Azure SQL Edge
هام
سيتم إيقاف Azure SQL Edge في 30 سبتمبر 2025. لمزيد من المعلومات وخيارات الترحيل، راجع إشعار الإيقاف.
إشعار
لم يعد Azure SQL Edge يدعم النظام الأساسي ARM64.
تم إنشاء Azure SQL Edge على أحدث إصدارات مشغل قاعدة بيانات Microsoft SQL. يوفر إمكانات مماثلة للنسخ الاحتياطي واستعادة قاعدة البيانات إلى SQL Server على Linux وSQL Server قيد التشغيل في حاويات. يوفر مكون النسخ الاحتياطي والاستعادة حماية أساسية لحماية البيانات المخزنة في قواعد بيانات Azure SQL Edge.
لتقليل مخاطر فقدان البيانات الكارثية، يجب إجراء نسخ احتياطي لقواعد البيانات بشكل دوري للحفاظ على التعديلات على بياناتك بانتظام. تساعد استراتيجية النسخ الاحتياطي والاستعادة المخطط لها جيدا على حماية قواعد البيانات من فقدان البيانات الناجم عن حالات الفشل المختلفة. اختبر استراتيجيتك عن طريق استعادة مجموعة من النسخ الاحتياطية ثم استرداد قاعدة البيانات الخاصة بك، لإعدادك للاستجابة بشكل فعال لكارثة.
لقراءة المزيد حول سبب أهمية النسخ الاحتياطية، راجع النسخ الاحتياطي واستعادة قواعد بيانات SQL Server.
يمكنك Azure SQL Edge من النسخ الاحتياطي والاستعادة من كل من التخزين المحلي والكائنات الثنائية كبيرة الحجم ل Azure. لمزيد من المعلومات، راجع النسخ الاحتياطي والاستعادة ل SQL Server باستخدام تخزين Azure Blob والنسخ الاحتياطي ل SQL Server إلى عنوان URL.
النسخ الاحتياطي لقاعدة بيانات في Azure SQL Edge
يدعم Azure SQL Edge نفس أنواع النسخ الاحتياطي مثل SQL Server. للحصول على قائمة كاملة، راجع نظرة عامة على النسخ الاحتياطي.
هام
تستخدم قواعد البيانات التي تم إنشاؤها في Azure SQL Edge نموذج الاسترداد البسيط بشكل افتراضي. على هذا النحو، لا يمكنك إجراء نسخ احتياطية للسجلات على قواعد البيانات هذه. إذا كنت بحاجة إلى القيام بذلك، فستحتاج إلى مسؤول لتغيير نموذج استرداد قاعدة البيانات إلى نموذج الاسترداد الكامل. للحصول على قائمة كاملة بنماذج الاسترداد التي يدعمها SQL Server، راجع نظرة عامة على نموذج الاسترداد.
النسخ الاحتياطي إلى القرص المحلي
في المثال التالي، يمكنك استخدام BACKUP DATABASE
الأمر Transact-SQL لإنشاء نسخة احتياطية لقاعدة بيانات في الحاوية. على سبيل المثال، يمكنك إنشاء مجلد جديد يسمى النسخ الاحتياطي لتخزين ملفات النسخ الاحتياطي.
إنشاء مجلد للنسخ الاحتياطية. قم بتشغيل هذا الأمر على المضيف حيث يتم تشغيل حاوية Azure SQL Edge. في الأمر التالي، استبدل <AzureSQLEdge_Container_Name> باسم حاوية Azure SQL Edge في النشر الخاص بك.
sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
اتصل بمثيل Azure SQL Edge باستخدام SQL Server Management Studio (SSMS)، أو باستخدام Azure Data Studio.
BACKUP DATABASE
قم بتشغيل الأمر لأخذ النسخة الاحتياطية من قاعدة بيانات المستخدم. في المثال التالي، تقوم بأخذ النسخة الاحتياطيةIronOreSilicaPrediction
من قاعدة البيانات.BACKUP DATABASE [IronOreSilicaPrediction] TO DISK = N'/var/opt/mssql/backup/IronOrePredictDB.bak' WITH NOFORMAT, NOINIT, NAME = N'IronOreSilicaPrediction-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10; GO
بعد تشغيل الأمر، إذا نجحت النسخة الاحتياطية لقاعدة البيانات، فسترى رسائل مشابهة للرسائل التالية في قسم النتائج في SSMS أو Azure Data Studio.
10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. 80 percent processed. 90 percent processed. 100 percent processed. Processed 51648 pages for database 'IronOreSilicaPrediction', file 'IronOreSilicaPrediction' on file 1. Processed 2 pages for database 'IronOreSilicaPrediction', file 'IronOreSilicaPrediction_log' on file 1. BACKUP DATABASE successfully processed 51650 pages in 3.588 seconds (112.461 MB/sec). Completion time: 2020-04-09T23:54:48.4957691-07:00
النسخ الاحتياطي إلى عنوان ويب
يدعم Azure SQL Edge النسخ الاحتياطية لكل من الكائنات الثنائية كبيرة الحجم للصفحة والكائنات الثنائية كبيرة الحجم للكتلة. لمزيد من المعلومات، راجع النسخ الاحتياطي لحظر كائن ثنائي كبير الحجم مقابل كائن ثنائي كبير الحجم للصفحة. في المثال التالي، يتم نسخ قاعدة البيانات IronOreSilicaPrediction
احتياطيا إلى كائن ثنائي كبير الحجم للكتلة.
لتكوين النسخ الاحتياطية لحظر الكائنات الثنائية كبيرة الحجم، قم أولا بإنشاء رمز مميز لتوقيع الوصول المشترك (SAS) الذي يمكنك استخدامه لإنشاء بيانات اعتماد SQL Server على Azure SQL Edge. ينشئ البرنامج النصي SAS المقترن بنهج وصول مخزن. لمزيد من المعلومات، راجع توقيعات الوصول المشترك، الجزء 1: فهم نموذج SAS. يكتب البرنامج النصي أيضا أمر T-SQL المطلوب لإنشاء بيانات الاعتماد على SQL Server. يفترض البرنامج النصي التالي أن لديك بالفعل اشتراك Azure مع حساب تخزين، وحاوية تخزين للنسخ الاحتياطية.
# Define global variables for the script $subscriptionName='<your subscription name>' # the name of subscription name you will use $resourcegroupName = '<your resource group name>' # the name of resource group you will use $storageAccountName= '<your storage account name>' # the storage account name you will use for backups $containerName= '<your storage container name>' # the storage container name to which you will attach the SAS policy with its SAS token $policyName = 'SASPolicy' # the name of the SAS policy # adds an authenticated Azure account for use in the session Login-AzAccount # set the tenant, subscription and environment for use in the rest of Select-AzSubscription -Subscription $subscriptionName # Generate the SAS token $sa = Get-AzStorageAccount -ResourceGroupName $resourcegroupName -Name $storageAccountName $storagekey = Get-AzStorageAccountKey -ResourceGroupName $resourcegroupName -Name $storageAccountName $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storagekey[0].Value $cbc = Get-AzStorageContainer -Name $containerName -Context $storageContext $policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld" $sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName Write-Host 'Shared Access Signature= '$($sas.Substring(1))'' # Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature Write-Host 'Credential T-SQL' $tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.CloudBlobContainer.Uri.AbsoluteUri,$sas.Substring(1) $tSql | clip Write-Host $tSql
بعد تشغيل البرنامج النصي بنجاح، انسخ
CREATE CREDENTIAL
الأمر إلى أداة استعلام. ثم اتصل بمثيل SQL Server، وقم بتشغيل الأمر لإنشاء بيانات الاعتماد باستخدام SAS.اتصل بمثيل Azure SQL Edge باستخدام SSMS أو Azure Data Studio، وأنشئ بيانات الاعتماد باستخدام الأمر من الخطوة السابقة. تأكد من استبدال
CREATE CREDENTIAL
الأمر بالمخرج الفعلي من الخطوة السابقة.IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>') CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';
يأخذ الأمر التالي نسخة احتياطية من
IronOreSilicaPrediction
إلى حاوية تخزين Azure.BACKUP DATABASE IronOreSilicaPrediction TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak' With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536; GO
استعادة قاعدة بيانات في Azure SQL Edge
في Azure SQL Edge، يمكنك الاستعادة من قرص محلي أو موقع شبكة أو حساب تخزين Azure Blob. لمزيد من المعلومات حول الاستعادة والاسترداد في SQL Server، راجع نظرة عامة على الاستعادة والاسترداد. للحصول على نظرة عامة على نموذج الاسترداد البسيط في SQL Server، راجع استعادة قاعدة البيانات الكاملة (نموذج الاسترداد البسيط) .
هام
لا يمكن استعادة قواعد البيانات التي تم إنشاؤها في Azure SQL Edge على مثيل Microsoft SQL Server أو Azure SQL. بالإضافة إلى ذلك، يمكن استعادة قاعدة بيانات تم إنشاؤها على Microsoft SQL Server أو Azure SQL على Azure SQL Edge، شريطة ألا تحتوي قاعدة البيانات على أي من الميزات غير المدعومة من قبل Azure SQL Edge.
استعادة من قرص محلي
يستخدم هذا المثال النسخة الاحتياطية IronOreSilicaPrediction
التي قمت بها في المثال السابق. الآن، ستستعيدها كقاعدة بيانات جديدة باسم مختلف.
إذا لم يكن ملف النسخ الاحتياطي لقاعدة البيانات موجودا بالفعل في الحاوية، يمكنك استخدام الأمر التالي لنسخ الملف إلى الحاوية. يفترض المثال التالي أن ملف النسخ الاحتياطي موجود على المضيف المحلي، ويتم نسخه إلى المجلد /var/opt/mssql/backup في حاوية Azure SQL Edge تسمى sql1.
sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
اتصل بمثيل Azure SQL Edge باستخدام SSMS أو Azure Data Studio لتشغيل أمر الاستعادة. في المثال التالي،
IronOrePredictDB.bak
تتم استعادة لإنشاء قاعدة بيانات جديدة،IronOreSilicaPrediction_2
.Restore FilelistOnly from disk = N'/var/opt/mssql/backup/IronOrePredictDB.bak' Restore Database IronOreSilicaPrediction_2 From disk = N'/var/opt/mssql/backup/IronOrePredictDB.bak' WITH MOVE 'IronOreSilicaPrediction' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_2.mdf', MOVE 'IronOreSilicaPrediction_log' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_2.ldf';
بعد تشغيل أمر الاستعادة، إذا كانت عملية الاستعادة ناجحة، فسترى رسائل مشابهة للرسائل التالية في نافذة الإخراج.
Processed 51648 pages for database 'IronOreSilicaPrediction_2', file 'IronOreSilicaPrediction' on file 1. Processed 2 pages for database 'IronOreSilicaPrediction_2', file 'IronOreSilicaPrediction_log' on file 1. RESTORE DATABASE successfully processed 51650 pages in 6.543 seconds (61.670 MB/sec). Completion time: 2020-04-13T23:49:21.1600986-07:00
استعادة من URL
يدعم Azure SQL Edge أيضا استعادة قاعدة بيانات من حساب Azure Storage. يمكنك الاستعادة من الكائنات الثنائية كبيرة الحجم للكتلة أو النسخ الاحتياطية لكائن ثنائي كبير الحجم للصفحة. في المثال التالي، تتم استعادة ملف النسخ الاحتياطي لقاعدة IronOreSilicaPrediction_2020_04_16.bak
البيانات على كتلة كائن ثنائي كبير الحجم لإنشاء قاعدة البيانات، IronOreSilicaPrediction_3
.
RESTORE DATABASE IronOreSilicaPrediction_3
FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/IronOreSilicaPrediction_2020_04_16.bak'
WITH MOVE 'IronOreSilicaPrediction' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_3.mdf',
MOVE 'IronOreSilicaPrediction_log' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_3.ldf',
STATS = 10;