Обсуждение: Continuous archiving fails
Hello everybody While testing a continuous archiving setup using PostgreSQL 8.2.3, on Debian Etch amd64, I found out that the slave database crashed when I did a 'DROP DATABASE' on the master. I was trying to stress test our setup, by continuously restoring a dump of our database, dropping the database, restoring it etc. But when I dropped the database I found out that the slave database crased, leaving log messages like these: .... LOG: restored log file "000000010000004F000000F0" from archive LOG: restored log file "000000010000004F000000F1" from archive LOG: restored log file "000000010000004F000000F2" from archive LOG: restored log file "000000010000004F000000F3" from archive LOG: could not fsync segment 0 of relation 19820534/105758957/125593540: No such file or directory CONTEXT: xlog redo checkpoint: redo 4F/F3859B60; undo 0/0; tli 1; xid 0/84778; oid 125601021; multi 1; offset 0; online FATAL: storage sync failed on magnetic disk: No such file or directory CONTEXT: xlog redo checkpoint: redo 4F/F3859B60; undo 0/0; tli 1; xid 0/84778; oid 125601021; multi 1; offset 0; online LOG: startup process (PID 16101) exited with exit code 1 LOG: aborting startup due to startup process failure --- David Darville
David Darville <ml@darville.vm.bytemark.co.uk> writes: > While testing a continuous archiving setup using PostgreSQL 8.2.3, on Debian > Etch amd64, I found out that the slave database crashed when I did a 'DROP > DATABASE' on the master. Thanks for the report. I believe this will fix it: Index: dbcommands.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v retrieving revision 1.187.2.1 diff -c -r1.187.2.1 dbcommands.c *** dbcommands.c 27 Jan 2007 20:15:47 -0000 1.187.2.1 --- dbcommands.c 12 Apr 2007 14:40:40 -0000 *************** *** 1438,1443 **** --- 1438,1446 ---- /* Also, clean out any entries in the shared free space map */ FreeSpaceMapForgetDatabase(xlrec->db_id); + /* Also, clean out any fsync requests that might be pending in md.c */ + ForgetDatabaseFsyncRequests(xlrec->db_id); + /* Clean out the xlog relcache too */ XLogDropDatabase(xlrec->db_id); regards, tom lane
On Thu, Apr 12, 2007 at 11:05:40AM -0400, Tom Lane wrote: > David Darville <ml@darville.vm.bytemark.co.uk> writes: > > While testing a continuous archiving setup using PostgreSQL 8.2.3, on Debian > > Etch amd64, I found out that the slave database crashed when I did a 'DROP > > DATABASE' on the master. > > Thanks for the report. I believe this will fix it: The patch did indeed fix it, and my test setup has now been running for 2 days straight without any problems ;-) --- David Darville