diff options
Diffstat (limited to 'src/backend/access/transam')
-rw-r--r-- | src/backend/access/transam/xlog.c | 6 | ||||
-rw-r--r-- | src/backend/access/transam/xlogarchive.c | 9 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 16164483688..33bb0229aa7 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -5800,7 +5800,8 @@ CleanupAfterArchiveRecovery(TimeLineID EndOfLogTLI, XLogRecPtr EndOfLog, if (recoveryEndCommand && strcmp(recoveryEndCommand, "") != 0) ExecuteRecoveryCommand(recoveryEndCommand, "recovery_end_command", - true); + true, + WAIT_EVENT_RECOVERY_END_COMMAND); /* * We switched to a new timeline. Clean up segments on the old timeline. @@ -9915,7 +9916,8 @@ CreateRestartPoint(int flags) if (archiveCleanupCommand && strcmp(archiveCleanupCommand, "") != 0) ExecuteRecoveryCommand(archiveCleanupCommand, "archive_cleanup_command", - false); + false, + WAIT_EVENT_ARCHIVE_CLEANUP_COMMAND); return true; } diff --git a/src/backend/access/transam/xlogarchive.c b/src/backend/access/transam/xlogarchive.c index e9ca3aa48b2..4ddeac1fb92 100644 --- a/src/backend/access/transam/xlogarchive.c +++ b/src/backend/access/transam/xlogarchive.c @@ -24,6 +24,7 @@ #include "access/xlogarchive.h" #include "common/archive.h" #include "miscadmin.h" +#include "pgstat.h" #include "postmaster/startup.h" #include "postmaster/pgarch.h" #include "replication/walsender.h" @@ -168,7 +169,9 @@ RestoreArchivedFile(char *path, const char *xlogfname, /* * Copy xlog from archival storage to XLOGDIR */ + pgstat_report_wait_start(WAIT_EVENT_RESTORE_COMMAND); rc = system(xlogRestoreCmd); + pgstat_report_wait_end(); PostRestoreCommand(); pfree(xlogRestoreCmd); @@ -284,7 +287,8 @@ not_available: * This is currently used for recovery_end_command and archive_cleanup_command. */ void -ExecuteRecoveryCommand(const char *command, const char *commandName, bool failOnSignal) +ExecuteRecoveryCommand(const char *command, const char *commandName, + bool failOnSignal, uint32 wait_event_info) { char xlogRecoveryCmd[MAXPGPATH]; char lastRestartPointFname[MAXPGPATH]; @@ -354,7 +358,10 @@ ExecuteRecoveryCommand(const char *command, const char *commandName, bool failOn /* * execute the constructed command */ + pgstat_report_wait_start(wait_event_info); rc = system(xlogRecoveryCmd); + pgstat_report_wait_end(); + if (rc != 0) { /* |