*** a/doc/src/sgml/func.sgml --- b/doc/src/sgml/func.sgml *************** *** 14219,14224 **** postgres=# SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup()); --- 14219,14234 ---- + + pg_is_xlog_replay_paused + + + pg_xlog_replay_pause + + + pg_xlog_replay_resume + + The functions shown in control the progress of recovery. *** a/doc/src/sgml/recovery-config.sgml --- b/doc/src/sgml/recovery-config.sgml *************** *** 272,277 **** restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows --- 272,281 ---- recovery target settings to a later target and restart to continue recovery. + + This setting has no effect if either + is off or no recovery target is set. + *** a/src/backend/access/transam/recovery.conf.sample --- b/src/backend/access/transam/recovery.conf.sample *************** *** 87,92 **** --- 87,100 ---- # #recovery_target_timeline = 'latest' # + # + # If pause_at_recovery_target is enabled, recovery will pause when the + # recovery target is reached. The pause state will continue until + # pg_xlog_replay_resume() is called. This setting has no effect if either + # hot standby is disabled or no recovery target is set. + # + #pause_at_recovery_target = true + # #--------------------------------------------------------------------------- # STANDBY SERVER PARAMETERS #--------------------------------------------------------------------------- *** a/src/backend/access/transam/xlog.c --- b/src/backend/access/transam/xlog.c *************** *** 6481,6486 **** StartupXLOG(void) --- 6481,6488 ---- { if (recoveryPauseAtTarget) { + ereport(LOG, + (errmsg("Recovery has paused. Execute pg_xlog_replay_resume() to continue."))); SetRecoveryPause(true); recoveryPausesHere(); }