diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2012-07-14 14:17:43 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2012-07-14 14:22:57 +0300 |
commit | 6c349a565abf1e5ddf68971c62afff14947bcfa2 (patch) | |
tree | 9bcdbca5a4211fa9d3e0ad32c95964e9dff30de6 | |
parent | 8e708e5e36d8a0295780a9aa1d99f01f5acb6182 (diff) | |
download | postgresql-6c349a565abf1e5ddf68971c62afff14947bcfa2.tar.gz postgresql-6c349a565abf1e5ddf68971c62afff14947bcfa2.zip |
Print the name of the WAL file containing latest REDO ptr in pg_controldata.
This makes it easier to determine how far back you need to keep archived WAL
files, to restore from a backup.
Fujii Masao
-rw-r--r-- | src/bin/pg_controldata/pg_controldata.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/bin/pg_controldata/pg_controldata.c b/src/bin/pg_controldata/pg_controldata.c index 298f836504f..129c4d0dda3 100644 --- a/src/bin/pg_controldata/pg_controldata.c +++ b/src/bin/pg_controldata/pg_controldata.c @@ -24,6 +24,7 @@ #include <fcntl.h> #include "access/xlog.h" +#include "access/xlog_internal.h" #include "catalog/pg_control.h" @@ -95,6 +96,8 @@ main(int argc, char *argv[]) char sysident_str[32]; const char *strftime_fmt = "%c"; const char *progname; + XLogSegNo segno; + char xlogfilename[MAXFNAMELEN]; set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_controldata")); @@ -171,6 +174,13 @@ main(int argc, char *argv[]) localtime(&time_tmp)); /* + * Calculate name of the WAL file containing the latest checkpoint's REDO + * start point. + */ + XLByteToSeg(ControlFile.checkPointCopy.redo, segno); + XLogFileName(xlogfilename, ControlFile.checkPointCopy.ThisTimeLineID, segno); + + /* * Format system_identifier separately to keep platform-dependent format * code out of the translatable message string. */ @@ -201,6 +211,8 @@ main(int argc, char *argv[]) printf(_("Latest checkpoint's REDO location: %X/%X\n"), (uint32) (ControlFile.checkPointCopy.redo >> 32), (uint32) ControlFile.checkPointCopy.redo); + printf(_("Latest checkpoint's REDO WAL file: %s\n"), + xlogfilename); printf(_("Latest checkpoint's TimeLineID: %u\n"), ControlFile.checkPointCopy.ThisTimeLineID); printf(_("Latest checkpoint's full_page_writes: %s\n"), |