ترحيل قاعدة بيانات PostgreSQL إلى مجموعة خوادم PostgreSQL Hyperscale ممكنة من Azure Arc

يصف هذا المستند الخطوات اللازمة للحصول على قاعدة بيانات PostgreSQL الحالية (قاعدة بيانات غير مستضافة في خدمات البيانات التي تدعم Azure Arc) في مجموعة خوادم PostgreSQL Hyperscale التي تدعم Azure Arc.

ملاحظة

كميزة معاينة، تخضع التقنية المقدمة في هذه المقالة إلى شروط الاستخدام التكميلية لمعاينات Microsoft Azure.

تتوفر آخر التحديثات في ملاحظات حول الإصدار.

الاعتبارات

مجموعة خوادم PostgreSQL Hyperscale التي تم تمكين Azure Arc هي إصدار المجتمع من PostgreSQL ويتم تشغيلها مع تمكين ملحق CitusData. لذلك يجب أن تعمل أي أداة تعمل على PostgreSQL خارج Azure Arc مع مجموعة خوادم PostgreSQL Hyperscale التي تدعم Azure Arc.

على هذا النحو ، مع مجموعة الأدوات التي تستخدمها اليوم ل Postgres ، يجب أن تكون قادرا على:

  1. النسخ الاحتياطي لقاعدة بيانات Postgres من المثيل المستضاف خارج Azure Arc
  2. استعادته في مجموعة خوادم PostgreSQL Hyperscale التي تدعم Azure Arc

ما سيتبقى لك للقيام به هو:

  • إعادة تعيين معلمات الخادم
  • إعادة تعيين سياقات الأمان: إعادة إنشاء المستخدمين والأدوار وإعادة تعيين الأذونات...

للقيام بهذه العملية النسخ الاحتياطي / الاستعادة ، يمكنك استخدام أي أداة قادرة على إجراء النسخ الاحتياطي / الاستعادة ل Postgres. على سبيل المثال:

  • Azure Data Studio وملحق Postgres الخاص به
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql
  • ...

مثال

دعونا نوضح تلك الخطوات باستخدام الأداة pgAdmin . ضع في اعتبارك الإعداد التالي:

  • مصدر:
    خادم Postgres يعمل في مكان العمل على خادم معدني عاري ويسمى JEANYDSRV. إنه من الإصدار 12 ويستضيف قاعدة بيانات تسمى MyOnPremPostgresDB تحتوي على جدول T1 واحد يحتوي على صف واحد Migrate-source

  • مقصد:
    خادم Postgres يعمل في بيئة Azure Arc ويسمى postgres01. إنه من الإصدار 12. ليس لديها أي قاعدة بيانات باستثناء قاعدة بيانات Postgres القياسية.
    Migrate-destination

أخذ نسخة احتياطية من قاعدة البيانات المصدر في مكان العمل

Migrate-source-backup

تكوينه:

  1. أعطه اسم ملف: MySourceBackup
  2. تعيين التنسيق إلى مخصصMigrate-source-backup-configure

تكتمل النسخة الاحتياطية بنجاح:
Migrate-source-backup-completed

إنشاء قاعدة بيانات فارغة على النظام الوجهة في مجموعة خوادم PostgreSQL Hyperscale التي تدعم Azure Arc

ملاحظة

لتسجيل مثيل Postgres في الأداة، تحتاج إلى استخدام IP العام للمثيل الخاص بك في pgAdmin مجموعة Kubernetes الخاصة بك وتعيين سياق المنفذ والأمان بشكل مناسب. ستجد هذه التفاصيل على psql سطر نقطة النهاية بعد تشغيل الأمر التالي:

az postgres arc-server endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s

يؤدي ذلك إلى إرجاع إخراج مثل:

{
  "instances": [
    {
      "endpoints": [
    "Description": "PostgreSQL Instance",
    "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
  },
  {
    "Description": "Log Search Dashboard",
    "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
  },
  {
    "Description": "Metrics Dashboard",
    "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
  }
],
"engine": "PostgreSql",
"name": "postgres01"
}
  ],
  "namespace": "arc"
}

دعنا نسمي قاعدة البيانات الوجهة RESTORED_MyOnPremPostgresDB.

Migrate-destination-db-create

استعادة قاعدة البيانات في إعداد Arc

Migratre-db-restore

تكوين الاستعادة:

  1. أشر إلى الملف الذي يحتوي على النسخة الاحتياطية لاستعادتها: MySourceBackup

  2. إبقاء التنسيق مضبوطا على مخصص أو قطرانMigrate-db-restore-configure

  3. انقر على استعادة.

    الاستعادة ناجحة.
    Migrate-db-restore-completed

تحقق من استعادة قاعدة البيانات بنجاح في مجموعة خوادم PostgreSQL Hyperscale التي تم تمكين Azure Arc لها

استخدم إحدى الطريقتين التاليتين:

من pgAdmin:

قم بتوسيع مثيل Postgres المستضاف في إعداد Azure Arc. سترى الجدول في قاعدة البيانات التي قمت باستعادتها وعند تحديد البيانات فإنه يعرض نفس الصف كما هو الحال في المثيل المحلي:

Migrate-db-restore-verification

من psql داخل إعداد Azure Arc:

ضمن إعداد Arc الخاص بك ، يمكنك استخدامه psql للاتصال بمثيل Postgres الخاص بك ، وتعيين سياق قاعدة البيانات إلى RESTORED_MyOnPremPostgresDB البيانات والاستعلام عنها:

  1. أدرج نقاط النهاية للمساعدة في تشكيل psql سلسلة الاتصال:

    az postgres arc-server endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
    
    {
      "instances": [
        {
          "endpoints": [
        "Description": "PostgreSQL Instance",
        "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
      },
      {
        "Description": "Log Search Dashboard",
        "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
      },
      {
        "Description": "Metrics Dashboard",
        "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
      }
    ],
    "engine": "PostgreSql",
    "name": "postgres01"
    }
      ],
      "namespace": "arc"
    }
    
  2. من سلسلة الاتصال الخاصة بك psql استخدم المعلمة -d للإشارة إلى اسم قاعدة البيانات. باستخدام الأمر أدناه ، ستتم مطالبتك بكلمة المرور:

    psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
    

    psql يوصل.

    Password for user postgres:
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1), server 12.3 (Debian 12.3-1.pgdg100+1))
    WARNING: psql major version 10, server major version 12.
          Some psql features might not work.
    SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
    Type "help" for help.
    
    RESTORED_MyOnPremPostgresDB=#   
    
  3. حدد الجدول وسترى البيانات التي قمت باستعادتها من مثيل Postgres المحلي:

    RESTORED_MyOnPremPostgresDB=# select * from t1;
    
     col1 |    col2
    ------+-------------
        1 | BobbyIsADog
    (1 row)
    

ملاحظة

  • لن ترى الكثير من فوائد الأداء للتشغيل على PostgreSQL Hyperscale الذي يدعم Azure Arc حتى تقوم بالتوسع وتقليص / توزيع البيانات عبر العقد العاملة لمجموعة خوادم PostgreSQL Hyperscale الخاصة بك. راجع الخطوات التالية.

  • لا يمكن اليوم "الدمج في Azure Arc" وهو مثيل Postgres موجود يعمل في أماكن العمل أو في أي سحابة أخرى. بمعنى آخر ، لا يمكن تثبيت نوع من "وكيل Azure Arc" على مثيل Postgres الحالي لجعله إعداد Postgres ممكنا بواسطة Azure Arc. بدلا من ذلك ، تحتاج إلى إنشاء مثيل Postgres جديد ونقل البيانات إليه. يمكنك استخدام التقنية الموضحة أعلاه للقيام بذلك أو يمكنك استخدام أي أداة ETL من اختيارك.

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

*في هذه المستندات، تخطى الأقسام تسجيل الدخول إلى مدخل Azure، وقم بإنشاء قاعدة بيانات Azure ل Postgres - Hyperscale (Citus). نفذ الخطوات المتبقية في نشر Azure Arc. هذه الأقسام خاصة بقاعدة بيانات Azure ل PostgreSQL Hyperscale (Citus) المقدمة كخدمة PaaS في سحابة Azure ولكن الأجزاء الأخرى من المستندات قابلة للتطبيق مباشرة على PostgreSQL Hyperscale الذي يدعم Azure Arc.