ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية إجراء نسخ احتياطي لقاعدة بيانات Azure ل PostgreSQL باستخدام Azure PowerShell. يمكنك أيضا تكوين النسخ الاحتياطي باستخدام مدخل Microsoft AzureوAzure CLIوواجهة برمجة تطبيقات REST لقواعد بيانات PostgreSQL.
تعرف على المزيد حول السيناريوهات المدعومةوالأسئلة المتداولة للنسخ الاحتياطي لقواعد بيانات PostgreSQL في قاعدة بيانات Azure ل PostgreSQL.
إنشاء مخزن للنسخ الاحتياطي
مخزن النسخ الاحتياطي هو كيان تخزين في Azure. يخزن بيانات النسخ الاحتياطي لأحمال العمل الجديدة المختلفة التي يدعمها Azure Backup، مثل قاعدة بيانات Azure لخوادم PostgreSQL وأقراص Azure والكائنات الثنائية كبيرة الحجم ل Azure. تساعد خزائن النسخ الاحتياطي في تنظيم بيانات النسخ الاحتياطي، مع تقليل الحمل الإداري إلى أدنى حد. تستند خزائن النسخ الاحتياطي إلى نموذج Azure Resource Manager من Azure، والذي يوفر قدرات محسنة للمساعدة في تأمين بيانات النسخ الاحتياطي.
قبل إنشاء مخزن النسخ الاحتياطي، اختر تخزين البيانات الزائدة داخل المخزن. ثم تابع إنشاء مخزن النسخ الاحتياطي مع هذا التخزين الاحتياطي والموقع.
في هذه المقالة، يمكنك إنشاء مخزن النسخ الاحتياطي المسمى TestBkpVault
، في westus
المنطقة، ضمن مجموعة testBkpVaultRG
الموارد .
New-AzDataProtectionBackupVault
استخدم الأمر لإنشاء مخزن النسخ الاحتياطي.
تعرف على المزيد حول إنشاء مخزن النسخ الاحتياطي.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag :
Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId :
IdentityType :
Location : westus
Name : TestBkpVault
ProvisioningState : Succeeded
StorageSetting : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type : Microsoft.DataProtection/backupVaults
إنشاء سياسة النسخ احتياطي
بعد إنشاء مخزن، يمكنك إنشاء نهج نسخ احتياطي للمساعدة في حماية قواعد بيانات PostgreSQL. يمكنك أيضا إنشاء نهج نسخ احتياطي لقواعد بيانات PostgreSQL باستخدام واجهة برمجة تطبيقات REST.
فهم نهج النسخ الاحتياطي PostgreSQL
في حين أن النسخ الاحتياطي للقرص يقدم نسخا احتياطية متعددة في اليوم والنسخ الاحتياطي للكائن الثنائي كبير الحجم هو نسخة احتياطية مستمرة بدون مشغل، يوفر النسخ الاحتياطي PostgreSQL حماية الأرشيف. يمكن نقل بيانات النسخ الاحتياطي التي يتم إرسالها أولا إلى المخزن إلى مستوى الأرشيف وفقا لقاعدة محددة أو دورة حياة.
في هذا السياق، يمكن أن يساعدك التسلسل الهرمي التالي على فهم كائن نهج النسخ الاحتياطي ل PostgreSQL:
- قاعدة النهج
- قاعدة النسخ الاحتياطي
- معلمة النسخ الاحتياطي
- نوع النسخ الاحتياطي (نسخة احتياطية كاملة لقاعدة البيانات في هذه الحالة)
- مخزن البيانات الأولي (حيث تهبط النسخ الاحتياطية في البداية)
- المشغل (كيفية تشغيل النسخ الاحتياطي)
- جدولة
- معايير وضع العلامات الافتراضية (علامة افتراضية تربط جميع النسخ الاحتياطية المجدولة بقاعدة الاستبقاء)
- معلمة النسخ الاحتياطي
- قاعدة الاستبقاء الافتراضية (قاعدة يتم تطبيقها على جميع النسخ الاحتياطية، بشكل افتراضي، على مخزن البيانات الأولي)
- قاعدة النسخ الاحتياطي
يحدد كائن النهج أنواع النسخ الاحتياطية التي يتم تشغيلها، وكيفية تشغيلها (عبر جدول زمني)، وما يتم وضع علامة عليها به، ومكان وصولها (مخزن البيانات)، ودورة حياة بياناتها في مخزن البيانات.
يشير عنصر PowerShell الافتراضي ل PostgreSQL إلى تشغيل نسخة احتياطية كاملة كل أسبوع. تصل النسخ الاحتياطية إلى المخزن، حيث يتم تخزينها لمدة ثلاثة أشهر.
إذا كنت ترغب في إضافة مستوى الأرشيف إلى النهج، يجب أن تقرر متى سيتم نقل البيانات من المخزن إلى الأرشيف، ومدة بقاء البيانات في الأرشيف، وأي من النسخ الاحتياطية المجدولة يجب وضع علامة عليها على أنها قابلة للأرشفة. يجب عليك إضافة قاعدة استبقاء تحدد دورة حياة بيانات النسخ الاحتياطي من مخزن بيانات المخزن إلى مخزن بيانات الأرشيف. تحدد قاعدة الاستبقاء أيضا المدة التي ستبقى فيها بيانات النسخ الاحتياطي في مخزن بيانات الأرشيف. ثم تحتاج إلى إضافة علامة تحدد النسخ الاحتياطية المجدولة على أنها مؤهلة للأرشفة.
الكائن PowerShell الناتجة كما يلي:
- قاعدة النهج
- قاعدة النسخ الاحتياطي
- معلمة النسخ الاحتياطي
- نوع النسخ الاحتياطي (نسخة احتياطية كاملة لقاعدة البيانات في هذه الحالة)
- مخزن البيانات الأولي (حيث تهبط النسخ الاحتياطية في البداية)
- المشغل (كيفية تشغيل النسخ الاحتياطي)
- جدولة
- معايير وضع العلامات الافتراضية (علامة افتراضية تربط جميع النسخ الاحتياطية المجدولة بقاعدة الاستبقاء)
- معايير وضع علامات جديدة لقاعدة الاستبقاء الجديدة بنفس الاسم
- معلمة النسخ الاحتياطي
- قاعدة الاستبقاء الافتراضية (قاعدة يتم تطبيقها على جميع النسخ الاحتياطية، بشكل افتراضي، على مخزن البيانات الأولي)
- قاعدة استبقاء جديدة
- دورة الحياة
- مخزن بيانات المصدر
- الفترة الزمنية للحذف في مخزن البيانات المصدر
- نسخ إلى مخزن البيانات الهدف
- دورة الحياة
- قاعدة النسخ الاحتياطي
استرداد قالب النهج
لفهم المكونات الداخلية لنهج النسخ الاحتياطي للنسخ الاحتياطي لقاعدة بيانات PostgreSQL، قم باسترداد قالب النهج باستخدام Get-AzDataProtectionPolicyTemplate
الأمر . يقوم هذا الأمر بإرجاع قالب النهج الافتراضي لنوع مصدر بيانات. استخدم قالب النهج هذا لإنشاء نهج جديد.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPostgreSQL
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/servers/databases}
ObjectType : BackupPolicy
PolicyRule : {BackupWeekly, Default}
$policyDefn.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : VaultStore
Name : BackupWeekly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.ScheduleBasedTriggerCo
ntext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
يتكون قالب النهج من مشغل (الذي يقرر ما يؤدي إلى تشغيل النسخ الاحتياطي) ودورة حياة (التي تقرر متى يتم حذف النسخة الاحتياطية أو نسخها أو نقلها). في النسخ الاحتياطي لقاعدة بيانات PostgreSQL، القيمة الافتراضية للمشغل هي مشغل أسبوعي مجدول (نسخة احتياطية واحدة كل سبعة أيام). يتم الاحتفاظ بكل نسخة احتياطية لمدة ثلاثة أشهر.
$policyDefn.PolicyRule[0].Trigger | fl
ObjectType : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2021-08-22T02:00:00+00:00/P1W}
ScheduleTimeZone : UTC
TaggingCriterion : {Default}
$policyDefn.PolicyRule[1].Lifecycle | fl
DeleteAfterDuration : P3M
DeleteAfterObjectType : AbsoluteDeleteOption
SourceDataStoreObjectType : DataStoreInfoBase
SourceDataStoreType : VaultStore
TargetDataStoreCopySetting : {}
تعديل قالب النهج
تعديل الجدول
يقدم قالب النهج الافتراضي نسخة احتياطية مرة واحدة في الأسبوع. يمكنك تعديل الجدول الزمني للنسخ الاحتياطي ليحدث عدة أيام في الأسبوع. لتغيير الجدول، استخدم Edit-AzDataProtectionPolicyTriggerClientObject
الأمر .
يعدل المثال التالي النسخة الاحتياطية الأسبوعية إلى الأحد والأربعاء والجمعة من كل أسبوع. يشير صفيف تاريخ الجدولة إلى التواريخ، ويتم أخذ أيام الأسبوع لتلك التواريخ كأيام من أيام الأسبوع. تحتاج أيضاً إلى تحديد أن هذه الجداول ينبغي أن تتكرر كل أسبوع. لذلك، الفاصل الزمني للجدول الزمني هو 1
ونوع الفاصل الزمني هو Weekly
.
$schDates = @(
(
(Get-Date -Year 2021 -Month 08 -Day 15 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 18 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 20 -Hour 22 -Minute 0 -Second 0)
)
)
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $schDates -IntervalType Weekly -IntervalCount 1
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $policyDefn
إضافة قاعدة استبقاء جديدة
إذا كنت تريد إضافة حماية الأرشيف، فأنت بحاجة إلى تعديل قالب النهج.
يحتوي القالب الافتراضي على دورة حياة لمتجير البيانات الأولي ضمن قاعدة الاستبقاء الافتراضية. في هذا السيناريو، تنص القاعدة على حذف بيانات النسخ الاحتياطي بعد ثلاثة أشهر. يجب إضافة قاعدة استبقاء جديدة تحدد وقت نقل البيانات إلى مخزن بيانات الأرشيف. أي، يتم نسخ بيانات النسخ الاحتياطي أولا إلى مخزن بيانات الأرشيف، ثم يتم حذفها في مخزن بيانات المخزن.
أيضا، يجب أن تحدد القاعدة المدة للاحتفاظ بالبيانات في مخزن بيانات الأرشيف. لإنشاء دورات حياة جديدة، استخدم New-AzDataProtectionRetentionLifeCycleClientObject
الأمر . لربط دورات الحياة هذه بقواعد جديدة أو موجودة، استخدم Edit-AzDataProtectionPolicyRetentionRuleClientObject
الأمر .
ينشئ المثال التالي قاعدة استبقاء جديدة تسمى Monthly
. في هذه القاعدة، يتم الاحتفاظ بأول نسخة احتياطية ناجحة من كل شهر في المخزن لمدة ستة أشهر، ونقلها إلى مستوى الأرشيف، والاحتفاظ بها في طبقة الأرشيف لمدة 24 شهرا.
$VaultToArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6 -TargetDataStore ArchiveStore -CopyOption CopyOnExpiryOption
$OnArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore ArchiveStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 24
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultToArchiveLifeCycle, $OnArchiveLifeCycleLifeCycle -IsDefault $false
إضافة علامة والمعايير ذات الصلة
بعد إنشاء قاعدة استبقاء، يجب عليك إنشاء علامة مقابلة في Trigger
خاصية نهج النسخ الاحتياطي. لإنشاء معايير وضع علامات جديدة، استخدم New-AzDataProtectionPolicyTagCriteriaClientObject
الأمر . لتحديث العلامة الموجودة أو إنشاء علامة جديدة، استخدم الأمر Edit-AzDataProtectionPolicyTagClientObject .
ينشئ المثال التالي علامة جديدة مع المعايير، وهي أول نسخة احتياطية ناجحة من الشهر. العلامة لها نفس اسم قاعدة استبقاء البيانات المقابلة ليتم تطبيقها.
في هذا المثال، تسمى Monthly
معايير العلامة :
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
إذا كان الجدول الزمني عبارة عن نسخ احتياطية متعددة في الأسبوع (كل يوم أحد وأربعاء وخميس، كما هو محدد في المثال السابق) وتريد أرشفة النسخ الاحتياطية الأحد والجمعة، يمكنك تغيير معايير وضع العلامات كما يلي:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
إنشاء نهج النسخ احتياطي PostgreSQL جديد
بعد تعديل القالب وفقا للمتطلبات، استخدم New-AzDataProtectionBackupPolicy
الأمر لإنشاء نهج باستخدام القالب المعدل:
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
تكوين النسخ الاحتياطي
بعد إنشاء المخزن والنهج، تحتاج إلى النظر في ثلاث نقاط هامة لإجراء نسخ احتياطي لقاعدة بيانات PostgreSQL في قاعدة بيانات Azure ل PostgreSQL.
فهم الكيانات الرئيسية
قاعدة بيانات PostgreSQL التي سيتم نسخها احتياطيا
إحضار معرف Resource Manager لقاعدة بيانات PostgreSQL ليتم نسخها احتياطيا. يعمل هذا المعرف كمعرف لقاعدة البيانات. يستخدم المثال التالي قاعدة بيانات باسم empdb11
ضمن خادم testposgresql
PostgreSQL ، الموجودة في مجموعة ossrg
الموارد ضمن اشتراك مختلف:
$ossId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Key Vault
لا تخزن خدمة Azure Backup اسم المستخدم وكلمة المرور للاتصال بقاعدة بيانات PostgreSQL. بدلا من ذلك، يقوم مسؤول النسخ الاحتياطي بزرع المفاتيح في مخزن المفاتيح. ثم تصل خدمة Azure Backup إلى مخزن المفاتيح، وتقرأ المفاتيح، وتدخل إلى قاعدة البيانات. لاحظ المعرف السري للمفتاح ذي الصلة.
$keyURI = "https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
مخزن النسخ الاحتياطي
تحتاج إلى توصيل مخزن النسخ الاحتياطي بخادم PostgreSQL ثم الوصول إلى قاعدة البيانات عبر المفاتيح الموجودة في مخزن المفاتيح. لذلك، يتطلب مخزن النسخ الاحتياطي الوصول إلى خادم PostgreSQL وخزنة المفاتيح. يتم منح حق الوصول إلى الهوية المدارة لمخزن النسخ الاحتياطي.
اقرأ عن الأذونات المناسبة التي يجب منحها للهوية المدارة لمخزن النسخ الاحتياطي على خادم PostgreSQL وAzure Key Vault، حيث يتم تخزين مفاتيح قاعدة البيانات.
إعداد الطلب
بعد تعيين جميع الأذونات ذات الصلة، قم بإجراء تكوين النسخ الاحتياطي في خطوتين:
- قم بإعداد الطلب باستخدام المخزن والنهج وقاعدة بيانات PostgreSQL ذات الصلة في
Initialize-AzDataProtectionBackupInstance
الأمر. - أرسل الطلب لنسخ قاعدة البيانات احتياطيا
New-AzDataProtectionBackupInstance
باستخدام الأمر .
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQL -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId -SecretStoreURI $keyURI -SecretStoreType AzureKeyVault
ConvertTo-Json -InputObject $instance -Depth 4
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
ossrg-empdb11 Microsoft.DataProtection/backupVaults/backupInstances ossrg-empdb11
ثم قم بإجراء النسخ الاحتياطي حسب الطلب
إحضار مثيل النسخ الاحتياطي ذي الصلة الذي تحتاج إلى تشغيل نسخة احتياطية Get-AzDataProtectionBackupInstance
عليه باستخدام الأمر :
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
يمكنك تحديد قاعدة استبقاء أثناء تشغيل نسخة احتياطية. لعرض قواعد الاستبقاء في نهج، استعرض عنصر النهج. في المثال التالي، يتم عرض القاعدة التي تحمل الاسم Default
. تستخدم هذه المقالة قاعدة المثال هذه للنسخ الاحتياطي عند الطلب.
$ossPol.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : OperationalStore
Name : BackupHourly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
لتشغيل نسخة احتياطية عند الطلب، استخدم Backup-AzDataProtectionBackupInstanceAdhoc
الأمر :
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
تتبع الوظائف
تعقب جميع المهام باستخدام Get-AzDataProtectionJob
الأمر . يمكنك سرد جميع الوظائف وجلب تفاصيل مهمة معينة.
يمكنك أيضا استخدام Az.ResourceGraph
لتعقب جميع المهام عبر جميع خزائن النسخ الاحتياطي.
Search-AzDataProtectionJobInAzGraph
استخدم الأمر لجلب المهام ذات الصلة عبر أي مخزن نسخ احتياطي:
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDisk -Operation OnDemandBackup
المحتوى ذو الصلة
- استعادة قاعدة بيانات PostgreSQL باستخدام Azure PowerShell.
- استعادة قاعدة بيانات PostgreSQL باستخدام مدخل AzureوAzure CLIوواجهة برمجة تطبيقات REST.