diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml index c05b5262cb3436c588ed12af0f415700ac7b7b74..9e3e3c5ac430fcbef67d475a52434384f0169064 100644 --- a/doc/src/sgml/maintenance.sgml +++ b/doc/src/sgml/maintenance.sgml @@ -581,17 +581,17 @@ HINT: To avoid a database shutdown, execute a database-wide VACUUM in "mydb". <programlisting> ERROR: database is not accepting commands to avoid wraparound data loss in database "mydb" -HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb". +HINT: Stop the postmaster and vacuum that database in single-user mode. </programlisting> The 1-million-transaction safety margin exists to let the administrator recover without data loss, by manually executing the required <command>VACUUM</> commands. However, since the system will not execute commands once it has gone into the safety shutdown mode, - the only way to do this is to stop the server and use a single-user - backend to execute <command>VACUUM</>. The shutdown mode is not enforced - by a single-user backend. See the <xref linkend="app-postgres"> reference - page for details about using a single-user backend. + the only way to do this is to stop the server and start the server in single-user + mode to execute <command>VACUUM</>. The shutdown mode is not enforced + in single-user mode. See the <xref linkend="app-postgres"> reference + page for details about using single-user mode. </para> </sect2> diff --git a/doc/src/sgml/ref/postgres-ref.sgml b/doc/src/sgml/ref/postgres-ref.sgml index 943a3be00e37e5d367a539673e4a8b923800d1ac..65fd0a29ffb06ac4262e81d8bd509047c44a37d1 100644 --- a/doc/src/sgml/ref/postgres-ref.sgml +++ b/doc/src/sgml/ref/postgres-ref.sgml @@ -529,6 +529,10 @@ PostgreSQL documentation <refsect2> <title>Options for Single-User Mode</title> + <indexterm> + <primary>single-user mode</primary> + </indexterm> + <para> The following options only apply to the single-user mode. </para> diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c index 0579c84bea20ff19eca87a88ccd6c943bae4f943..75216b9d4201e27095eb8099a020e7b6616516a4 100644 --- a/src/backend/access/transam/varsup.c +++ b/src/backend/access/transam/varsup.c @@ -73,7 +73,7 @@ GetNewTransactionId(bool isSubXact) * If we're past xidVacLimit, start trying to force autovacuum cycles. * If we're past xidWarnLimit, start issuing warnings. * If we're past xidStopLimit, refuse to execute transactions, unless - * we are running in a standalone backend (which gives an escape hatch + * we are running in single-user mode (which gives an escape hatch * to the DBA who somehow got past the earlier defenses). * * Note that this coding also appears in GetNewMultiXactId. @@ -114,14 +114,14 @@ GetNewTransactionId(bool isSubXact) (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("database is not accepting commands to avoid wraparound data loss in database \"%s\"", oldest_datname), - errhint("Stop the postmaster and use a standalone backend to vacuum that database.\n" + errhint("Stop the postmaster and vacuum that database in single-user mode.\n" "You might also need to commit or roll back old prepared transactions."))); else ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("database is not accepting commands to avoid wraparound data loss in database with OID %u", oldest_datoid), - errhint("Stop the postmaster and use a standalone backend to vacuum that database.\n" + errhint("Stop the postmaster and vacuum that database in single-user mode.\n" "You might also need to commit or roll back old prepared transactions."))); } else if (TransactionIdFollowsOrEquals(xid, xidWarnLimit))