When archiving is enabled, rotate the last WAL segment at shutdown so that
all transactions are archived. Original patch by Guillaume Smet.
This commit is contained in:
parent
ee3980ebf3
commit
2e6107cb62
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.340 2009/05/15 15:56:39 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.341 2009/05/28 11:02:16 heikki Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -6085,7 +6085,18 @@ ShutdownXLOG(int code, Datum arg)
|
|||||||
if (RecoveryInProgress())
|
if (RecoveryInProgress())
|
||||||
CreateRestartPoint(CHECKPOINT_IS_SHUTDOWN | CHECKPOINT_IMMEDIATE);
|
CreateRestartPoint(CHECKPOINT_IS_SHUTDOWN | CHECKPOINT_IMMEDIATE);
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* If archiving is enabled, rotate the last XLOG file so that all the
|
||||||
|
* remaining records are archived (postmaster wakes up the archiver
|
||||||
|
* process one more time at the end of shutdown). The checkpoint
|
||||||
|
* record will go to the next XLOG file and won't be archived (yet).
|
||||||
|
*/
|
||||||
|
if (XLogArchivingActive() && XLogArchiveCommandSet())
|
||||||
|
RequestXLogSwitch();
|
||||||
|
|
||||||
CreateCheckPoint(CHECKPOINT_IS_SHUTDOWN | CHECKPOINT_IMMEDIATE);
|
CreateCheckPoint(CHECKPOINT_IS_SHUTDOWN | CHECKPOINT_IMMEDIATE);
|
||||||
|
}
|
||||||
ShutdownCLOG();
|
ShutdownCLOG();
|
||||||
ShutdownSUBTRANS();
|
ShutdownSUBTRANS();
|
||||||
ShutdownMultiXact();
|
ShutdownMultiXact();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user