إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يتحكم نهج النسخ الاحتياطي في الاحتفاظ بالنسخ الاحتياطية لقاعدة بيانات PostgreSQL وجدولتها في قاعدة بيانات Azure ل PostgreSQL. توفر قاعدة بيانات Azure ل PostgreSQL احتفاظا طويل الأجل بالنسخ الاحتياطية لقاعدة البيانات وتدعم النسخ الاحتياطي يوميا.
يمكنك إعادة استخدام نهج نسخ احتياطي موجود لتكوين النسخ الاحتياطية لقواعد بيانات PostgreSQL إلى مخزن، أو يمكنك إنشاء نهج نسخ احتياطي لمخزن Azure Recovery Services باستخدام واجهة برمجة تطبيقات REST لحماية البيانات ل Azure Backup. في هذه المقالة، يمكنك إنشاء نهج نسخ احتياطي.
فهم نهج النسخ الاحتياطي ل PostgreSQL
في حين أن النسخ الاحتياطي للقرص يوفر نسخا احتياطية متعددة يوميا والنسخ الاحتياطي الثنائي كبير الحجم هو نسخة احتياطية مستمرة بدون مشغل ، فإن النسخ الاحتياطي PostgreSQL يوفر حماية الأرشيف. يمكن نقل بيانات النسخ الاحتياطي التي تم إرسالها لأول مرة إلى المخزن إلى طبقة الأرشيف وفقا لقاعدة محددة أو دورة حياة.
في هذا السياق، يمكن أن يساعدك التدرج الهرمي التالي في فهم كائن نهج النسخ الاحتياطي ل PostgreSQL:
- قاعدة السياسة
- قاعدة النسخ الاحتياطي
- معلمة النسخ الاحتياطي
- نوع النسخ الاحتياطي (نسخة احتياطية كاملة لقاعدة البيانات في هذه الحالة)
- مخزن البيانات الأولي (حيث تهبط النسخ الاحتياطية في البداية)
- المشغل (كيفية تشغيل النسخ الاحتياطي)
- جدول
- معايير وضع العلامات الافتراضية (علامة افتراضية تربط جميع النسخ الاحتياطية المجدولة بقاعدة الاستبقاء)
- معلمة النسخ الاحتياطي
- قاعدة الاستبقاء الافتراضية (قاعدة يتم تطبيقها على جميع النسخ الاحتياطية، بشكل افتراضي، على مخزن البيانات الأولي)
- قاعدة النسخ الاحتياطي
يحدد كائن النهج أنواع النسخ الاحتياطية التي يتم تشغيلها، وكيفية تشغيلها (عبر جدول)، وما تم وضع علامة عليه، ومكان هبوطها (مخزن بيانات)، ودورة حياة بياناتها في مخزن البيانات.
يقول كائن PowerShell الافتراضي ل PostgreSQL لتشغيل نسخة احتياطية كاملة كل أسبوع. تصل النسخ الاحتياطية إلى الخزنة ، حيث يتم تخزينها لمدة ثلاثة أشهر.
إذا كنت ترغب في إضافة طبقة الأرشيف إلى السياسة، فعليك تحديد متى سيتم نقل البيانات من المخزن إلى الأرشيف، ومدة بقاء البيانات في الأرشيف، وأي من النسخ الاحتياطية المجدولة يجب تمييزها على أنها قابلة للأرشفة. يجب عليك إضافة قاعدة استبقاء تحدد دورة حياة بيانات النسخ الاحتياطي من مخزن بيانات المخزن إلى مخزن بيانات الأرشيف. تحدد قاعدة الاستبقاء أيضا المدة التي ستبقى فيها بيانات النسخ الاحتياطي في مخزن بيانات الأرشيف. ثم تحتاج إلى إضافة علامة تحدد النسخ الاحتياطية المجدولة على أنها مؤهلة للأرشفة.
الكائن PowerShell الناتجة كما يلي:
- قاعدة السياسة
- قاعدة النسخ الاحتياطي
- معلمة النسخ الاحتياطي
- نوع النسخ الاحتياطي (نسخة احتياطية كاملة لقاعدة البيانات في هذه الحالة)
- مخزن البيانات الأولي (حيث تهبط النسخ الاحتياطية في البداية)
- المشغل (كيفية تشغيل النسخ الاحتياطي)
- جدول
- معايير وضع العلامات الافتراضية (علامة افتراضية تربط جميع النسخ الاحتياطية المجدولة بقاعدة الاستبقاء)
- معايير وضع علامات جديدة لقاعدة الاحتفاظ الجديدة التي تحمل الاسم نفسه
- معلمة النسخ الاحتياطي
- قاعدة الاستبقاء الافتراضية (قاعدة يتم تطبيقها على جميع النسخ الاحتياطية، بشكل افتراضي، على مخزن البيانات الأولي)
- قاعدة جديدة للاحتفاظ بالبيانات
- دورة الحياة
- مخزن بيانات المصدر
- الفترة الزمنية للحذف في مخزن البيانات المصدر
- نسخ إلى مخزن البيانات الهدف
- دورة الحياة
- قاعدة النسخ الاحتياطي
إنشاء سياسة
هام
حالياً، لا يتم دعم تحديث أو تعديل نهج موجود. بدلا من ذلك، قم بإنشاء نهج جديد بالتفاصيل المطلوبة وقم بتعيينه إلى مثيل النسخ الاحتياطي ذي الصلة.
لإنشاء نهج نسخ احتياطي، استخدم العملية التالية PUT :
PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{policyName}?api-version=2021-01-01
يوفر URI القيم {policyName} و {vaultName} . يوفر نص الطلب معلومات إضافية.
قم بإنشاء نص الطلب
لإنشاء نهج للنسخ الاحتياطي ل PostgreSQL، يحتاج نص الطلب إلى المكونات التالية:
| الاسم | مطلوبة | نوع | الوصف |
|---|---|---|---|
properties |
true |
BaseBackupPolicy
BackupPolicy
|
BaseBackupPolicyResource خصائص |
للحصول على القائمة الكاملة للتعريفات في نص الطلب، راجع نهج النسخ الاحتياطي لواجهة برمجة تطبيقات REST.
نموذج طلب النص الأساسي
تنص السياسة على ما يلي:
- تتم جدولة المشغل لنسخة احتياطية أسبوعية في وقت البدء المحدد (الوقت +
P1W). - مخزن البيانات هو مخزن خزنة، لأنه يتم نقل النسخ الاحتياطية مباشرة إلى المخزن.
- يتم الاحتفاظ بالنسخ الاحتياطية في المخزن لمدة ثلاثة أشهر (
P3M).
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
هام
تدعم تنسيقات الوقت فقط DateTime.
Time غير مدعوم. يشير الوقت من اليوم إلى وقت بدء النسخ الاحتياطي ، وليس وقت الانتهاء.
دعنا نقوم بتحديث JSON السابق بتغييرين:
- أضف نسخا احتياطية في عدة أيام من الأسبوع.
- أضف مخزن بيانات أرشيف للاحتفاظ على النسخ الاحتياطية لقاعدة بيانات PostgreSQL على المدى الطويل.
يعدل المثال التالي النسخ الاحتياطي الأسبوعي إلى الأحد والأربعاء والجمعة من كل أسبوع. يذكر مصفوفة تواريخ الجدولة التواريخ، ويتم أخذ أيام الأسبوع لتلك التواريخ كأيام من الأسبوع. تحتاج أيضاً إلى تحديد أن هذه الجداول ينبغي أن تتكرر كل أسبوع. لذلك ، الفاصل الزمني للجدول الزمني هو 1 ونوع الفاصل الزمني هو Weekly.
المشغل المجدول
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
],
"timeZone": "UTC"
}
إذا كنت ترغب في إضافة حماية الأرشيف، فستحتاج إلى تعديل JSON النهج.
دورة حياة الاحتفاظ
يحتوي JSON السابق على دورة حياة لمخزن البيانات الأولي بموجب قاعدة الاستبقاء الافتراضية. في هذا السيناريو، تنص القاعدة على حذف بيانات النسخ الاحتياطي بعد ثلاثة أشهر. يجب إضافة قاعدة استبقاء جديدة تحدد وقت نقل البيانات إلى مخزن بيانات الأرشيف. أي أنه يتم نسخ بيانات النسخ الاحتياطي أولا إلى مخزن بيانات الأرشيف ثم حذفها في مخزن بيانات المخزن.
أيضا ، يجب أن تحدد القاعدة المدد الزمنية للاحتفاظ بالبيانات في مخزن بيانات الأرشيف. دعنا نسمي هذه القاعدة Monthlyالجديدة . يحدد أنه يجب الاحتفاظ بالنسخ الاحتياطية في مخزن بيانات المخزن لمدة 6 أشهر ثم نسخها إلى مخزن بيانات الأرشيف. بعد ذلك، احذف النسخ الاحتياطية في مخزن بيانات المخزن واحتفظ بالبيانات لمدة 24 شهرا في مخزن بيانات الأرشيف. أخيرا ، احذف البيانات الموجودة في مخزن بيانات الأرشيف.
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P6M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": {
"copyAfter": {
"objectType": "CopyOnExpiryOption"
},
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
},
{
"deleteAfter": {
"duration": "P24M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
}
معايير وضع العلامات
في كل مرة تضيف فيها قاعدة احتفاظ بالبيانات، تحتاج إلى إضافة علامة مقابلة في Trigger موقع السياسة. ينشئ المثال التالي علامة جديدة مع المعايير (وهي أول نسخة احتياطية ناجحة لهذا الشهر) بنفس الاسم تماما مثل قاعدة الاستبقاء المقابلة التي سيتم تطبيقها.
في هذا المثال، يجب تسمية Monthlyمعايير العلامة:
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
بعد تضمين كافة التغييرات، يظهر JSON النهج على النحو التالي:
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
},
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P6M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": {
"copyAfter": {
"objectType": "CopyOnExpiryOption"
},
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
},
{
"deleteAfter": {
"duration": "P24M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
}
]
}
لمزيد من التفاصيل حول إنشاء النهج، راجع إنشاء نهج نسخ احتياطي.
تحقق من الاستجابة
إنشاء نهج النسخ الاحتياطي أو تحديثه هو عملية متزامنة. بعد نجاح العملية، تقوم بإرجاع استجابة الحالة التالية مع محتوى النهج في نص الاستجابة.
| الاسم | نوع | الوصف |
|---|---|---|
200 OK |
BaseBackupPolicyResource |
اكتملت العملية. |
مثال على الاستجابة
{
"properties": {
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"trigger": {
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"tagInfo": {
"tagName": "Monthly",
"id": "Monthly_"
},
"taggingPriority": 15,
"isDefault": false,
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
]
},
{
"tagInfo": {
"tagName": "Default",
"id": "Default_"
},
"taggingPriority": 99,
"isDefault": true
}
],
"objectType": "ScheduleBasedTriggerContext"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule"
},
{
"lifecycles": [
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P6M"
},
"targetDataStoreCopySettings": [
{
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"copyAfter": {
"objectType": "CopyOnExpiryOption"
}
}
],
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
}
},
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P24M"
},
"targetDataStoreCopySettings": [],
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
],
"isDefault": false,
"name": "Monthly",
"objectType": "AzureRetentionRule"
},
{
"lifecycles": [
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P3M"
},
"targetDataStoreCopySettings": [],
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
}
}
],
"isDefault": true,
"name": "Default",
"objectType": "AzureRetentionRule"
}
],
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"objectType": "BackupPolicy"
},
"id": "/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/DebRG1/providers/Microsoft.DataProtection/backupVaults/DebBackupVault/backupPolicies/OssPolicy1",
"name": "OssPolicy1",
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
المحتوى ذو الصلة
- قم بعمل نسخة احتياطية من أقراص Azure باستخدام واجهة برمجة تطبيقات REST لحماية البيانات.
- واجهة برمجة تطبيقات REST لحماية بيانات النسخ الاحتياطي في Azure.
- مرجع واجهة برمجة تطبيقات Azure REST.
- تعقب مهام النسخ الاحتياطي والاستعادة باستخدام واجهة برمجة تطبيقات REST في Azure Backup.
- إدارة قاعدة بيانات Azure لخادم PostgreSQL باستخدام مدخل Microsoft Azure.