استعادة قاعدة بيانات في مثيل Azure SQL المُدار إلى نقطة زمنية سابقة

ينطبق على: مثيل Azure SQL المُدار

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

تعد الاستعادة في الوقت المناسب مفيدة في سيناريوهات الاسترداد، مثل الحوادث الناتجة عن الأخطاء أو البيانات المحملة بشكل غير صحيح أو حذف البيانات المهمة. يمكنك أيضاً استخدامه ببساطة للاختبار أو المراجعة. يتم الاحتفاظ بملفات النسخ الاحتياطي لمدة 7 إلى 35 يوماً، اعتماداً على إعدادات قاعدة البيانات الخاصة بك.

يمكن لاستعادة نقطة زمنية استعادة قاعدة بيانات:

  • من قاعدة بيانات موجودة.
  • من قاعدة بيانات محذوفة.
  • إلى نفس مثيل SQL المُدار، أو مثيل SQL المُدار آخر.

التقييدات

تتضمن استعادة نقطة في الوقت المناسب إلى SQL Managed Instance القيود التالية:

  • عندما تقوم بالاستعادة من مثيل واحد من SQL Managed Instance إلى مثيل آخر، يجب أن يكون كلا المثلين في نفس الاشتراك والمنطقة. الاستعادة عبر المناطق والاشتراكات غير مدعومة حالياً.
  • لا يمكن استعادة مثيل SQL المُدار بالكامل في نقطة زمنية. تشرح هذه المقالة ما هو ممكن فقط: استعادة نقطة زمنية لقاعدة بيانات مستضافة على SQL Managed Instance.

تحذير

كن على علم بحجم تخزين مثيل SQL المُدار. اعتماداً على حجم البيانات المراد استعادتها، قد تنفد مساحة تخزين المثيل. إذا لم تكن هناك مساحة كافية للبيانات المستعادة، فاستخدم طريقة مختلفة.

يعرض الجدول التالي سيناريوهات استعادة نقطة زمنية لـ SQL Managed Instance:

استعادة قاعدة البيانات الموجودة إلى نفس مثيل SQL المُدار استعادة قاعدة البيانات الحالية إلى مثيل آخر مُدار من قِبل SQL استعادة DB المسقطة إلى نفس مثيل SQL المُدار استعادة DB المسقطة إلى مثيل آخر مُدار لـ SQL
⁩مدخل Microsoft Azure⁧ نعم نعم نعم نعم
Azure CLI نعم نعم لا لا
PowerShell نعم نعم نعم نعم

استعادة قاعدة بيانات موجودة

قم باستعادة قاعدة بيانات موجودة إلى نفس مثيل SQL المُدار باستخدام مدخل Microsoft Azure أو PowerShell أو Azure CLI. لاستعادة قاعدة بيانات إلى مثيل آخر مُدار من SQL، استخدم PowerShell أو Azure CLI حتى تتمكن من تحديد الخصائص لمجموعة الموارد والمثيل المُدار من SQL. إذا لم تحدد هذه المعلمات، فستتم استعادة قاعدة البيانات إلى مثيل SQL المُدار افتراضياً. لا يدعم مدخل Microsoft Azure حالياً الاستعادة إلى مثيل SQL مُدار آخر.

  1. تسجيل الدخول إلى ⁧⁩مدخل Microsoft Azure⁧⁩.

  2. انتقل إلى SQL Managed Instance وحدد قاعدة البيانات التي تريد استعادتها.

  3. حدد Restore في صفحة قاعدة البيانات:

    Restore a database by using the Azure portal

  4. في صفحة Restore، حدد النقطة الخاصة بالتاريخ والوقت اللذين تريد استعادة قاعدة البيانات إليهما.

  5. حدد Confirm لاستعادة قاعدة البيانات الخاصة بك. يبدأ هذا الإجراء عملية الاستعادة، التي تنشئ قاعدة بيانات جديدة وتعبئها ببيانات من قاعدة البيانات الأصلية في نقطة زمنية محددة. لمزيد من المعلومات حول عملية الاسترداد، راجع وقت الاسترداد.

استعادة قاعدة بيانات محذوفة

يمكن استعادة قاعدة البيانات المحذوفة باستخدام PowerShell أو مدخل Microsoft Azure. لاستعادة قاعدة بيانات محذوفة إلى نفس المثيل، استخدم إما مدخل Microsoft Azure أو PowerShell. لاستعادة قاعدة بيانات محذوفة إلى مثيل آخر، استخدم PowerShell.

المدخل

لاستعادة قاعدة بيانات مُدارة باستخدام مدخل Microsoft Azure، افتح صفحة نظرة عامة على SQL المُدار المثيل وحدد Deleted databases. اختر قاعدة البيانات المحذوفة التي تريد استعادتها، واكتب اسم قاعدة البيانات الجديدة التي سيتم إنشاؤها باستخدام البيانات المستعادة من النسخة الاحتياطية.

Screenshot of restore deleted Azure SQL instance database

PowerShell

لاستعادة قاعدة بيانات إلى نفس المثيل، قم بتحديث قيم المعلمات ثم قم بتشغيل أمر PowerShell التالي:

$subscriptionId = "<Subscription ID>"
Get-AzSubscription -SubscriptionId $subscriptionId
Select-AzSubscription -SubscriptionId $subscriptionId

$resourceGroupName = "<Resource group name>"
$managedInstanceName = "<SQL Managed Instance name>"
$deletedDatabaseName = "<Source database name>"
$targetDatabaseName = "<target database name>"

$deletedDatabase = Get-AzSqlDeletedInstanceDatabaseBackup -ResourceGroupName $resourceGroupName `
-InstanceName $managedInstanceName -DatabaseName $deletedDatabaseName

Restore-AzSqlinstanceDatabase -FromPointInTimeBackup -Name $deletedDatabase.Name `
   -InstanceName $deletedDatabase.ManagedInstanceName `
   -ResourceGroupName $deletedDatabase.ResourceGroupName `
   -DeletionDate $deletedDatabase.DeletionDate `
   -PointInTime UTCDateTime `
   -TargetInstanceDatabaseName $targetDatabaseName

لاستعادة قاعدة البيانات إلى مثيل آخر مُدار من قِبل SQL، حدد أيضاً أسماء مجموعة الموارد المستهدفة واستهداف SQL Managed Instance:

$targetResourceGroupName = "<Resource group of target SQL Managed Instance>"
$targetInstanceName = "<Target SQL Managed Instance name>"

Restore-AzSqlinstanceDatabase -FromPointInTimeBackup -Name $deletedDatabase.Name `
   -InstanceName $deletedDatabase.ManagedInstanceName `
   -ResourceGroupName $deletedDatabase.ResourceGroupName `
   -DeletionDate $deletedDatabase.DeletionDate `
   -PointInTime UTCDateTime `
   -TargetInstanceDatabaseName $targetDatabaseName `
   -TargetResourceGroupName $targetResourceGroupName `
   -TargetInstanceName $targetInstanceName 

الكتابة فوق قاعدة بيانات موجودة

للكتابة فوق قاعدة بيانات موجودة، يجب عليك:

  1. قم بإسقاط قاعدة البيانات الموجودة التي تريد الكتابة فوقها.
  2. أعد تسمية قاعدة البيانات المستعادة نقطة في وقت إلى اسم قاعدة البيانات التي أسقطتها.

قم بإسقاط قاعدة البيانات الأصلية

يمكنك إفلات قاعدة البيانات باستخدام مدخلMicrosoft Azure أو PowerShell أو Azure CLI.

يمكنك أيضاً إسقاط قاعدة البيانات عن طريق الاتصال بـ SQL Managed Instance مباشرة، وبدء SQL Server Management Studio (SSMS)، ثم تشغيل أمر Transact-SQL (T-SQL) التالي:

DROP DATABASE WorldWideImporters;

استخدم إحدى الطرق التالية للاتصال بقاعدة البيانات الخاصة بك في SQL Managed Instance:

في مدخل Microsoft Azure، حدد قاعدة البيانات من مثيل SQL المُدار، ثم حدد Delete.

Delete a database by using the Azure portal

قم بتعديل اسم قاعدة البيانات الجديدة لمطابقة اسم قاعدة البيانات الأصلي

اتصل مباشرة بـ SQL Managed Instance وابدأ SQL Server Management Studio. بعد ذلك، قم بتشغيل استعلام Transact-SQL (T-SQL) التالي. سيقوم الاستعلام بتغيير اسم قاعدة البيانات المستعادة إلى اسم قاعدة البيانات التي تم إسقاطها والتي تنوي الكتابة فوقها.

ALTER DATABASE WorldWideImportersPITR MODIFY NAME = WorldWideImporters;

استخدم إحدى الطرق التالية للاتصال بقاعدة البيانات الخاصة بك في SQL Managed Instance:

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

تعرف على معلومات حول النسخ الاحتياطية التلقائية.