البرنامج التعليمي: ترحيل/ترقية قاعدة بيانات Azure ل PostgreSQL - خادم واحد إلى قاعدة بيانات Azure ل PostgreSQL - خادم واحد عبر الإنترنت باستخدام DMS عبر مدخل Microsoft Azure

يمكنك استخدام خدمة ترحيل قاعدة البيانات الخاصة بـ Azure لترحيل قواعد البيانات من قاعدة بيانات Azure لـ PostgreSQL - مثيل الخادم الفردي لنفس الإصدار أو العديد من الإصدارات من قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL - مثيل خادم واحد أو قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL - Flexible Server باستخدام الحد الأدنى من التوقف. في هذا البرنامج التعليمي، يمكنك ترحيل قاعدة بيانات نموذج DVD Rental من مثيل محلي من PostgreSQL 9.6 إلى قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL باستخدام نشاط الترحيل عبر الإنترنت في خدمة ترحيل قاعدة البيانات الخاصة بـ Azure.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • ترحيل نموذج مخطط قاعدة البيانات باستخدام الأداة المساعدة pg_dump.
  • إنشاء مثيل لخدمة Azure Database Migration Service.
  • إنشاء مشروع ترحيل في Azure Database Migration Service.
  • تشغيل الترحيل.
  • مراقبة الترحيل.
  • تنفيذ قطع الترحيل.

ملاحظة

يتطلب استخدام خدمة ترحيل قاعدة بيانات Azure لتنفيذ ترحيل عبر الإنترنت إنشاء مثيل استنادًا إلى مستوى التسعير Premium. تشفير القرص لمنع سرقة البيانات في أثناء عملية الترحيل

هام

للحصول على تجربة ترحيل مثالية، توصي Microsoft بإنشاء مثيل لخدمة ترحيل قاعدة بيانات Azure في نفس منطقة Azure مثل قاعدة البيانات الهدف. يمكن أن يؤدي نقل البيانات عبر الأماكن أو المناطق الجغرافية إلى إبطاء عملية الترحيل وعرض أخطاء.

هام

يتم دعم عملية الترحيل من قاعدة البيانات الخاصة بـ Azure لـPostgreSQL لإصدار PostgreSQL 9.x والإصدارات الأحدث. يمكنك أيضاً استخدام هذا البرنامج التعليمي لترحيل من قاعدة البيانات الخاصة بـ Azure لمثيل PostgreSQL إلى قاعدة البيانات الخاصة بـ Azure أخرى لمثيل PostgreSQL أو مثيل Hyperscale (Citus). لاحظ أن الترحيل من PostgreSQL 9.5 و9.6 تتطلب امتيازات النسخ المتماثل المنطقية الإضافية في مثيل المصدر.

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

لإكمال هذا البرنامج التعليمي، تحتاج إلى:

  • تحقق من حالة سيناريوهات الترحيل المعتمدة من قبل Azure Database Migration Service من أجل مجموعات الترحيل والإصدار المدعومة.

  • قاعدة البيانات الخاصة بـ Azure القائمة لإصدار PostgreSQL 10 والمثيل الأحدث مع قاعدة بيانات باستخدام DVD Rental.

    لاحظ أيضاً أن قاعدة البيانات الخاصة بـ Azure المستهدفة لإصدار PostgreSQL يجب أن تكون مساوية أو يتم إصدارها من خلال أحدث إصدار محلي لـ PostgreSQL. على سبيل المثال، يمكن ترحيل PostgreSQL 10 إلى قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL 10 أو 11 ولكن ليس إلى قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL 9.6.

  • إنشاء قاعدة بيانات خاصة بـ Azure لخادم PostgreSQL أو إنشاء قاعدة بيانات خاصة بـ Azure لخادم PostgreSQL - Hyperscale (Citus).

  • أنشئ الشبكة الافتراضية لـ Microsoft Azure لـ Azure Database Migration Service باستخدام نموذج نشر Azure Resource Manager. لمزيد من المعلومات حول إنشاء شبكة افتراضية، راجع Virtual Network Documentationوخاصة مقالات التشغيل السريع التي تحتوي على التفاصيل خطوة بخطوة.

  • تأكد من أن القواعد الخاصة بـ Network Security Group للشبكة الافتراضية التي لا تمنع المنفذ الصادر 443 من ServiceTag لـ ServiceBus وStorage وAzureMonitor. لمزيد من التفاصيل حول تصفية استخدام الشبكة للشبكة الافتراضية الخاصة بـ NSG، راجع مقالةتصفية استخدام الشبكة باستخدام مجموعات أمان الشبكة.

  • إنشاء server-level firewall rule لقاعدة البينات الخاصة بـ Azure لمصدر PostgreSQL لسماح بخدمة ترحيل قاعدة البيانات الخاصة بـ Azure للوصول إلى قواعد البيانات الخاصة بالمصدر. تقدم نطاق الشبكة الفرعية للشبكة الافتراضية المستخدمة لخدمة ترحيل قاعدة البيانات الخاصة بـ Azure.

  • إنشاء server-level firewall rule لقاعدة البيانات الخاصة بـ Azure لـ PostgreSQL التي تهدف إلى السماح بخدمة ترحيل قاعدة البيانات الخاصة بـ Azure للوصول إلى قواعد البيانات الخاصة بالهدف. تقدم نطاق الشبكة الفرعية للشبكة الافتراضية المستخدمة لخدمة ترحيل قاعدة البيانات الخاصة بـ Azure.

  • تمكين النسخ المتماثل المنطقي في قاعدة بيانات Azure لمصدر PostgreSQL.

  • تعيين معلمات الخادم التالي في قاعدة البيانات الخاصة بـ Azure لمثيل PostgreSQL المستخدمة كمصدر:

    • max_replication_slots = [عدد الفتحات]، نوصي بضبط الإعداد إلى خمس فتحات
    • max_wal_senders =[عدد المهام المتزامنة] - تعين معلومات max_wal_senders عدد المهام المتزامنة التي يمكن تشغيلها، والتوصية بإعدادها إلى 10 مهام

ملاحظة

معلمات الخادم أعلاه ثابتة وسوف تتطلب إعادة تمهيد قاعدة بيانات Azure الخاصة بك لمثيل PostgreSQL لتكون سارية. لمزيد من المعلومات حول معلمات الخادم، راجع كيفية تكوين معلمات الخادم في قاعدة بيانات Azure لـ PostgreSQL.

هام

تحتاج جميع الجداول الموجودة في قاعدة البيانات الحالية إلى مفتاح أساسي لضمان إمكانية مزامنة التغييرات مع قاعدة البيانات الهدف.

ترحيل مخطط النموذج

لاستكمال جميع كائنات قاعدة البيانات مثل مخططات الجدول والفهارس والإجراءات المخزنة، نحتاج إلى استخراج المخطط من قاعدة البيانات المصدر وتطبيقه على قاعدة البيانات.

  1. استخدم الأمر pg_dump-s لإنشاء ملف تفريغ مخطط لقاعدة بيانات.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    على سبيل المثال، لإنشاء ملف تفريغ مخطط لقاعدة البيانات ⁧⁩dvdrental⁩:

    pg_dump -O -h mypgserver-source.postgres.database.azure.com -U pguser@mypgserver-source -d dvdrental -s -x > dvdrentalSchema.sql
    

    لمزيد من المعلومات حول استخدام الأداة المساعدة pg_dump، راجع الأمثلة في البرنامج التعليمي ⁧⁩pg-dump⁩.

  2. إنشاء قاعدة بيانات فارغة في البيئة المستهدفة الخاصة بك، وهي Azure Database لـ PostgreSQL.

    للحصول على تفاصيل حول كيفية الاتصال وإنشاء قاعدة بيانات، راجع مقالة ⁧⁩إنشاء قاعدة بيانات Azure لخادم PostgreSQL في مدخل Azure⁧⁩ أو إنشاء قاعدة بيانات Azure لـ ⁧⁩PostgreSQL - Hyperscale (Citus) الملقم في المدخل Azure⁧⁩.

    ملاحظة

    مثيل من قاعدة بيانات Azure لـ PostgreSQL - مقياس فرط (Citus) لديه قاعدة بيانات واحدة فقط: ⁧⁩citus⁧⁩.

  3. استيراد المخطط إلى قاعدة البيانات الهدف الذي قمت بإنشائه عن طريق استعادة ملف تفريغ المخطط.

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    على سبيل المثال:

    psql -h mypgserver-source.postgres.database.azure.com  -U pguser@mypgserver-source -d dvdrental citus < dvdrentalSchema.sql
    

    ملاحظة

    تتعامل خدمة الترحيل داخليًّا مع تمكين/ تعطيل المفاتيح والمشغلات الخارجية لضمان ترحيل بيانات موثوق وقوي. ونتيجة لذلك، لا داعي للقلق بشأن إجراء أي تعديلات على مخطط قاعدة البيانات الهدف.

تسجيل موفر الموارد

قم بتسجيل موفر موارد Microsoft.DataMigration قبل إنشاء المثيل الأول لخدمة ترحيل قاعدة البيانات.

  1. سجّل الدخول إلى مدخل Azure. ابحث عن الاشتراكات وحددها.

    إظهار اشتراكات المدخل

  2. حدد الاشتراك الذي تريد إنشاء مثيل لـ Azure Database Migration Service فيه، ثم حدد موفرو الموارد.

    إظهار موفري الموارد

  3. ابحث عن الترحيل، ثم حدد تسجيل لـ Microsoft.DataMigration.

    سجل مزود الموارد

إنشاء مثيل DMS

  1. في مدخل Azure، ⁧⁩حدد إنشاء مورد،⁧⁩ وابحث عنAzure Database Migration Service⁧⁩ ثم حدد Azure Database Migration Service ⁧⁩من القائمة المنسدلة.

    Azure Marketplace

  2. في شاشة Azure Database Migration Service، حدد Create.

    إنشاء مثيل Azure Database Migration Service instance

  3. في شاشة ⁧⁩Create Migration Service⁧⁩ حدد الاسم والاشتراك ومجموعة موارد جديدة أو موجودة وموقع الخدمة.

  4. حدد شبكة ظاهرية موجودة أو قم بإنشاء شبكة جديدة.

    توفر الشبكة الافتراضية خدمة ترحيل قاعدة بيانات Azure مع إمكانية الوصول إلى خادم PostgreSQL المصدر وقاعدة بيانات Azure المستهدفة لمثيل PostgreSQL.

    لمزيد من المعلومات حول كيفية إنشاء شبكة اتصال ظاهرية في مدخل Azure، راجع مقالة ⁧⁩إنشاء شبكة اتصال افتراضية باستخدام مدخل Azure⁧⁩.

  5. تحديد فئة التسعير.

    لمزيد من المعلومات حول التكاليف و مستويات التسعير، راجع ⁧⁩صفحة التسعير⁧⁩.

    اضبط إعدادات مثيل خدمة ترحيل قاعدة بيانات Azure

  6. ثم انقر فوق ⁧⁩مراجعة + إنشاء⁧⁩ لإنشاء الخدمة.

    سيتم الانتهاء من إنشاء الخدمة في غضون 10 إلى 15 دقيقة.

إنشاء مشروع ترحيل

بعد إنشاء الخدمة، حدد موقعها داخل مدخل Microsoft Azure، وافتحها، ثم أنشئ مشروع ترحيل جديد.

  1. في مدخل Microsoft Azure، حدد ⁧⁩All services⁧⁩ وابحث عن Azure Database Migration Service، ثم حدد ⁧⁩Azure Database Migration Service⁧⁩.

    تحديد موقع كافة مثيلات خدمة ترحيل قاعدة بيانات Azure

  2. في شاشة ⁧⁩Azure Database Migration Services⁧⁩، ابحث عن اسم مثيل خدمة ترحيل قاعدة بيانات Azure الذي أنشأته، وحدد المثيل، ثم حدد ⁧⁩New Migration Project⁧⁩.

  3. على شاشة ⁧⁩مشروع ترحيل جديد،⁧⁩ حدد اسما للمشروع، في مربع النص ⁧⁩نوع الملقم المصدر،⁧⁩ حدد ⁧⁩PostgreSQL⁧⁩، في مربع النص ⁧⁩نوع الخادم الهدف،⁧⁩ حدد ⁧⁩قاعدة بيانات Azure لـ PostgreSQL⁧⁩.

    ملاحظة

    اختر PostgreSQL في نوع الخادم الخاص بالمصدر على الرغم من أن خادم المصدر هو قاعدة بيانات خاصة بـ Azure لمثيل PostgreSQL.

  4. في القسم اختيار نوع النشاط، حدد ترحيل البيانات عبر الإنترنت.

    إنشاء مشروع Azure Database Migration Service

    ملاحظة

    بدلاً من ذلك، يمكنك اختيار ⁧⁩إنشاء مشروع فقط⁧⁩ لإنشاء مشروع الترحيل الآن وتنفيذ الترحيل لاحقًا.

  5. حدد ⁧⁩حفظ⁧⁩، لاحظ متطلبات استخدام خدمةAzure Database Migration Service بنجاح لترحيل البيانات، ثم حدد ⁧⁩إنشاء نشاط وتشغيله⁧⁩.

قم بتحديد تفاصيل المصدر.

  1. في شاشة ⁧⁩إضافة تفاصيل المصدر⁧⁩، حدد تفاصيل الاتصال لمثيل PostgreSQL المصدر.

    شاشة إضافة تفاصيل المصدر

    ملاحظة

    يمكنك العثور على تفاصيل مثل "اسم الخادم" و"بوابة الخادم" و"اسم قاعدة البيانات" ، وما إلى ذلك في قاعدة البيانات الخاصة بـ Azure لبوابة PostgreSQL.

  2. حدد ⁧⁩Save⁧⁩.

تحديد تفاصيل الهدف

  1. على شاشة ⁧⁩تفاصيل الهدف،⁧⁩ حدد تفاصيل الاتصال لخادم Hyperscale (Citus) المستهدف، وهو المثيل الذي تم توفيره مسبقًا من Hyperscale (Citus) الذي تم نشر مخطط ⁧⁩تأجير DVD⁧⁩ باستخدام pg_dump.

    شاشة تفاصيل الهدف

    ملاحظة

    يمكنك ترحيل من قاعدة بيانات خاصة بـ Azure لمثيل PostgreSQL إلى قاعدة بيانات خاصة بـ Azure أخرى لمثيل الخادم الواحد الخاص بـ PostgreSQL أو إلى خادم Hyperscale (Citus).

  2. حدد Save، ثم على الخريطة لاستهداف قواعد البيانات، عين المصدر وقاعدة البيانات المستهدفة للترحيل.

    في حال كانت قاعدة البيانات الهدف تحتوي على نفس اسم قاعدة البيانات مثل قاعدة البيانات المصدر، فإن Azure Database Migration Service تحدد قاعدة البيانات الهدف افتراضيًا.

    خريطة لاستهداف شاشة قواعد البيانات

  3. حدد ⁧⁩حفظ⁧⁩، ثم على شاشة ⁧⁩إعدادات الترحيل،⁧⁩ اقبل القيم الافتراضية.

    شاشة إعدادات الترحيل

  4. حدد ⁧⁩حفظ⁧⁩، على شاشة ⁧⁩ملخص الترحيل،⁧⁩ في مربع النص ⁧⁩اسم النشاط،⁧⁩ وحدد اسمًا لنشاط الترحيل، ثم راجع الملخص للتأكد من تطابق تفاصيل المصدر والهدف مع ما حددته سابقا.

    شاشة ملخص الترحيل

تشغيل الترحيل

  • حدد ⁧⁩Run migration⁧⁩.

تظهر نافذة نشاط الترحيل وينبغي تحديث ⁧⁩حالة⁧⁩ النشاط لتظهر على أنها ⁧⁩نسخة احتياطية قيد التقدم⁧⁩. قد تواجه الخطأ التالي عند الترقية من قاعدة بيانات Azure ل PostgreSQL 9.5 أو 9.6:

أبلغ سيناريو عن خطأ غير معروف. 28000: لا يوجد إدخال pg_hba.conf لاتصال النسخ المتماثل من المضيف "40.121.141.121"، المستخدم "sr"

هذا لأن PostgreSQL ليس لديه امتيازات مناسبة لإنشاء النسخ المتماثلة المنطقية المطلوبة. لتمكين الامتيازات المطلوبة، يمكنك القيام بما يلي:

  1. افتح إعدادات "أمان الاتصال" لقاعدة بيانات Azure المصدر لخادم PostgreSQL الذي تحاول الترحيل/الترقية منه.
  2. إضافة new firewall rule باستخدام اسم ينتهي بـ "_replrule" وإضافة عنوان IP من رسالة الخطأ إلى بداية حقول IP ونهاية حقول IP. للحصول على مثال الخطأ أعلاه -

Firewall rule name = sr_replrule; بدء IP من40.121.141.121; نهاية IP من 40.121.141.121.

  1. انقر فوق save والسماح بالتغيير بشكل كامل.
  2. إعادة محاولة نشاط DMS.

مراقبة الترحيل

  1. في شاشة نشاط الترحيل، حدد ⁧⁩تحديث⁧⁩ لتحديث العرض حتى تظهر ⁧⁩حالة⁧⁩ الترحيل ⁧⁩كمكتمل⁧⁩.

    مراقبة عملية الترحيل

  2. عند اكتمال الترحيل، ضمن ⁧⁩Database Name⁧⁩، حدد قاعدة بيانات محددة للوصول إلى حالة الترحيل لعمليات تحميل البيانات ⁧⁩الكامل⁧⁩⁧⁩ومزامنة البيانات الإضافية⁩.

    ملاحظة

    يظهر ⁧⁩تحميل البيانات الكامل⁧⁩ حالة ترحيل التحميل الأولية، بينما تظهر ⁧⁩مزامنة البيانات الإضافية⁧⁩ حالة التقاط بيانات التغيير (CDC).

    تفاصيل تحميل البيانات الكاملة

    تفاصيل مزامنة البيانات المتزايدة

تنفيذ قطع الترحيل

بعد اكتمال التحميل الكامل الأولية، يتم وضع علامة على قواعد البيانات ⁧⁩جاهزة للقطع⁧⁩.

  1. عندما تكون مستعدًا لإكمال ترحيل قاعدة البيانات، حدد ⁧⁩بدء القطع⁧⁩.

  2. انتظر حتى يظهر عداد التغييرات المعلقة0 للتأكد من إيقاف جميع المعاملات الواردة إلى قاعدة البيانات المصدر، حدد Confirm، ثم حدد Apply.

    شاشة اكتمال القطع

  3. عندما تظهر حالة ترحيل قاعدة البيانات ⁧⁩Completed⁧⁩، ⁧⁩قم بإعادة إنشاء التسلسلات⁧⁩ (في حال كان ذلك ممكنًا)، ثم قم بتوصيل التطبيقات الخاصة بك بالمثيل الهدف الجديد من قاعدة بيانات Azure لـ PostgreSQL.

ملاحظة

يمكن استخدام خدمة ترحيل قاعدة البيانات الخاصة بـ Azure لإجراء ترقيات الإصدار الرئيسي مع تقليل وقت التوقف في قاعدة البيانات الخاصة بـ Azure لـ PostgreSQL - خادم واحد. كوِّن أولاً قاعدة بيانات الهدف مع الإصدار PostgreSQL الأعلى المطلوبة لإعدادات الشبكة والمعلمات. ثم يمكنك بدء الترحيل إلى قواعد البيانات الخاصة بالهدف باستخدام الإجراء الموضح أعلاه. بعد الترحيل الكلي لخادم قاعدة بيانات الهدف، يمكنك تحديث سلسلة اتصال التطبيق للإشارة إلى خادم قاعدة البيانات الخاصة بالهدف.

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