استعلامات لتحسين وتصحيح استنساخ PostgreSQL

يوفر التكرار المنطقي في PostgreSQL القوة والتنظيم وراء مجموعة تكرار pgEdge، مما يتيح لك تكرار الجداول بشكل انتقائي و، على مستوى أكثر تفصيلاً، التغييرات في تلك الجداول. سواء كنت تستخدم تكرار PostgreSQL الموزع pgEdge للتحليلات في الوقت الحقيقي، أو الكفاءة الحية، أو التوفر العالي، يسمح لك تحسين تكوين التكرار واستخدام الاستعلام بتحسين الأداء والاتساق والموثوقية.

تكرار بوستغرس هو أداة قوية لتكرار البيانات بين قواعد البيانات؛ على عكس التكرار المادي، يمنحك التكرار المنطقي مزيدًا من التحكم والمرونة فيما يتعلق بالبيانات التي يتم تكرارها وكيفية استخدامها.

يستكشف هذا المدونة الاستعلامات التي تجعل من السهل إدارة التكرار المنطقي لقاعدة بيانات PostgreSQL الخاصة بك.

مراقبة حالة تكرار بوستغرس المنطقي

مراقبة حالة إعداد التكرار المنطقي الخاص بك أمر حاسم لضمان سلسلة تشغيل التكرار الخاص بك. يمكن أن يساعدك استعلام عرض pg_stat_subscription في مراقبة حالة جميع الاشتراكات في قاعدة البيانات الخاصة بك:

SQL

 

  • subname – اسم الاشتراك.
  • state – حالة عملية الاشتراك (على سبيل المثال، التدفق، اللحاق، التهيئة).
  • sync_state – حالة المزامنة للإشتراك.
  • sent_lsn، write_lsn، flush_lsn، replay_lsn – تمثل هذه الأعمدة مجموعات تسلسل السجل (LSN) المختلفة التي تشير إلى تقدم التكرار.
  • replication_delay – التأخير بين كتابة LSN وتطبيقه على المشترك أمر حاسم لتحديد التأخر في التكرار.

يوفر هذا الاستعلام نظرة شاملة على حالة التكرار اللوجي، مما يتيح لك تحديد المشاكل بسرعة مثل تأخر التكرار أو المشتركين المفصولين.

تحليل تأخر التكرار في بوستجريس

فهم تأخر التكرار أمر أساسي للحفاظ على اتساق وجدارة البيانات عبر قواعد البيانات المستنسخة الخاصة بك. يمكن لعرض النظام pg_replication_slots مساعدتك في حساب تأخر التكرار بين الناشر والمشترك:

SQL

 

  • slot_name – اسم فتحة التكرار المستخدمة.
  • replication_lag_bytes – الفرق في البايتات بين الموضع الحالي لـ WAL على الناشر وآخر موضع WAL تم الاعتراف به من قبل المشترك.
  • replication_lag_time – الفرق الزمني بين آخر معاملة تمت إعادتها على المشترك والوقت الحالي.

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

مراقبة استخدام فتحة التكرار

تعتبر فتحات التكرار حاسمة في التكرار المنطقي، حيث تضمن الاحتفاظ بقطع WAL حتى يتم معالجتها من قبل جميع المشتركين. يمكنك الاستعلام عن عرض pg_replication_slots لمراقبة استخدام فتحات التكرار:

SQL

 

  • slot_name – اسم فتحة التكرار.
  • slot_lag_bytes – التأخير بالبايت بين وضع WAL الحالي وآخر وضع تم تأكيده كمتدفق بواسطة الفتحة.

مراقبة استخدام فتحة التكرار أمر حاسم لمنع المشاكل المتعلقة بالاحتفاظ بقطع WAL، والتي قد تؤدي بالإمكان إلى نفاد مساحة القرص على الناشر.

إسقاط فتحات التكرار غير المستخدمة

مع مرور الوقت، قد تتراكم فتحات تكرار غير مستخدمة، خاصة بعد إزالة المشتركين أو تغيير تكوينات التكرار. يمكن أن تتسبب هذه الفتحات غير المستخدمة في الاحتفاظ غير الضروري بملفات WAL، مما يؤدي إلى هدر مساحة القرص. يحدد الاستعلام التالي ويسقط الفتحات غير المستخدمة:

SQL

 

تكرار هذا الاستعلام على فتحات النسخ الاحتياطي الخاملة الخاصة بك واستخدام وظيفة الإدارة pg_drop_replication_slot لإسقاطها. تنظيف فتحات النسخ الاحتياطي غير المستخدمة بانتظام سيضمن أن تظل قاعدة البيانات الخاصة بك فعالة ويمنع المشاكل المحتملة المتعلقة باحتفاظ ملفات WAL.

إنشاء فتحات النسخ الاحتياطي

إذا كنت بحاجة إلى إنشاء فتحة نسخ تكرارية منطقية جديدة، فإن الاستعلام التالي مفيد:

SQL

 

يستخدم هذا الاستعلام وظيفة pg_create_logical_replication_slot لإنشاء فتحة نسخ تكرارية منطقية جديدة بالاسم المحدد والإضافة المخرجة (pgoutput في مثالنا). الاستعلام مفيد عند إعداد تكوينات تكرارية منطقية جديدة؛ استخدمه للتحقق من أن المشترك يمكنه بدء تلقي التغييرات من النقطة الصحيحة في سجلات WAL.

تحسين التكرار اللوجي بـ
pglogical

إذا كنت تستخدم الامتداد pglogical لميزات تكرارية لوجية متقدمة أكثر، فإن الاستعلام التالي يمكن أن يساعدك في التحقق من حالة جميع الاشتراكات الخاصة بـ pglogical:

SQL

 

  • subscription_name – اسم الاشتراك pglogical.

  • replay_lag – تأخر الإعادة بين آخر تغيير تم استلامه والوقت الحالي.
  • pending_changes – عدد التغييرات المعلقة التي يجب تطبيقها على المشترك.

يوفر هذا الاستعلام نظرة عامة مفصلة عن اشتراكاتك في pglogical، مما يساعدك على ضبط إعدادات النسخ وحل المشاكل.

الاستنتاج

يستخدم pgEdge Distributed PostgreSQL التكرار المنطقي عبر عنقودتك، مما يوفر تحكمًا أكبر ومرونة أكبر في تحديد بدقة البيانات التي يتم تكرارها وكيفية تخزين تلك البيانات. يستمر pgEdge في تطوير أدوات متعددة الاستخدامات تقدم تحكمًا دقيقًا على عمليات تكرار البيانات. يمكن أن تساعدك الاستعلامات الموضحة في هذه المدونة في مراقبة وإدارة وتحسين عنقودات التكرار المنطقي الخاصة بك بشكل فعال. تساعد هذه الاستعلامات في ضمان تناسق البيانات، وتقليل تأخر التكرار، ومنع الصراعات، كلها أمور أساسية للحفاظ على بيئة قاعدة بيانات قوية وموثوقة.

أثناء مواصلتك العمل مع التكرار المنطقي، فكر في دمج هذه الاستعلامات في rutines الخاصة بمراقبة وصيانة العادية لضمان أداء قواعد البيانات الخاصة بك وعنقودات pgEdge بشكل مثلى.

Source:
https://dzone.com/articles/optimizing-debugging-postgresql-replication-queries