مشاركة عبر


استعادة خادم Azure PostgreSQL-Flexible كملفات باستخدام مدخل Microsoft Azure

توضح هذه المقالة كيفية استعادة خادم Azure PostgreSQL-Flexible كملفات تم نسخها احتياطيا باستخدام مدخل Microsoft Azure.

المتطلبات الأساسية

قبل الاستعادة من قاعدة بيانات Azure للنسخ الاحتياطية لخادم PostgreSQL المرن، راجع المتطلبات الأساسية التالية:

  • تأكد من أن لديك الأذونات المطلوبة لعملية الاستعادة.

  • يتم تخزين بيانات النسخ الاحتياطي في مخزن النسخ الاحتياطي ككائن ثنائي كبير الحجم داخل مستأجر Microsoft. أثناء عملية الاستعادة، يتم نسخ بيانات النسخ الاحتياطي من حساب تخزين إلى آخر عبر المستأجرين. تأكد من تعيين خاصية AllowCrossTenantReplication إلى true لحساب التخزين الهدف للاستعادة.

  • تأكد من أن حساب التخزين الهدف لاستعادة النسخ الاحتياطي كملف يمكن الوصول إليه عبر شبكة عامة. إذا كان حساب التخزين يستخدم نقطة نهاية خاصة، فقم بتحديث إعدادات الوصول إلى الشبكة العامة قبل تنفيذ عملية الاستعادة.

استعادة Azure PostgreSQL - النسخ الاحتياطية للخادم المرن كملفات

إشعار

عملية الاستعادة هي عملية خطوتين:

  1. استعادة النسخ الاحتياطي من مخزن النسخ الاحتياطي إلى حاوية تخزين.
  2. استعادة ملفات النسخ الاحتياطي من حاوية التخزين إلى خادم مرن جديد أو موجود.

لاستعادة قاعدة بيانات Azure PostgreSQL-Flexible، اتبع الخطوات التالية:

  1. انتقل إلى مخزن النسخ الاحتياطية>مثيلات النسخ الاحتياطية. حدد خادم PostgreSQL - Flexible لاستعادته وحدد Restore.

    بدلا من ذلك، انتقل إلى مركز النسخ الاحتياطي وحدد استعادة.

  2. حدد النقطة الزمنية التي تريد استعادتها باستخدام تحديد نقطة الاستعادة. قم بتغيير نطاق التاريخ عن طريق تحديد الفترة الزمنية.

  3. اختر حساب التخزين الهدف والحاوية في علامة التبويب Restore parameters . حدد Validate للتحقق من أذونات معلمات الاستعادة قبل المراجعة النهائية والاستعادة.

  4. بمجرد نجاح التحقق من الصحة، حدد Review + restore.

  5. بعد المراجعة النهائية للمعلمات، حدد Restore لاستعادة PostgreSQL المحدد - النسخ الاحتياطي للخادم المرن في حساب التخزين الهدف.

  6. أرسل عملية الاستعادة وتعقب المهمة المشغلة ضمن "Backup jobs".

بعد اكتمال مهمة الاستعادة بنجاح، انتقل إلى حاوية حساب التخزين لعرض قواعد البيانات المستعادة كملفات (.sql ملفات) من خادم PostgreSQL – المرن. يقوم Azure Backup أيضا بإنشاء ملفات النسخ الاحتياطي التالية:

  • Database.sql file لكل قاعدة بيانات: يحتوي على بيانات ومعلومات مخطط لقاعدة بيانات معينة.

  • Roles.sql files للمثيل بأكمله: يحتوي على جميع معلومات الدور الموجودة على مستوى الخادم.

  • Tablespace.sql file: ملف Tablespace.

  • Schema.sql file: يحتوي على معلومات المخطط لكافة قواعد البيانات على الخادم.

    إشعار

    نوصيك بعدم تشغيل هذا البرنامج النصي على خادم PostgreSQL - Flexible لأن المخطط هو بالفعل جزء من database.sql البرنامج النصي.

استعادة ملفات النسخ الاحتياطي من حاوية التخزين إلى خادم PostgreSQL - مرن جديد أو موجود

لاستعادة ملفات النسخ الاحتياطي من حاوية التخزين إلى خادم PostgreSQL - مرن جديد أو موجود، اتبع الخطوات التالية:

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

  2. مطابقة قيم معلمات الخادم من قاعدة بيانات PostgreSQL المصدر إلى قاعدة بيانات Azure ل PostgreSQL عن طريق الوصول إلى قسم معلمات الخادم في مدخل Microsoft Azure وتحديث القيم يدويا وفقا لذلك. احفظ تغييرات المعلمة، ثم أعد تشغيل قاعدة بيانات Azure لخادم PostgreSQL - المرن لتطبيق التكوين الجديد.

  3. إذا كانت مصادقة Microsoft Entra مطلوبة على الخادم الجديد، فقم بتمكينها وإنشاء مسؤولي Microsoft Entra ذوي الصلة.

  4. إنشاء قاعدة بيانات جديدة للاستعادة.

    إشعار

    قبل استعادة قاعدة البيانات، يجب إنشاء قاعدة بيانات جديدة فارغة. تأكد من أن حساب المستخدم الخاص بك لديه CREATEDB الإذن.

    لإنشاء قاعدة البيانات، استخدم الأمر CREATE DATABASE Database_name.

  5. استعادة قاعدة البيانات باستخدام database.sql file كمستخدم المسؤول الهدف.

  6. بعد إنشاء قاعدة البيانات الهدف، قم بتنزيل ملف التفريغ من حساب Azure Storage عن طريق تشغيل الأمر التالي:

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file <file-name>
    
  7. بعد ذلك، قم باستعادة البيانات الموجودة في قاعدة البيانات هذه من ملف التفريغ عن طريق تشغيل الأمر التالي:

    pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> --no-owner -v <File Name>
    
    • --account-name: اسم حساب التخزين الهدف.
    • --container-name: اسم حاوية الكائن الثنائي كبير الحجم.
    • --blob-name: اسم الكائن الثنائي كبير الحجم.
    • --account-key: مفتاح حساب التخزين.
    • -Fd: تنسيق الدليل.
    • -j: عدد الوظائف.
    • -C: ابدأ الإخراج بأمر لإنشاء قاعدة البيانات نفسها ثم أعد الاتصال بها.

    إشعار

    إذا لم يتم تنفيذ الأمر كما هو متوقع، فحدد مسار الملف الكامل بدلا من استخدام اسم الملف فقط.

    بدلا من ذلك، يمكنك تنزيل ملف النسخ الاحتياطي وتشغيل الاستعادة مباشرة.

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

استعادة الأدوار والمستخدمين لقواعد البيانات المستعادة

تتم استعادة النسخ الاحتياطية المخزنة بشكل أساسي لتلبية احتياجات التوافق مثل الاختبار والتدقيق. يمكنك تسجيل الدخول كمسؤول محلي والاستعادة باستخدام database.sql الملف؛ لا توجد أدوار أخرى مطلوبة لاسترداد البيانات.

بالنسبة إلى الاستخدامات الأخرى مثل الحماية من الحذف العرضي أو التعافي من الكوارث، تأكد من إنشاء الأدوار الضرورية وفقا لاحتياجات مؤسستك. تجنب التكرارات بين roles.sql و database.sql.

  • استعادة نفس الخادم المرن: قد لا تكون استعادة الدور ضرورية.
  • استعادة إلى خادم مرن مختلف: استخدم roles.sql الملف لإعادة إنشاء الأدوار المطلوبة.

عند الاستعادة من roles.sql، قد تكون بعض الأدوار أو السمات غير صالحة للخادم الهدف الجديد.

بالنسبة للبيئات التي بها وصول المستخدم الفائق (في الموقع أو الأجهزة الظاهرية)، يمكنك تشغيل جميع الأوامر بسلاسة.

الاعتبارات الرئيسية لسيناريو الخادم المرن

فيما يلي الاعتبارات الرئيسية:

  • إزالة Superuser-Only السمات: على الخادم المرن، لا توجد امتيازات المستخدم الفائق. لذلك، قم بإزالة السمات، مثل NOSUPERUSER ومن NOBYPASSRLS تفريغ الأدوار.
  • استبعاد Service-Specific المستخدمين: استبعاد المستخدمين الخاصين بخدمات الخادم المرن ( azure_su، azure_pg_admin، replication، localadmin، Entra Admin). تتم إعادة إنشاء أدوار الخدمة المحددة هذه تلقائيا عند إضافة المسؤولين إلى الخادم المرن الجديد.

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

  • إنشاء أدوار غير إنترا: استخدم حساب مسؤول محلي لتشغيل البرامج النصية لإنشاء الدور.
  • إنشاء أدوار Microsoft Entra: إذا كنت بحاجة إلى إنشاء أدوار لمستخدمي Microsoft Entra، فاستخدم حساب مسؤول Microsoft Entra لتشغيل البرامج النصية الضرورية.

يمكنك تنزيل البرنامج النصي للأدوار من حساب التخزين الخاص بك كما هو موضح في لقطة الشاشة التالية:

عند ترحيل ملف الإخراج، roles.sql قد يتضمن أدوارا وسمات معينة غير قابلة للتطبيق في البيئة الجديدة. يجب مراعاة ما يلي:

  • إزالة السمات التي يمكن تعيينها فقط من قبل المستخدمين المتميزين: إذا قمت بالترحيل إلى بيئة لا تملك فيها امتيازات المستخدم الفائق، فقم بإزالة سمات مثل NOSUPERUSER و NOBYPASSRLS من تفريغ الأدوار.
  • باستثناء المستخدمين الخاصين بالخدمة: استبعاد مستخدمي خدمة الخادم الفردي، مثل azure_superuser أو azure_pg_admin. هذه خاصة بالخدمة ويتم إنشاؤها تلقائيا في البيئة الجديدة.

استخدم الأمر sed التالي لتنظيف تفريغ الأدوار:

sed -i '/azure_superuser/d; /azure_pg_admin/d; /azuresu/d; /^CREATE ROLE replication/d; /^ALTER ROLE replication/d; /^ALTER ROLE/ {s/NOSUPERUSER//; s/NOBYPASSRLS//;}' roles.sql

يحذف هذا الأمر الأسطر التي تحتوي على azure_superuserو azure_pg_adminazuresuبدءا من النسخ المتماثل CREATE ROLE والنسخ المتماثل ALTER ROLE، ويزيل سمات NOSUPERUSER و NOBYPASSRLS من عبارات ALTER ROLE.

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

إدارة النسخ الاحتياطي ل Azure PostgreSQL - الخادم المرن باستخدام مدخل Microsoft Azure.