ترحيل قاعدة بيانات 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 ، يجب أن تكون قادرا على:
- النسخ الاحتياطي لقاعدة بيانات Postgres من المثيل المستضاف خارج Azure Arc
- استعادته في مجموعة خوادم PostgreSQL Hyperscale التي تدعم Azure Arc
ما سيتبقى لك للقيام به هو:
- إعادة تعيين معلمات الخادم
- إعادة تعيين سياقات الأمان: إعادة إنشاء المستخدمين والأدوار وإعادة تعيين الأذونات...
للقيام بهذه العملية النسخ الاحتياطي / الاستعادة ، يمكنك استخدام أي أداة قادرة على إجراء النسخ الاحتياطي / الاستعادة ل Postgres. على سبيل المثال:
- Azure Data Studio وملحق Postgres الخاص به
pgclipgAdminpg_dumppg_restorepsql- ...
مثال
دعونا نوضح تلك الخطوات باستخدام الأداة pgAdmin .
ضع في اعتبارك الإعداد التالي:
مصدر:
خادم Postgres يعمل في مكان العمل على خادم معدني عاري ويسمى JEANYDSRV. إنه من الإصدار 12 ويستضيف قاعدة بيانات تسمى MyOnPremPostgresDB تحتوي على جدول T1 واحد يحتوي على صف واحد
مقصد:
خادم Postgres يعمل في بيئة Azure Arc ويسمى postgres01. إنه من الإصدار 12. ليس لديها أي قاعدة بيانات باستثناء قاعدة بيانات Postgres القياسية.
أخذ نسخة احتياطية من قاعدة البيانات المصدر في مكان العمل
تكوينه:
- أعطه اسم ملف: MySourceBackup
- تعيين التنسيق إلى مخصص
تكتمل النسخة الاحتياطية بنجاح:
إنشاء قاعدة بيانات فارغة على النظام الوجهة في مجموعة خوادم 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.
استعادة قاعدة البيانات في إعداد Arc
تكوين الاستعادة:
أشر إلى الملف الذي يحتوي على النسخة الاحتياطية لاستعادتها: MySourceBackup
إبقاء التنسيق مضبوطا على مخصص أو قطران
انقر على استعادة.
الاستعادة ناجحة.
تحقق من استعادة قاعدة البيانات بنجاح في مجموعة خوادم PostgreSQL Hyperscale التي تم تمكين Azure Arc لها
استخدم إحدى الطريقتين التاليتين:
من pgAdmin:
قم بتوسيع مثيل Postgres المستضاف في إعداد Azure Arc. سترى الجدول في قاعدة البيانات التي قمت باستعادتها وعند تحديد البيانات فإنه يعرض نفس الصف كما هو الحال في المثيل المحلي:
من psql داخل إعداد Azure Arc:
ضمن إعداد Arc الخاص بك ، يمكنك استخدامه psql للاتصال بمثيل Postgres الخاص بك ، وتعيين سياق قاعدة البيانات إلى RESTORED_MyOnPremPostgresDB البيانات والاستعلام عنها:
أدرج نقاط النهاية للمساعدة في تشكيل
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" }من سلسلة الاتصال الخاصة بك
psqlاستخدم المعلمة-dللإشارة إلى اسم قاعدة البيانات. باستخدام الأمر أدناه ، ستتم مطالبتك بكلمة المرور:psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639psqlيوصل.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=#حدد الجدول وسترى البيانات التي قمت باستعادتها من مثيل 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 ل PostgreSQL Hyperscale لتوزيع بياناتك عبر عقد PostgreSQL Hyperscale متعددة وللاستفادة من كل إمكانات قاعدة بيانات Azure ل PostgreSQL Hyperscale:
*في هذه المستندات، تخطى الأقسام تسجيل الدخول إلى مدخل Azure، وقم بإنشاء قاعدة بيانات Azure ل Postgres - Hyperscale (Citus). نفذ الخطوات المتبقية في نشر Azure Arc. هذه الأقسام خاصة بقاعدة بيانات Azure ل PostgreSQL Hyperscale (Citus) المقدمة كخدمة PaaS في سحابة Azure ولكن الأجزاء الأخرى من المستندات قابلة للتطبيق مباشرة على PostgreSQL Hyperscale الذي يدعم Azure Arc.
