حول Azure Database للنسخ الاحتياطي لـ PostgreSQL
وقد اجتمعت خدمات Azure Backup وAzure Database Services معاً لإنشاء حل احتياطي من فئة المؤسسة لـ Azure Database لخوادم PostgreSQL التي تحتفظ بنسخ احتياطية لمدة تصل إلى 10 سنوات. بالإضافة إلى الاحتفاظ على المدى الطويل، يوفر الحل القدرات التالية:
- يتحكم العميل في النسخ الاحتياطية المجدولة وعند الطلب على مستوى قاعدة البيانات الفردية.
- استعادة مستوى قاعدة البيانات إلى أي خادم PostgreSQL أو إلى أي وحدة تخزين كائن ثنائي كبير الحجم.
- المراقبة المركزية لجميع العمليات والوظائف.
- يتم تخزين النسخ الاحتياطية في مجالات أمان وخطأ منفصلة. إذا تم اختراق الخادم المصدر أو الاشتراك في أي ظرف من الظروف، تظل النسخ الاحتياطية آمنة في Backup vault (في حسابات التخزين المُدارة من Azure Backup).
- استخدام pg_dump يسمح مرونة أكبر في عمليات الاستعادة. يساعدك هذا على الاستعادة عبر إصدارات قاعدة البيانات
يمكنك استخدام هذا الحل بشكل مستقل أو بالإضافة إلى حل النسخ الاحتياطي الأصلي الذي تقدمه Azure PostgreSQL الذي يوفر الاحتفاظ لمدة تبلغ 35 يوماً. الحل الأصلي مناسب للاستردادات التشغيلية، مثل عندما تريد استرداد من النسخ الاحتياطية الأخيرة. يساعدك حل Azure Backup في تلبية احتياجات التوافق الخاصة بك والنسخ الاحتياطي/الاستعادة الأكثر دقة ومرونة.
إشعار
قاعدة بيانات Azure ل PostgreSQL - خادم واحد على مسار التقاعد ومن المقرر إيقافه بحلول 28 مارس 2025.
إذا كان لديك حاليا قاعدة بيانات Azure ل PostgreSQL - خدمة خادم واحد تستضيف خوادم الإنتاج، يسعدنا أن نعلمك أنه يمكنك ترحيل قاعدة بيانات Azure ل PostgreSQL - خادم واحد إلى قاعدة بيانات Azure ل PostgreSQL - الخادم المرن.
قاعدة بيانات Azure ل PostgreSQL - الخادم المرن هي خدمة قاعدة بيانات جاهزة> للإنتاج مدارة بالكامل مصممة لمزيد من التحكم الدقيق والمرونة على وظائف إدارة قاعدة البيانات وإعدادات التكوين مع حل النسخ الاحتياطي على مستوى المؤسسة بواسطة Azure Backup. لمزيد من المعلومات حول Azure Database for PostgreSQL - Flexible Server، تفضل بزيارة Azure Database for PostgreSQL - Flexible Server.
عملية النسخ الاحتياطي
- كمسؤول النسخ احتياطي، يمكنك تحديد قواعد بيانات Azure PostgreSQL التي تنوي نسخها احتياطياً. بالإضافة إلى ذلك، يمكنك أيضاً تحديد تفاصيل Azure key vault الذي يخزن بيانات الاعتماد المطلوبة للاتصال بقاعدة البيانات المحددة( قواعد البيانات). يتم إنشاء بيانات الاعتماد هذه بشكل آمن من قبل مسؤول قاعدة البيانات في مخزن Azure رئيسي.
- خدمة النسخ الاحتياطي ثم التحقق من صحة إذا كان لديه الأذونات المناسبة للمصادقة مع خادم PostgreSQL المحددة والنسخ الاحتياطي لقواعد البيانات الخاصة به.
- يقوم النسخ الاحتياطي في Azure بدور عامل (جهاز ظاهري) مع ملحق النسخ احتياطي مثبت فيه للاتصال بخادم PostgreSQL المحمي. هذا التمديد يتكون من منسق وPostgreSQL البرنامج المساعد. يقوم المنسق بتشغيل سير العمل لعمليات مختلفة، مثل النسخ الاحتياطي والاستعادة، ويدير المكون الإضافي تدفق البيانات الفعلي.
- في الوقت المحدد، يتصل المنسق بالمكون الإضافي، لبدء بث بيانات النسخ الاحتياطي من خادم PostgreSQL باستخدام pg_dump (مخصص).
- يرسل المكون الإضافي البيانات مباشرة إلى حسابات التخزين المُدارة في Azure Backup (المحجوبة بواسطة مخزن النسخ الاحتياطي)، مما يلغي الحاجة إلى موقع التدريج. يتم تشفير البيانات باستخدام مفاتيح Microsoft المدارة وتخزينها بواسطة خدمة Azure Backup في حسابات التخزين.
مصادقة Azure Backup مع خادم PostgreSQL
يتبع Azure Backup إرشادات الأمان الصارمة التي وضعها Azure، أذونات المورد المراد نسخها احتياطياً غير مفترضة وتحتاج إلى منحها صراحةً من قبل المستخدم.
نموذج المصادقة المستند إلى Key-vault
تحتاج خدمة Azure Backup إلى الاتصال بـ Azure PostgreSQL أثناء تنفيذ كل نسخة احتياطية. بينما يتم استخدام "اسم المستخدم + كلمة المرور" (أو سلسلة الاتصال)، المقابلة لقاعدة البيانات، لإجراء هذا الاتصال، لا يتم تخزين بيانات الاعتماد هذه مع Azure Backup. بدلاً من ذلك، تحتاج أوراق الاعتماد هذه إلى أن يتم زرعها بشكل آمن من قبل مسؤول قاعدة البيانات في Azure key vault كسر. مسؤول حمل العمل مسؤول عن إدارة بيانات الاعتماد وتناوبها، يستدعي Azure Backup أحدث التفاصيل السرية من خزنة المفاتيح لأخذ النسخة الاحتياطية.
مجموعة الأذونات المطلوبة للنسخ الاحتياطي لقاعدة بيانات Azure PostgreSQL
امنح أذونات الوصول التالية لمخزن النسخ الاحتياطي MSI:
- وصول قارئ إلى خادم Azure PostgreSQL.
- Key Vault Secrets User (أو الحصول على، قائمة أسرار) الوصول إلى Azure key vault.
الوصول إلى خط رؤية الشبكة على:
- خادم Azure PostgreSQL - يتم تعيين علامةAllow access to Azure services على "Yes".
- المخزن الرئيسي - يتم تعيين علامة "Allow trusted Microsoft services"على"Yes".
امتيازات النسخ الاحتياطي لمستخدم قاعدة البيانات على قاعدة البيانات
إشعار
يمكنك منح هذه الأذونات ضمن تدفق configure backup بنقرة واحدة إذا كان لديك (مسؤول النسخ الاحتياطي) حق الوصول "مكتوب" على الموارد المقصودة، أو استخدام نموذج ARM إذا لم يكن لديك الأذونات المطلوبة (عند مشاركة العديد من الأشخاص).
مجموعة الأذونات المطلوبة لاستعادة قاعدة بيانات Azure PostgreSQL
تتشابه أذونات الاستعادة مع الأذونات المطلوبة للنسخ الاحتياطي وتحتاج إلى منح الأذونات على خادم PostgreSQL المستهدف وkey vault المقابلة له. بخلاف تكوين تدفق النسخ الاحتياطي، لا تتوفر حالياً تجربة منح هذه الأذونات المضمنة. لذلك، تحتاج إلى منح الوصول يدوياً على خادم Postgres وkey vault المطابق.
بالإضافة إلى ذلك، تأكد من أن مستخدم قاعدة البيانات (المطابق لبيانات الاعتماد المخزنة في المخزن الرئيسي) لديه امتيازات الاستعادة التالية على قاعدة البيانات:
- ALTER USER username CREATEDB;
- تعيين دور azure_pg_admin إلى مستخدم قاعدة البيانات.
نموذج المصادقة المستند إلى معرف Microsoft Entra
لقد أطلقنا في وقت سابق نموذج مصادقة مختلفا يستند بالكامل إلى معرف Microsoft Entra. ومع ذلك، نحن نقدم الآن نموذج المصادقة الجديد القائم على key vault (كما هو موضح أعلاه) كخيار بديل، مما يخفف من عملية التكوين.
قم بتنزيل هذا المستند للحصول على برنامج نصي تلقائي وإرشادات ذات صلة لاستخدام نموذج المصادقة هذا. سوف يمنح مجموعة مناسبة من الأذونات إلى خادم Azure PostgreSQL، للنسخ الاحتياطي والاستعادة.
إشعار
ستتم جميع أشكال حماية التهيئة الجديدة باستخدام نموذج مصادقة المخزن الرئيسي الجديد فقط. ومع ذلك، ستستمر جميع مثيلات النسخ الاحتياطي الموجودة المكونة للحماية باستخدام المصادقة المستندة إلى معرف Microsoft Entra في الوجود وستتم أخذ نسخ احتياطية منتظمة. لاستعادة هذه النسخ الاحتياطية، تحتاج إلى اتباع المصادقة المستندة إلى معرف Microsoft Entra.
منح حق الوصول إلى خادم Azure PostgreSQL والمخزن الرئيسي يدوياً
لمنح جميع أذونات الوصول المطلوبة بواسطة Azure Backup، راجع المقاطع التالية:
أذونات الوصول على خادم Azure PostgreSQL
قم بتعيين وصول MSI Reader لمخزن النسخ الاحتياطي على خادم Azure PostgreSQL.
وصول خط الرؤية للشبكة على خادم Azure PostgreSQL: قم بتعيين علامة "Allow access to Azure services" على "Yes".
أذونات الوصول في مخزن مفاتيح Azure (المقترن بخادم PostgreSQL)
عيّن MSI Key Vault Secrets User (أو احصل على ، قائمة أسرار) في Azure key vault. لتعيين الأذونات، يمكنك استخدام تعيينات الدور أو نهج الوصول. ليس مطلوباً إضافة الإذن باستخدام كلا الخيارين لأنه لا يساعد.
باستخدام ترخيص التحكم في الوصول المستند إلى الدور Azure (Azure RBAC) (أي، تم تعيين نموذج الإذن على التحكم في الوصول المستند إلى الدور Azure):
- ضمن التحكم في الوصول، امنح وصولMSI Key Vault Secrets Userإلى key vault. أصحاب هذا الدور سوف يكونون قادرون على قراءة الأسرار.
- منح الإذن للتطبيقات للوصول إلى Azure key vault باستخدام Azure RBAC.
استخدام نهج الوصول (أي، يتم تعيين نموذج الإذن إلى نهج الوصول لـ Vault):
- تعيين أذونات Get and List على الأسرار.
- التعرف على Assign an Azure Key Vault access policy
خط الشبكة للوصول إلى البصر على مخزن المفتاح: تعيين علامة "Allow trusted Microsoft services" إلى "Yes".
امتيازات النسخ الاحتياطي لمستخدم قاعدة البيانات على قاعدة البيانات
تشغيل الاستعلام التالي في أداة PG admin (استبدال username مع معرف مستخدم قاعدة البيانات):
DO $do$
DECLARE
sch text;
BEGIN
EXECUTE format('grant connect on database %I to %I', current_database(), 'username');
FOR sch IN select nspname from pg_catalog.pg_namespace
LOOP
EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO username $$, sch);
END LOOP;
END;
$do$
إشعار
إذا فشلت قاعدة بيانات تم تكوين النسخ الاحتياطي لها بالفعل مع UserErrorMissingDBPermissions يرجى الرجوع إلى دليل استكشاف الأخطاء وإصلاحها هذا للحصول على المساعدة في حل المشكلة.
استخدام أداة إدارة PG
قم بتنزيل أداة PG admin إذا لم تكن لديك بالفعل. يمكنك الاتصال بخادم Azure PostgreSQL من خلال هذه الأداة. أيضاً، يمكنك إضافة قواعد بيانات ومستخدمين جدد إلى هذا الخادم.
إنشاء خادم جديد باسم من اختيارك. أدخل اسم المضيف/اسم العنوان نفسه Server name المعروض في طريقة عرض مورد Azure PostgreSQL في Azure portal.
تأكد من إضافة عنوان معرف العميل الحالي إلى قواعد جدار الحماية للاتصال للانتقال من خلاله.
يمكنك إضافة قواعد بيانات جديدة وقاعدة بيانات المستخدمين إلى الخادم. لمستخدمي قاعدة البيانات، قم بإضافة Login/Group Roles. تأكد من أن "Can login?" تم تعيينها إلى "Yes".