diff options
-rw-r--r-- | doc/src/sgml/high-availability.sgml | 7 | ||||
-rw-r--r-- | src/backend/postmaster/postmaster.c | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml index d950100239a..d2f7fec5234 100644 --- a/doc/src/sgml/high-availability.sgml +++ b/doc/src/sgml/high-availability.sgml @@ -1237,9 +1237,10 @@ primary_slot_name = 'node_a_slot' to <literal>always</literal>, and the standby will call the archive command for every WAL segment it receives, whether it's by restoring from the archive or by streaming replication. The shared archive can - be handled similarly, but the archive_command must test if the file - being archived exists already, and if the existing file has identical - contents. This requires more care in the archive_command, as it must + be handled similarly, but the <varname>archive_command</varname> must + test if the file being archived exists already, and if the existing file + has identical contents. This requires more care in the + <varname>archive_command</varname>, as it must be careful to not overwrite an existing file with different contents, but return success if the exactly same file is archived twice. And all that must be done free of race conditions, if two servers attempt diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 36440cbdccd..6e2ba08a93d 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -1645,6 +1645,10 @@ ServerLoop(void) start_autovac_launcher = false; /* signal processed */ } + /* If we have lost the stats collector, try to start a new one */ + if (PgStatPID == 0 && pmState == PM_RUN) + PgStatPID = pgstat_start(); + /* * If we have lost the archiver, try to start a new one. * |