التهيئة/إنشاء وضع الاستعداد
استخدم الإجراء createestandby لإعداد بيئة أساسية/احتياطية في البداية. يجب تنفيذ الخطوات التالية كمستخدم جذر:
يمكن أن يتسبب إجراء createestandby في حدوث انقطاع قصير في نظام SKOOR بسبب إعادة تشغيل قاعدة البيانات (تغيير التكوين التلقائي المحتمل). سيعمل بشكل كامل ويمكن الوصول إليه بعد ذلك.
انتبه لما يلي:
تحتاج قواعد البيانات التي يبلغ حجمها 100 جيجابايت أو أكبر عادةً إلى ملفات WAL أكثر من الحجم الافتراضي البالغ 2048. يجب زيادة المعلمة wal_keep_size قبل تهيئة النسخ المتماثل:
vi /var/lib/pgsql/data/postgresql.skoor.conf
قم بتغيير المعلمة (يمكن أن تكون القيمة أكبر من 4096، ضع في اعتبارك المساحة الخالية على القرص):
wal_keep_size = 4096
سيقوم البرنامج النصي بمزامنة جداول قاعدة البيانات من الأساسي إلى الاحتياطي. تحقق من حجم قاعدة البيانات بالكامل باستخدام:
du -sh /var/lib/pgsql
من المحتمل جدًا أن يكون هناك عدة غيغابايت من البيانات لنقلها. في هذه الحالة، من الأفضل أن تتم تهيئة النسخ المتماثل في المساء.
لا تؤدي إعادة التهيئة إلى نسخ جميع الملفات. إذا كانت التهيئة قد تمت بالفعل مرة واحدة باستخدام createstandby، ولكن يجب تكرارها لسبب ما تعطل النسخ المتماثل، فسيتم نقل بيانات أقل بكثير من الأساسي إلى الاحتياطي.
ومع ذلك، يجب مقارنة كل ملف من ملفات قاعدة البيانات بالمجموع الاختباري على كلا الجانبين حتى تتمكن آليات النسخ المتماثل من تحديد الملفات التي يجب نقلها. المزامنة التي تعتمد فقط على أحجام ملفات قاعدة البيانات وأوقات تعديلها ليست موثوقة بما فيه الكفاية. ولذلك، قبل بدء المزامنة الفعلية، يجب أن تتم المزامنة الاختبارية لقاعدة البيانات بأكملها على كلا الجانبين، الأمر الذي قد يستغرق عدة ساعات، اعتماداً على أداء المضيف وحجم قاعدة البيانات.
من الجيد إكمال نسخة احتياطية كاملة على النظام النشط الحالي قبل بدء التهيئة. يمكن القيام بذلك باستخدام الأمر:
cd /var/lib/pgsql
sudo -u postgres bash -l -c '/opt/eranger/bin/eranger-server-backup.sh full'
والذي سيحفظ نسخة احتياطية كاملة إلى /opt/eranger/server/backups/.
لبدء التهيئة، يجب إصدار الأمر createestandby على النظام الأساسي. نظرًا لأن هذا الأمر يمكن أن يعمل لعدة ساعات، اعتمادًا على كمية البيانات التي يجب نقلها وعرض النطاق الترددي للشبكة بين الأساسي والاستعداد، فمن المستحسن تشغيل الأمر ضمن جلسة شاشة. يسمح أمر الشاشة بتشغيل الأمر عن بعد دون إنهاء الأمر إذا تم قطع الاتصال بالمضيف البعيد لسبب ما. قم بإصدار جلسة عمل شاشة جديدة (مع مخزن مؤقت كبير بما فيه الكفاية لإعادة تمرير السجل) على الأساسي كجذر باستخدام الأمر التالي:
screen -h 10000
ثم ضمن جلسة عمل الشاشة هذه، قم بتشغيل الأمر التالي لبدء عملية التهيئة الاحتياطية:
/opt/eranger/bin/eranger-server-replication.pl createstandby
فيما يلي مثال على إخراج الأمر أعلاه:
192.168.56.221 prepare standby system 192.168.56.222 (primary system 192.168.56.221).. 192.168.56.221 192.168.56.221 192.168.56.221 ============================================================ 192.168.56.221 == Setting up standby system on 192.168.56.222 192.168.56.221 == THIS WILL DESTROY DATABASE on 192.168.56.222 192.168.56.221 == make sure you have a backup 192.168.56.221 ============================================================ 192.168.56.221 192.168.56.221 if you continue, we will call above command with ssh press ENTER to continue, Ctrl-C to abort >
اضغط على Enter للمتابعة. سيظهر الإخراج التالي:
192.168.56.221 checking ssh for user reranger 192.168.56.222 stopped skoor syncfs Removed symlink /etc/systemd/system/multi-user.target.wants/eranger-server.service. Removed symlink /etc/systemd/system/multi-user.target.wants/eranger-report.service. 192.168.56.221 restart postgresql-13.service.. 192.168.56.221 SKOOR Engine start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 httpd already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 eranger-report already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 eranger-server already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 start eranger-ethd (service eranger-ethd ).. 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 start eranger-eth-alerter (service eranger-eth-alerter ).. 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 eranger-collector already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 eranger-agent already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 start eranger-ic-alerter (service eranger-ic-alerter ).. 192.168.56.221 done 192.168.56.221 copied file to /var/lib/pgsql/13/data/ 192.168.56.221 copied file to /var/lib/pgsql/data/ng_tblspc/ 192.168.56.221 rsync done NOTICE: all required WAL segments have been archived 192.168.56.222 stopped skoor syncfs 192.168.56.222 Enable and start eranger-replication-tunnel.service at /opt/eranger/bin/eranger-server-replication.pl line 1751. 192.168.56.221 started skoor syncfs
يمكن أيضًا تشغيل الأمر createestandby في الوضع غير التفاعلي باستخدام المعلمة -f. سيكون الإخراج أقصر في هذه الحالة:
يرجى الانتباه إلى أن هذا الأمر يجعل هذا النظام إلى الخادم الأساسي ويدمر قاعدة البيانات على العقدة الأخرى على الفور
# eranger-server-replication.pl -f createstandby 192.168.56.221 prepare standby system 192.168.56.222 (primary system 192.168.56.221).. 192.168.56.221 192.168.56.221 checking ssh for user reranger 192.168.56.222 stopped skoor syncfs 192.168.56.221 restart postgresql-13.service.. 192.168.56.221 SKOOR Engine start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 httpd already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 eranger-report already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 eranger-server already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 start eranger-ethd (service eranger-ethd ).. 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 start eranger-eth-alerter (service eranger-eth-alerter ).. 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 eranger-collector already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 eranger-agent already running (not starting) 192.168.56.221 done 192.168.56.221 SKOOR Engine start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1818. 192.168.56.221 start eranger-ic-alerter (service eranger-ic-alerter ).. 192.168.56.221 done 192.168.56.221 copied file to /var/lib/pgsql/13/data/ 192.168.56.221 copied file to /var/lib/pgsql/data/ng_tblspc/ 192.168.56.221 rsync done NOTICE: all required WAL segments have been archived 192.168.56.222 stopped skoor syncfs 192.168.56.222 Enable and start eranger-replication-tunnel.service at /opt/eranger/bin/eranger-server-replication.pl line 1751. 192.168.56.221 started skoor syncfs
يمكن ترك جلسة الشاشة في أي وقت بالضغط أولاً على "Ctrl-a" ثم "d". لإعادة الدخول إلى جلسة الشاشة، أدخل أمر إعادة الربط التالي:
screen -h 10000 -r
يقوم البرنامج النصي بما يلي:
مقارنة المجموع الاختباري لكل ملف قاعدة بيانات بين الأساسي والاستعداد.
إيقاف خدمة خادم eranger-server على الجهاز الاحتياطي إذا كان قيد التشغيل
يتم إنشاء الملفين /var/lib/pgsql/data/recovery.signal و skoor-replication.conf (الذي يتضمنه postgresql.skoor.conf) على الوضع الاحتياطي. هذه تسمح للجهة الاحتياطية بمعرفة عنوان IP الخاص بالأساسي، ومنفذ النسخ المتماثل، وبيانات الاعتماد، والمسار إلى ملف المشغل. يعرض ما يلي مثالاً لملف skoor-replication.con على الوضع الاحتياطي:
primary_conninfo = 'host=10.1.0.88 port=5432 user=replication password=replication' promote_trigger_file = '/tmp/postgresql.trigger.5432'
لا يوجد ملف_مشغل_الترويج_المشغل إذا كان النسخ المتماثل قيد التشغيل. يؤدي إنشاؤه إلى إنهاء النسخ المتماثل (أي في حالة التبديل/الفشل).
Recovery.signal هو مجرد ملف علامة وبالتالي فهو فارغ.يتم نقل أجزاء قاعدة البيانات التي تختلف بين المضيفين باستخدام عملية rsync عبر ssh. يتم استبعاد المسارات التالية من عملية المزامنة:
/var/lib/lib/pgsqql/data/pg_xlog/ (لا تتم مزامنة السجلات الثنائية، أي ملفات WAL أثناء عملية الإنشاء والاستعداد، ولا يتم نسخ محتواها إلا بعد بدء عملية الإنشاء والاستعداد)
/var/lib/lib/pgsql/data/recovery.signal
/var/lib/lib/pgsql/data/skoor-replication.conf
/var/lib/lib/pgsql/data/postmaster.pid
يتم بدء النسخ المتماثل
أثناء عملية إنشاء النسخ الاحتياطي، يمكن استخدام الأساسي بشكل طبيعي لقبول بيانات القياس من المجمّعين. يمكن أيضًا استخدام واجهة الويب SKOOR، ومع ذلك، قد يتدهور الأداء بسبب حسابات المجموع الاختباري ونقل الملفات الكبيرة عبر الشبكة.
يعتمد الوقت المستغرق لتهيئة النسخ المتماثل لأول مرة بشكل أساسي على حجم قاعدة البيانات وسرعة الشبكة وأداء المضيف.
كل تعليق حول ما يقوم به البرنامج النصي مسبوق بعنوان IP للمضيف الذي تتم معالجة المهمة عليه.
بعد انتهاء تشغيل الأمر، تحقق من رمز الخروج الخاص به. يجب أن يكون صفرًا:
... 10.1.0.88 done 10.1.0.88 copied file to /var/lib/pgsql/data/ NOTICE: pg_stop_backup complete, all required WAL segments have been archived # echo $? 0
يتم الآن بدء النسخ المتماثل ومن الآن فصاعدًا يتم نسخ جميع استعلامات قاعدة البيانات التي يتم تنفيذها على الأساسي إلى المضيف الاحتياطي على الفور.