Hello, I have finished the patches for all of 9.x. > I dont' touch what '-n' option shows and rewrite documents for > the option a bit. And '-n' won't show the changes of backup > location.
-8.4: does not have backup locations in ControlFileData. 9.0-9.1: resetxlog_backuploc_9_0-9.1.patch: Add clearance of backupStartPoint. 9.2: resetxlog_backuploc_9_2.patch: Add clearance of backupStart/EndPoint and backupEndRequired 9.3: resetxlog_backuploc_9_3.patch: Ditto. (format of XLogRecPtr changed) 9.4-master: resetxlog_backuploc_9_4-master.patch: Add clearance of backupPoints. help message and html doc changed. With these patches, pg_resetxlog saves the stuck after recovery failure with wrongly placed backup label. regards, -- Kyotaro Horiguchi NTT Open Source Software Center
diff --git a/doc/src/sgml/ref/pg_resetxlog.sgml b/doc/src/sgml/ref/pg_resetxlog.sgml index 34b0606..b543f04 100644 --- a/doc/src/sgml/ref/pg_resetxlog.sgml +++ b/doc/src/sgml/ref/pg_resetxlog.sgml @@ -175,12 +175,14 @@ PostgreSQL documentation </para> <para> + The <option>-n</> (no operation) option instructs <command>pg_resetxlog</command> to print the values reconstructed from - <filename>pg_control</> and values about to be changed, and then exit - without modifying anything. This is mainly a debugging tool, but can be - useful as a sanity check before allowing <command>pg_resetxlog</command> - to proceed for real. + + <filename>pg_control</> and significant values about to be changed, and + then exit without modifying anything. This is mainly a debugging tool, but + can be useful as a sanity check before allowing + <command>pg_resetxlog</command> to proceed for real. </para> <para> diff --git a/src/bin/pg_resetxlog/pg_resetxlog.c b/src/bin/pg_resetxlog/pg_resetxlog.c index 915a1ed..9a80775 100644 --- a/src/bin/pg_resetxlog/pg_resetxlog.c +++ b/src/bin/pg_resetxlog/pg_resetxlog.c @@ -354,6 +354,10 @@ main(int argc, char *argv[]) if (minXlogSegNo > newXlogSegNo) newXlogSegNo = minXlogSegNo; + ControlFile.backupStartPoint = InvalidXLogRecPtr; + ControlFile.backupEndPoint = InvalidXLogRecPtr; + ControlFile.backupEndRequired = false; + /* * If we had to guess anything, and -f was not given, just print the * guessed values and exit. Also print if -n is given. @@ -1083,7 +1087,7 @@ usage(void) printf(_(" -f force update to be done\n")); printf(_(" -l XLOGFILE force minimum WAL starting location for new transaction log\n")); printf(_(" -m MXID,MXID set next and oldest multitransaction ID\n")); - printf(_(" -n no update, just show what would be done (for testing)\n")); + printf(_(" -n no update, just show significant changes which would be done\n (for testing)\n")); printf(_(" -o OID set next OID\n")); printf(_(" -O OFFSET set next multitransaction offset\n")); printf(_(" -V, --version output version information, then exit\n"));
diff --git a/src/bin/pg_resetxlog/pg_resetxlog.c b/src/bin/pg_resetxlog/pg_resetxlog.c index 38d03a3..e25ad64 100644 --- a/src/bin/pg_resetxlog/pg_resetxlog.c +++ b/src/bin/pg_resetxlog/pg_resetxlog.c @@ -350,6 +350,10 @@ main(int argc, char *argv[]) if (minXlogSegNo > newXlogSegNo) newXlogSegNo = minXlogSegNo; + ControlFile.backupStartPoint = InvalidXLogRecPtr; + ControlFile.backupEndPoint = InvalidXLogRecPtr; + ControlFile.backupEndRequired = false; + /* * If we had to guess anything, and -f was not given, just print the * guessed values and exit. Also print if -n is given.
diff --git a/src/bin/pg_resetxlog/pg_resetxlog.c b/src/bin/pg_resetxlog/pg_resetxlog.c index 92d98fc..dd1930c 100644 --- a/src/bin/pg_resetxlog/pg_resetxlog.c +++ b/src/bin/pg_resetxlog/pg_resetxlog.c @@ -341,6 +341,12 @@ main(int argc, char *argv[]) newXlogSeg = minXlogSeg; } + ControlFile.backupStartPoint.xlogid = 0; + ControlFile.backupStartPoint.xrecoff = 0; + ControlFile.backupEndPoint.xlogid = 0; + ControlFile.backupEndPoint.xrecoff = 0; + ControlFile.backupEndRequired = false; + /* * If we had to guess anything, and -f was not given, just print the * guessed values and exit. Also print if -n is given.
diff --git a/src/bin/pg_resetxlog/pg_resetxlog.c b/src/bin/pg_resetxlog/pg_resetxlog.c index a120c6f..8ca1e2b 100644 --- a/src/bin/pg_resetxlog/pg_resetxlog.c +++ b/src/bin/pg_resetxlog/pg_resetxlog.c @@ -341,6 +341,9 @@ main(int argc, char *argv[]) newXlogSeg = minXlogSeg; } + ControlFile.backupStartPoint.xlogid = 0; + ControlFile.backupStartPoint.xrecoff = 0; + /* * If we had to guess anything, and -f was not given, just print the * guessed values and exit. Also print if -n is given.
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers