وصف النسخ المتماثل وفك التشفير المنطقي
تسمح لك المعلمة wal_level بتحديد مقدار المعلومات التي يجب كتابتها في السجل. هناك خياران: LOGICAL أو REPLICA. REPLICA هو الخيار الافتراضي. يتم تعيين هذه المعلمة عند بدء تشغيل الخادم.
التوافر العالي
قابلية الوصول العالية هي قاعدة بيانات Azure لخدمة PostgreSQL، والتي توفر خادماً احتياطياً جاهزاً لتولي الأمر إذا حدث فشل في الخادم المباشر الخاص بك. تستخدم قابلية الوصول العالية في قاعدة بيانات Azure لخادم PostgreSQL المرن النسخ المتماثل لتحديث خادم الاستعداد تلقائياً بتغييرات البيانات.
عند تكوين قابلية الوصول العالية لقاعدة بيانات Azure لخادم PostgreSQL المرن، يتم وضع الخادم الأساسي في منطقة توفر واحدة، ويتم إنشاء خادم استعداد في منطقة توفر مختلفة. يتم النسخ المتماثل للبيانات من الخادم الأساسي إلى خادم الاستعداد باستخدام النسخ المتماثل لتدفق PostgreSQL في الوضع المتزامن.
تتكون كل منطقة توفر من مركز بيانات واحد أو أكثر. مناطق التوفر لديها إمدادات الطاقة الخاصة بها، وأنظمة التبريد، والبنية التحتية للشبكة، وما إلى ذلك، مما يجعلها مستقلة عن بعضها البعض. يتم تخزين ثلاث نسخ من ملفات البيانات وملفات سجل الكتابة المسبقة (WAL) على تخزين متكرر محليا داخل كل منطقة توفر، ما يوفر عزلا ماديا بين الخوادم الأساسية وخوادم الاستعداد. إذا فشلت منطقة توفر واحدة، من المحتمل أن يستمر الاثنان الآخران في العمل. يتم توصيل مناطق التوفر داخل منطقة ما بشبكات الألياف السريعة مع زمن انتقال ذهاباً وإياباً أقل من 2 مللي ثانية.
إشعار
لا تحتوي جميع المناطق على مناطق توفر.
مع قابلية الوصول العالية، يتم تكرار البيانات طوال الوقت الذي تكون فيه قاعدة البيانات قيد الاستخدام، ما يوفر نسخة محدثة من النسخة الأصلية. إذا كان هناك عطل، يمكن استخدام النسخة المتماثلة بدلاً من النسخة الأصلية. يحتوي النسخ المتماثل على خادم أساسي وخادم استعداد. يرسل الخادم الأساسي ملفات سجل WAL إلى خادم الاستعداد، الذي يتلقى ملفات سجل WAL.
يقوم خادم الاستعداد بالإبلاغ مرة أخرى إلى الخادم الأساسي بمعلومات مثل سجل الكتابة المسبقة الأخير الذي كتبه، وآخر موضع مسح إلى القرص، وما إلى ذلك. لتحديد الحد الأدنى لتكرار جهاز استقبال WAL لإرسال تقرير مرة أخرى، قم بتعيين المعلمة wal_receiver_status_interval . تحدد المعلمة max_replication_slots الحد الأقصى لعدد فتحات النسخ المتماثل التي يمكن للخادم دعمها. عند تعيين wal_level إلى REPLICA، يجب أن يكون max_replication_slots واحدا على الأقل، ومع ذلك، يتراوح نطاق القيمة المسموح به بين 0 و262143.
تعين المعلمة max_wal_senders الحد الأقصى لعدد عمليات مرسل WAL.
تتم مراقبة الخوادم الأساسية وخوادم الاستعداد، ويتم اتخاذ الإجراءات المناسبة لمعالجة المشكلات، بما في ذلك تشغيل تجاوز الفشل إلى خادم الاستعداد. فيما يلي، يسرد حالات التوفر العالي المتكررة في المنطقة:
- التهيئة - في عملية إنشاء خادم الاستعداد الجديد.
- النسخ المتماثل - النسخ المتماثل للبيانات في حالة ثابتة وسليمة.
- سليم - يتم تحديث الاستعداد بواسطة الأساسي.
- تجاوز الفشل - خادم قاعدة البيانات الأساسي في سبيله لتجاوز الفشل إلى خادم الاستعداد.
- إزالة الاستعداد - في عملية حذف خادم الاستعداد.
- غير ممكن - لم يتم تمكين قابلية الوصول العالية المتكررة للمنطقة.
يمكنك إضافة قابلية الوصول العالية لخادم قاعدة بيانات موجود. إذا كنت تقوم بتمكين أو تعطيل قابلية الوصول العالية على خادم مباشر، فقم بتنفيذ العملية عندما يكون هناك نشاط ضئيل.
من مدخل Azure:
- انتقل إلى قاعدة بيانات Azure لخادم PostgreSQL الخاصة بك.
- من قسم Overview، حدد Configuration الحالي. يتم عرض قسم Compute + Storage.
- ضمن قابلية الوصول العالية، حدد خانة الاختيار High Availability (zone redundant) لتمكين قابلية الوصول العالية. قابلية الوصول العالية غير مدعومة للطبقة القابلة للاندفاع.
من المهم ملاحظة أن قابلية الوصول العالية هي خيار الإصلاح بعد الكوارث. لا يمكنك استخدام خادم الاستعداد لأي غرض آخر، مثل السماح بالوصول إلى قواعد البيانات للقراءة فقط. ومع ذلك، يمكنك تكوين النسخ المتماثل بين قاعدة بيانات Azure لخوادم PostgreSQL باستخدام ناشر ونموذج المشترك. يحافظ هذا التكوين على خادمين مع نسخ البيانات بينهما. يمكنك بعد ذلك الوصول الكامل إلى خادم المشترك ويمكنك استخدام قواعد البيانات لأي غرض. يمكنك ممارسة هذا التكوين في التمرين في نهاية هذه الوحدة النمطية.
فك التشفير المنطقي
يستخدم فك التشفير المنطقي أيضاً البيانات المرسلة إلى سجل الكتابة المسبقة. كما يوحي الاسم، فإنه يفك تشفير الإدخالات في سجل الكتابة المسبق لجعلها مفهومة. تتوفر جميع تغييرات INSERT و UPDATE وDELETE لفك التشفير المنطقي.
قد يتم استخدام فك التشفير المنطقي للتدقيق أو التحليلات أو أي سبب آخر قد تكون مهتما بمعرفة ما تم تغييره، ومتى تغير.
يقوم فك التشفير المنطقي باستخراج التغييرات من جميع الجداول في قاعدة البيانات. يختلف عن النسخ المتماثل من حيث أنه لا يمكنه إرسال هذه التغييرات إلى مثيلات PostgreSQL أخرى. بدلا من ذلك، يوفر ملحق PostgreSQL مكونا إضافيا للإخراج لدفق التغييرات.
يسمح فك التشفير المنطقي بفك تشفير محتويات سجل الكتابة المسبقة إلى تنسيق سهل الفهم، والذي يمكن تفسيره دون معرفة ببنية قاعدة البيانات. تدعم قاعدة بيانات Azure ل PostgreSQL فك التشفير المنطقي باستخدام ملحق wal2json ، المثبت على قاعدة بيانات Azure لخوادم Postgres.
يمكن استخدام ملحقات أخرى، مثل الملحق pglogical، والذي يسمح بالنسخ المتماثل المنطقي للدفق.
لاستخدام فك التشفير المنطقي، في معلمات الخادم، قم بتعيين:
- wal_level إلى LOGICAL
- max_replication_slots = 10
- max_wal_senders = 10
يجب إعادة تشغيل الخادم بعد إجراء هذه التغييرات.
لاستخدام الملحق pglogical من مدخل Microsoft Azure:
- انتقل إلى قاعدة بيانات Azure لخادم PostgreSQL الخاصة بك.
- حدد معلمات الخادم، وابحث عن shared_preload_libraries. من مربع القائمة المنسدلة، حدد pglogical.
- ابحث عن azure.extensions. من مربع القائمة المنسدلة، حدد pglogical.
- لتطبيق التغييرات، أعد تشغيل الخادم.
يجب أيضاً منح أذونات المستخدم المسؤول للنسخ المتماثل:
ALTER ROLE <adminname> WITH REPLICATION;
لمزيد من المعلومات، راجع وثائق ملحق pglogical عبر الإنترنت.
يؤدي فك التشفير المنطقي إلى إخراج تغيير البيانات كتدفق يسمى فتحة النسخ المتماثل المنطقية.
- تحتوي كل فتحة على مكون إضافي واحد للإخراج، والذي يمكنك تعريفه.
- توفر كل فتحة تغييرات من قاعدة بيانات واحدة فقط، ولكن يمكن أن تحتوي قاعدة البيانات على فتحات متعددة.
- عادةً ما يصدر كل تغيير في البيانات مرة واحدة لكل فتحة.
- إذا تمت إعادة تشغيل PostgreSQL، يمكن أن تعيد الفتحة إصدار التغييرات، والتي يحتاج العميل إلى معالجتها.
- يجب مراقبة الفتحات. تحتفظ الفتحات غير المستوعبة بجميع ملفات WAL لتلك التغييرات غير المستوعبة. يمكن أن يؤدي هذا الموقف إلى تخزين كامل أو التفاف معرف المعاملة.