summaryrefslogtreecommitdiff
path: root/doc/src/sgml
diff options
context:
space:
mode:
authorTom Lane2008-12-11 18:16:18 +0000
committerTom Lane2008-12-11 18:16:18 +0000
commit17dc17366093a84232170be1497a52049283fa75 (patch)
tree48301f1b773306ddfa7c22a03cda7b2139dfa0ff /doc/src/sgml
parentd9346f2186c51fbc7d3351d7e00d84e937c80925 (diff)
To reduce confusion over whether VACUUM FULL is needed for anti-wraparound
vacuuming (it's not), say "database-wide VACUUM" instead of "full-database VACUUM" in the relevant hint messages. Also, document the permissions needed to do this. Per today's discussion.
Diffstat (limited to 'doc/src/sgml')
-rw-r--r--doc/src/sgml/maintenance.sgml8
-rw-r--r--doc/src/sgml/ref/vacuum.sgml16
2 files changed, 19 insertions, 5 deletions
diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml
index 09c14782d86..f7925a0eee7 100644
--- a/doc/src/sgml/maintenance.sgml
+++ b/doc/src/sgml/maintenance.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.87 2008/12/08 20:30:58 mha Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.88 2008/12/11 18:16:18 tgl Exp $ -->
<chapter id="maintenance">
<title>Routine Database Maintenance Tasks</title>
@@ -472,9 +472,13 @@ SELECT datname, age(datfrozenxid) FROM pg_database;
<programlisting>
WARNING: database "mydb" must be vacuumed within 177009986 transactions
-HINT: To avoid a database shutdown, execute a full-database VACUUM in "mydb".
+HINT: To avoid a database shutdown, execute a database-wide VACUUM in "mydb".
</programlisting>
+ (A manual <command>VACUUM</> should fix the problem, as suggested by the
+ hint; but note that the <command>VACUUM</> must be performed by a
+ superuser, else it will fail to process system catalogs and thus not
+ be able to advance the database's <structfield>datfrozenxid</>.)
If these warnings are
ignored, the system will shut down and refuse to execute any new
transactions once there are fewer than 1 million transactions left
diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml
index cfb748dd19f..cf32ac71b2f 100644
--- a/doc/src/sgml/ref/vacuum.sgml
+++ b/doc/src/sgml/ref/vacuum.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/vacuum.sgml,v 1.53 2008/11/14 10:22:47 petere Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/vacuum.sgml,v 1.54 2008/12/11 18:16:18 tgl Exp $
PostgreSQL documentation
-->
@@ -40,8 +40,8 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ <replaceable class="PARAMETER">
<para>
With no parameter, <command>VACUUM</command> processes every table in the
- current database. With a parameter, <command>VACUUM</command> processes
- only that table.
+ current database that the current user has permission to vacuum.
+ With a parameter, <command>VACUUM</command> processes only that table.
</para>
<para>
@@ -147,6 +147,16 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ <replaceable class="PARAMETER">
<title>Notes</title>
<para>
+ To vacuum a table, one must ordinarily be the table's owner or a
+ superuser. However, database owners are allowed to
+ vacuum all tables in their databases, except shared catalogs.
+ (The restriction for shared catalogs means that a true database-wide
+ <command>VACUUM</> can only be performed by a superuser.)
+ <command>VACUUM</> will skip over any tables that the calling user
+ does not have permission to vacuum.
+ </para>
+
+ <para>
<command>VACUUM</> cannot be executed inside a transaction block.
</para>