ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية استخدام Azure PowerShell لاستعادة قواعد بيانات PostgreSQL إلى قاعدة بيانات Azure لخادم PostgreSQL الذي قمت بنسخه احتياطيا عبر Azure Backup. يمكنك أيضا استعادة قاعدة بيانات PostgreSQL باستخدام مدخل AzureوAzure CLIوواجهة برمجة تطبيقات REST.
نظرا لأن قاعدة بيانات PostgreSQL هي قاعدة بيانات النظام الأساسي كخدمة (PaaS)، فإن خيار Original-Location Recovery (OLR) لاستعادته عن طريق استبدال قاعدة البيانات الموجودة (من حيث تم أخذ النسخ الاحتياطية) غير مدعوم. يمكنك الاستعادة من نقطة استرداد لإنشاء قاعدة بيانات جديدة في نفس قاعدة بيانات Azure لخادم PostgreSQL أو في أي خادم PostgreSQL آخر. يسمى هذا الخيار Alternate-Location Recovery (ALR). يساعد ALR على الاحتفاظ بكل من قاعدة البيانات المصدر وقاعدة البيانات المستعادة (الجديدة).
تشير الأمثلة في هذه المقالة إلى مخزن النسخ الاحتياطي الموجود المسمى TestBkpVault
ضمن مجموعة testBkpVaultRG
الموارد :
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"
استعادة لإنشاء قاعدة بيانات PostgreSQL جديدة
إعداد الأذونات
يستخدم مخزن النسخ الاحتياطي هوية مدارة للوصول إلى موارد Azure الأخرى. للاستعادة من نسخة احتياطية، تتطلب الهوية المدارة لمخزن النسخ الاحتياطي مجموعة من الأذونات على قاعدة بيانات Azure لخادم PostgreSQL الذي يجب استعادة قاعدة البيانات إليه.
لتعيين الأذونات ذات الصلة للهوية المدارة المعينة من قبل النظام للمخزن على خادم PostgreSQL الهدف، راجع مجموعة الأذونات اللازمة لإجراء نسخ احتياطي لقاعدة بيانات PostgreSQL.
لاستعادة نقطة الاسترداد كملفات إلى حساب تخزين، تحتاج الهوية المدارة المعينة من قبل النظام إلى الوصول إلى حساب التخزين المستهدف.
إحضار نقطة الاسترداد ذات الصلة
إحضار كافة المثيلات باستخدام Get-AzDataProtectionBackupInstance
الأمر وتحديد المثيل ذي الصلة:
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
يمكنك أيضا استخدام Az.Resourcegraph
والأمر Search-AzDataProtectionBackupInstanceInAzGraph
للبحث عن نقاط الاسترداد عبر المثيلات في العديد من الخزائن والاشتراكات:
$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -ProtectionStatus ProtectionConfigured
لتصفية معايير البحث، استخدم قدرات بحث عميل PowerShell:
Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -ProtectionStatus ProtectionConfigured | Where-Object { $_.BackupInstanceName -match "empdb11"}
بعد تحديد المثيل، أحضر نقطة الاسترداد ذات الصلة:
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName
إذا كنت بحاجة إلى إحضار نقطة الاسترداد من طبقة الأرشيف، أضف عامل تصفية عميل:
Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName | Where-Object {$_.Property.RecoveryPointDataStoresDetail[0].Type -match "Archive" }
تجهيز طلب الاستعادة
هناك خيارات استعادة مختلفة لقاعدة بيانات PostgreSQL. يمكنك استعادة نقطة الاسترداد كقاعدة بيانات أخرى أو استعادة كملفات. يمكن أن تكون نقطة الاسترداد أيضا على مستوى الأرشيف.
الاستعادة كقاعدة بيانات
إنشاء معرف Azure Resource Manager لقاعدة بيانات PostgreSQL الجديدة التي سيتم إنشاؤها (مع خادم PostgreSQL الهدف الذي تم تعيين الأذونات له، كما هو مفصل سابقا). قم بتضمين اسم قاعدة بيانات PostgreSQL المطلوبة. على سبيل المثال، يمكن تسمية emprestored21
قاعدة بيانات PostgreSQL ضمن خادم PostgreSQL الهدف المسمى targetossserver
في مجموعة targetrg
الموارد مع اشتراك مختلف:
$targetOssId = /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21
Initialize-AzDataProtectionRestoreRequest
استخدم الأمر لإعداد طلب الاستعادة مع جميع التفاصيل ذات الصلة:
$OssRestoreReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType AlternateLocation -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetResourceId $targetOssId -SecretStoreURI "https://restoreoss-test.vault.azure.net/secrets/dbauth3" -SecretStoreType AzureKeyVault
للحصول على نقطة استرداد مستندة إلى الأرشيف، تحتاج إلى ما يلي:
- إعادة الترطيب من مخزن بيانات الأرشيف إلى مخزن بيانات المخزن.
- تعديل مخزن البيانات المصدر.
- إضافة معلمات أخرى لتحديد أولوية الإماهة.
- حدد المدة التي يجب الاحتفاظ بنقطة الاسترداد المعاد ترطيبها في مخزن بيانات المخزن.
- استعادة كقاعدة بيانات من نقطة الاسترداد هذه.
استخدم الأمر التالي لإعداد الطلب لجميع العمليات المذكورة سابقا في وقت واحد:
$OssRestoreFromArchiveReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore ArchiveStore -RestoreLocation $TestBkpVault.Location -RestoreType AlternateLocation -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetResourceId $targetOssId -SecretStoreURI "https://restoreoss-test.vault.azure.net/secrets/dbauth3" -SecretStoreType AzureKeyVault -RehydrationDuration 12 -RehydrationPriority Standard
استرداد كملفات
إحضار URI للحاوية داخل حساب التخزين الذي تم تعيين الأذونات إليه، كما هو مفصل سابقا. يستخدم المثال التالي حاوية باسم testcontainerrestore
ضمن حساب تخزين يسمى testossstorageaccount
باشتراك مختلف:
$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"
Initialize-AzDataProtectionRestoreRequest
استخدم الأمر لإعداد طلب الاستعادة مع جميع التفاصيل ذات الصلة:
$OssRestoreAsFilesReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "empdb11_postgresql-westus_1628853549768"
بالنسبة لنقطة الاسترداد المستندة إلى الأرشيف، قم بتعديل مخزن البيانات المصدر. أضف أولوية الإماهة ومدة الاستبقاء، بالأيام، لنقطة الاسترداد المعاد ترطيبها:
$OssRestoreAsFilesFromArchiveReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore ArchiveStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "empdb11_postgresql-westus_1628853549768" -RehydrationDuration "14" -RehydrationPriority Standard
تشغيل الاستعادة
Start-AzDataProtectionBackupInstanceRestore
استخدم الأمر لتشغيل الاستعادة مع الطلب الذي أعددته سابقا:
Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq
تتبع الوظائف
تعقب المهام باستخدام Get-AzDataProtectionJob
الأمر . يمكنك سرد جميع الوظائف وجلب تفاصيل مهمة معينة.
يمكنك أيضا استخدام Az.ResourceGraph
لتعقب المهام عبر جميع خزائن النسخ الاحتياطي.
Search-AzDataProtectionJobInAzGraph
استخدم الأمر للحصول على المهمة ذات الصلة عبر جميع خزائن النسخ الاحتياطي:
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -Operation OnDemandBackup