هذا هو الأمر pg_rewind الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
pg_rewind - مزامنة دليل بيانات PostgreSQL مع دليل بيانات آخر كان
متشعب من الأول
موجز
pg_rewind [خيار...] {-D | --target-pgdata} دليل {--source-pgdata=دليل |
--مصدر الخادم =كونستر}
الوصف
pg_rewind هي أداة لمزامنة مجموعة PostgreSQL مع نسخة أخرى منها
الكتلة، بعد أن تباعدت الجداول الزمنية للمجموعات. السيناريو النموذجي هو إحضار
يعود الخادم الرئيسي القديم إلى الاتصال بالإنترنت بعد تجاوز الفشل، كوضع احتياطي يتبع الخادم الرئيسي الجديد.
والنتيجة تعادل استبدال دليل البيانات الهدف بالمصدر. الجميع
يتم نسخ الملفات، بما في ذلك ملفات التكوين. ميزة pg_rewind على أخذ ملف
النسخ الاحتياطي الأساسي الجديد، أو أدوات مثل rsync، هو أن pg_rewind لا يتطلب القراءة
كافة الملفات التي لم تتغير في المجموعة. وهذا يجعلها أسرع كثيرًا عندما تكون قاعدة البيانات كبيرة
ولا يختلف إلا جزء صغير منه بين العناقيد.
يقوم pg_rewind بفحص تاريخ المخطط الزمني لمجموعتي المصدر والهدف لتحديده
النقطة التي تباعدوا فيها، ويتوقع العثور على WAL في ملف pg_xlog الخاص بالمجموعة المستهدفة
يصل الدليل إلى نقطة الاختلاف. في الفشل النموذجي
السيناريو حيث تم إغلاق المجموعة المستهدفة بعد وقت قصير من الاختلاف، وهذا ليس
المشكلة، ولكن إذا كانت المجموعة المستهدفة قد تم تشغيلها لفترة طويلة بعد التباعد، فإن القديم
قد لا تكون ملفات WAL موجودة بعد الآن. وفي هذه الحالة، يمكن نسخها يدويًا من الملف
أرشيف WAL إلى دليل pg_xlog. جلب الملفات المفقودة من أرشيف WAL
تلقائيًا غير مدعوم حاليًا.
عند بدء تشغيل الخادم الهدف للمرة الأولى بعد تشغيل pg_rewind، سيتم ذلك
انتقل إلى وضع الاسترداد وأعد تشغيل كل WAL الذي تم إنشاؤه في الخادم المصدر بعد النقطة
تشعب. إذا لم يعد بعض WAL متاحًا في الخادم المصدر عند pg_rewind
تم تشغيله، وبالتالي لا يمكن نسخه بواسطة جلسة pg_rewind، فيجب إجراؤه
متاح عند بدء تشغيل الخادم الهدف. يمكن القيام بذلك عن طريق إنشاء ملف
Recovery.conf في دليل البيانات الهدف بالملحق المناسب استعادة_الامر.
يتطلب pg_rewind أن يكون لدى الخادم الهدف خيار wal_log_hints ممكّنًا
في postgresql.conf أو تم تمكين المجاميع الاختبارية للبيانات عند تهيئة المجموعة
مع الحرف الأول. لا يتم تشغيل أي منهما حاليًا بشكل افتراضي. يجب أن يكون full_page_writes أيضًا
ممكّن. هذا هو الافتراضي.
OPTIONS
يقبل pg_rewind وسيطات سطر الأوامر التالية:
-D دليل
--target-pgdata=دليل
يحدد هذا الخيار دليل البيانات الهدف الذي تتم مزامنته مع المصدر.
يجب أن يتم إيقاف تشغيل الخادم الهدف بشكل نظيف قبل تشغيل pg_rewind
--source-pgdata=دليل
يحدد المسار إلى دليل البيانات للخادم المصدر لمزامنة الهدف
مع. متى --source-pgdata عند استخدام الخادم المصدر، يجب إيقاف تشغيله بشكل نظيف.
--مصدر الخادم =كونستر
يحدد سلسلة اتصال libpq للاتصال بخادم PostgreSQL المصدر
مزامنة الهدف مع. يجب أن يكون الاتصال عاديا (غير مكرر)
اتصال مع وصول المستخدم المتميز. يجب أن يكون الخادم جاهزًا للعمل، ويجب ألا يكون كذلك
في وضع الاسترداد.
-n
--ركض جاف
افعل كل شيء باستثناء تعديل الدليل الهدف فعليًا.
-P
--تقدم
تمكن من إعداد التقارير المرحلية. سيؤدي تشغيل هذا إلى تحقيق تقدم تقريبي
التقرير أثناء نسخ البيانات من المجموعة المصدر.
--Debug
قم بطباعة مخرجات التصحيح المطول والتي تكون مفيدة في الغالب لتصحيح الأخطاء للمطورين
pg_rewind.
-V
--الإصدار
عرض معلومات الإصدار، ثم الخروج.
-?
--مساعدة
أظهر المساعدة، ثم اخرج.
البيئة
متى --مصدر الخادم عند استخدام الخيار، يستخدم pg_rewind أيضًا متغيرات البيئة
بدعم من libpq (راجع القسم 31.14 ، "متغيرات البيئة" ، في الوثائق).
الملاحظات
كيفية it أعمال
الفكرة الأساسية هي نسخ كل شيء من المجموعة الجديدة إلى المجموعة القديمة، باستثناء
الكتل التي نعرف أنها هي نفسها.
1. قم بمسح سجل WAL الخاص بالمجموعة القديمة، بدءًا من آخر نقطة تفتيش قبل
النقطة التي انفصل فيها تاريخ الخط الزمني للمجموعة الجديدة عن المجموعة القديمة. ل
في كل سجل WAL، قم بتدوين كتل البيانات التي تم لمسها. هذا ينتج قائمة
لجميع كتل البيانات التي تم تغييرها في المجموعة القديمة، بعد المجموعة الجديدة
متشعب.
2. انسخ كل تلك الكتل التي تم تغييرها من المجموعة الجديدة إلى المجموعة القديمة.
3. انسخ كافة الملفات الأخرى مثل ملفات الانسداد والتكوين من المجموعة الجديدة إلى ملف
المجموعة القديمة، كل شيء ما عدا ملفات العلاقة.
4. قم بتطبيق WAL من المجموعة الجديدة، بدءًا من نقطة التحقق التي تم إنشاؤها عند تجاوز الفشل.
(بالمعنى الدقيق للكلمة، pg_rewind لا يطبق WAL، بل يقوم فقط بإنشاء تسمية احتياطية
يشير الملف إلى أنه عند بدء تشغيل PostgreSQL، سيبدأ إعادة التشغيل من ذلك
نقطة تفتيش وتطبيق جميع WAL المطلوبة.)
استخدم pg_rewind عبر الإنترنت باستخدام خدمات onworks.net