سؤال

آمل أن يتمكن شخص ما من مساعدتي في قضية Wal-apping و Warm Standby. يعمل نظام الاستعداد الخاص بي بسعادة لأسابيع ، ثم فجأة يبدأ في البحث عن ملفات .history غير الموجودة. ثم يخرج ولا يمكنني إعادة تشغيله بنجاح دون إعادة بناء الاستعداد.

يعمل كلا النظامين CentOS 4.5 و Postgres 8.4.1. يستخدمون NFS لتخزين ملفات Wal من الإنتاج على الاستعداد.

جزء كبير من السجل ، مع تعليقاتي:

[** Recovery is running normally **]

Trigger file            : /tmp/pgsql.trigger
Waiting for WAL file    : 00000001000000830000005B
WAL file path           : /var/tafkan_backup_from_db1/00000001000000830000005B
Restoring to            : pg_xlog/RECOVERYXLOG
Sleep interval          : 2 seconds
Max wait interval       : 0 forever
Command for restore     : cp "/var/tafkan_backup_from_db1/00000001000000830000005B" "pg_xlog/RECOVERYXLOG"
Keep archive history    : 00000001000000830000004D and later
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
running restore         : OK

Trigger file            : /tmp/pgsql.trigger
Waiting for WAL file    : 00000001000000830000005B
WAL file path           : /var/tafkan_backup_from_db1/00000001000000830000005B
Restoring to            : pg_xlog/RECOVERYXLOG
Sleep interval          : 2 seconds
Max wait interval       : 0 forever
Command for restore     : cp "/var/tafkan_backup_from_db1/00000001000000830000005B" "pg_xlog/RECOVERYXLOG"
Keep archive history    : 000000000000000000000000 and later
running restore         : OK

[** All of a sudden it starts looks for .history files **]

Trigger file            : /tmp/pgsql.trigger
Waiting for WAL file    : 00000002.history
WAL file path           : /var/tafkan_backup_from_db1/00000002.history
Restoring to            : pg_xlog/RECOVERYHISTORY
Sleep interval          : 2 seconds
Max wait interval       : 0 forever
Command for restore     : cp "/var/tafkan_backup_from_db1/00000002.history" "pg_xlog/RECOVERYHISTORY"
Keep archive history    : 000000000000000000000000 and later
running restore         :cp: cannot stat `/var/tafkan_backup_from_db1/00000002.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000002.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000002.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000002.history': No such file or directory
not restored
history file not found
Trigger file            : /tmp/pgsql.trigger
Waiting for WAL file    : 00000001.history
WAL file path           : /var/tafkan_backup_from_db1/00000001.history
Restoring to            : pg_xlog/RECOVERYHISTORY
Sleep interval          : 2 seconds
Max wait interval       : 0 forever
Command for restore     : cp "/var/tafkan_backup_from_db1/00000001.history" "pg_xlog/RECOVERYHISTORY"
Keep archive history    : 000000000000000000000000 and later
running restore         :cp: cannot stat `/var/tafkan_backup_from_db1/00000001.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000001.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000001.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000001.history': No such file or directory
not restored
history file not found

[** I stopped Postgres, renamed recovery.done to recovery.conf, and restarted it. **]

Trigger file            : /tmp/pgsql.trigger
Waiting for WAL file    : 00000002.history
WAL file path           : /var/tafkan_backup_from_db1/00000002.history
Restoring to            : pg_xlog/RECOVERYHISTORY
Sleep interval          : 2 seconds
Max wait interval       : 0 forever
Command for restore     : cp "/var/tafkan_backup_from_db1/00000002.history" "pg_xlog/RECOVERYHISTORY"
Keep archive history    : 000000000000000000000000 and later
running restore         :cp: cannot stat `/var/tafkan_backup_from_db1/00000002.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000002.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000002.history': No such file or directory
cp: cannot stat `/var/tafkan_backup_from_db1/00000002.history': No such file or directory
not restored
history file not found
Trigger file            : /tmp/pgsql.trigger
Waiting for WAL file    : 0000000200000083000000A2
WAL file path           : /var/tafkan_backup_from_db1/0000000200000083000000A2
Restoring to            : pg_xlog/RECOVERYXLOG
Sleep interval          : 2 seconds
Max wait interval       : 0 forever
Command for restore     : cp "/var/tafkan_backup_from_db1/0000000200000083000000A2" "pg_xlog/RECOVERYXLOG"
Keep archive history    : 000000000000000000000000 and later
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...
WAL file not present yet. Checking for trigger file...

[** This file is not present. All WAL files start with 00000001. **] 

أيه أفكار؟ لا أعرف حتى ما هي ملفات .history ، والوثائق (الممتازة) (في الغالب) ليست واضحة جدًا في أي من هذا.

ملاحظة. أتمنى لو كنت أقوم بتشغيل أجهزة VM حتى أتمكن من استخدامها نص الارتباط ولا داعي للقلق بشأن أي من هذا الهراء على مستوى التطبيق :-)

تحديث: فيما يلي بعض السجلات من خادم الاستعداد في هذا الوقت تقريبًا. يبدو أن شيئًا ما جعل الخادم يتوقف عن التعافي ويأتي عبر الإنترنت ، لكنني لا أعرف ماذا. أنا متأكد تمامًا من أنه لا شيء يمكن أن ينشئ ملف الزناد.

2010-01-20 03:30:15 EST 4b3a5c63.401b LOG:  restored log file "00000001000000830000005A" from archive
2010-01-20 03:30:23 EST 4b3a5c63.401b LOG:  restored log file "00000001000000830000005B" from archive
2010-01-20 03:30:23 EST 4b3a5c63.401b LOG:  record with zero length at 83/5BFA2FF8
2010-01-20 03:30:23 EST 4b3a5c63.401b LOG:  redo done at 83/5BFA2FAC
2010-01-20 03:30:23 EST 4b3a5c63.401b LOG:  last completed transaction was at log time 2010-01-20 03:28:04.594399-05
2010-01-20 03:30:25 EST 4b3a5c63.401b LOG:  restored log file "00000001000000830000005B" from archive
2010-01-20 03:30:37 EST 4b3a5c63.401b LOG:  selected new timeline ID: 2
2010-01-20 03:30:49 EST 4b3a5c63.401b LOG:  archive recovery complete
2010-01-20 03:30:59 EST 4b3a5c62.4019 LOG:  database system is ready to accept connections
هل كانت مفيدة؟

المحلول 4

تمكنت من حل هذه المشكلة عن طريق تحديث أنظمة التشغيل CentOS على خادمتي PostgreSQL. لذلك ، أعتقد أن هذا كان أحد أعراض خلل الشبكات الكامنة من نوع ما.

نصائح أخرى

قد يكون هناك نهج مختلف تمامًا لـ HA لاستضافة قاعدة بيانات PG على أ DRBD الجهاز المشترك بين الجهازين.

هل استخدمت البرنامج النصي/برنامج الاسترداد الخاص بك؟ إذا كانت الإجابة بنعم - من فضلك لا تفعل ذلك. استخدم pg_standby من postgresql contrib.

خلاف ذلك - فقط تجاهل ملفات .history.

جاءت نسختك المتكررة على الإنترنت في مرحلة ما. يبحث "00000002.history" عن ملف تاريخ للجدول الزمني 00000002 ، في حين أن بقية سجلاتك تبدأ بـ 00000001 ، وهو الجدول الزمني الأصلي.

أود أن أتحقق من سجلات postgreSQL مباشرة قبل أن تبدأ في البحث عن ملف السجل لمعرفة ما إذا كان هناك أي مؤشر على أن DB جاء عبر الإنترنت ، حتى للحظة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top