| <!-- |
| $PostgreSQL: pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.37.2.2 2007/03/26 17:23:45 tgl Exp $ |
| PostgreSQL documentation |
| --> |
| |
| <refentry id="APP-VACUUMDB"> |
| <refmeta> |
| <refentrytitle id="APP-VACUUMDB-TITLE"><application>vacuumdb</application></refentrytitle> |
| <manvolnum>1</manvolnum> |
| <refmiscinfo>Application</refmiscinfo> |
| </refmeta> |
| |
| <refnamediv> |
| <refname id="vacuumdb">vacuumdb</refname> |
| <refpurpose>garbage-collect and analyze a <productname>PostgreSQL</productname> database</refpurpose> |
| </refnamediv> |
| |
| <indexterm zone="app-vacuumdb"> |
| <primary>vacuumdb</primary> |
| </indexterm> |
| |
| <refsynopsisdiv> |
| <cmdsynopsis> |
| <command>vacuumdb</command> |
| <arg rep="repeat"><replaceable>connection-option</replaceable></arg> |
| <group><arg>--full</arg><arg>-f</arg></group> |
| <group><arg>--verbose</arg><arg>-v</arg></group> |
| <group><arg>--analyze</arg><arg>-z</arg></group> |
| <arg>--table | -t <replaceable>table</replaceable> |
| <arg>( <replaceable class="parameter">column</replaceable> [,...] )</arg> |
| </arg> |
| <arg><replaceable>dbname</replaceable></arg> |
| <sbr> |
| <command>vacuumdb</command> |
| <arg rep="repeat"><replaceable>connection-options</replaceable></arg> |
| <group><arg>--all</arg><arg>-a</arg></group> |
| <group><arg>--full</arg><arg>-f</arg></group> |
| <group><arg>--verbose</arg><arg>-v</arg></group> |
| <group><arg>--analyze</arg><arg>-z</arg></group> |
| </cmdsynopsis> |
| </refsynopsisdiv> |
| |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para> |
| <application>vacuumdb</application> is a utility for cleaning a |
| <productname>PostgreSQL</productname> database. |
| <application>vacuumdb</application> will also generate internal statistics |
| used by the <productname>PostgreSQL</productname> query optimizer. |
| </para> |
| |
| <para> |
| <application>vacuumdb</application> is a wrapper around the SQL |
| command <xref linkend="SQL-VACUUM" endterm="SQL-VACUUM-title">. |
| There is no effective difference between vacuuming databases via |
| this utility and via other methods for accessing the server. |
| </para> |
| |
| </refsect1> |
| |
| |
| <refsect1> |
| <title>Options</title> |
| |
| <para> |
| <application>vacuumdb</application> accepts the following command-line arguments: |
| |
| <variablelist> |
| <varlistentry> |
| <term><option>-a</option></term> |
| <term><option>--all</option></term> |
| <listitem> |
| <para> |
| Vacuum all databases. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option><optional>-d</> <replaceable class="parameter">dbname</replaceable></option></term> |
| <term><option><optional>--dbname</> <replaceable class="parameter">dbname</replaceable></option></term> |
| <listitem> |
| <para> |
| Specifies the name of the database to be cleaned or analyzed. |
| If this is not specified and <option>-a</option> (or |
| <option>--all</option>) is not used, the database name is read |
| from the environment variable <envar>PGDATABASE</envar>. If |
| that is not set, the user name specified for the connection is |
| used. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-e</></term> |
| <term><option>--echo</></term> |
| <listitem> |
| <para> |
| Echo the commands that <application>vacuumdb</application> generates |
| and sends to the server. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-f</option></term> |
| <term><option>--full</option></term> |
| <listitem> |
| <para> |
| Perform <quote>full</quote> vacuuming. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-q</></term> |
| <term><option>--quiet</></term> |
| <listitem> |
| <para> |
| Do not display a response. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-t <replaceable class="parameter">table</replaceable> [ (<replaceable class="parameter">column</replaceable> [,...]) ]</option></term> |
| <term><option>--table <replaceable class="parameter">table</replaceable> [ (<replaceable class="parameter">column</replaceable> [,...]) ]</option></term> |
| <listitem> |
| <para> |
| Clean or analyze <replaceable class="parameter">table</replaceable> only. |
| Column names may be specified only in conjunction with |
| the <option>--analyze</option> option. |
| </para> |
| <tip> |
| <para> |
| If you specify columns, you probably have to escape the parentheses |
| from the shell. (See examples below.) |
| </para> |
| </tip> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-v</option></term> |
| <term><option>--verbose</option></term> |
| <listitem> |
| <para> |
| Print detailed information during processing. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-z</option></term> |
| <term><option>--analyze</option></term> |
| <listitem> |
| <para> |
| Calculate statistics for use by the optimizer. |
| </para> |
| </listitem> |
| </varlistentry> |
| </variablelist> |
| </para> |
| |
| <para> |
| <application>vacuumdb</application> also accepts |
| the following command-line arguments for connection parameters: |
| |
| <variablelist> |
| <varlistentry> |
| <term><option>-h <replaceable class="parameter">host</replaceable></></term> |
| <term><option>--host <replaceable class="parameter">host</replaceable></></term> |
| <listitem> |
| <para> |
| Specifies the host name of the machine on which the |
| server |
| is running. If the value begins with a slash, it is used |
| as the directory for the Unix domain socket. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-p <replaceable class="parameter">port</replaceable></></term> |
| <term><option>--port <replaceable class="parameter">port</replaceable></></term> |
| <listitem> |
| <para> |
| Specifies the TCP port or local Unix domain socket file |
| extension on which the server |
| is listening for connections. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-U <replaceable class="parameter">username</replaceable></></term> |
| <term><option>--username <replaceable class="parameter">username</replaceable></></term> |
| <listitem> |
| <para> |
| User name to connect as |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><option>-W</></term> |
| <term><option>--password</></term> |
| <listitem> |
| <para> |
| Force password prompt. |
| </para> |
| </listitem> |
| </varlistentry> |
| </variablelist> |
| </para> |
| </refsect1> |
| |
| |
| <refsect1> |
| <title>Environment</title> |
| |
| <variablelist> |
| <varlistentry> |
| <term><envar>PGDATABASE</envar></term> |
| <term><envar>PGHOST</envar></term> |
| <term><envar>PGPORT</envar></term> |
| <term><envar>PGUSER</envar></term> |
| |
| <listitem> |
| <para> |
| Default connection parameters |
| </para> |
| </listitem> |
| </varlistentry> |
| </variablelist> |
| |
| <para> |
| This utility, like most other <productname>PostgreSQL</> utilities, |
| also uses the environment variables supported by <application>libpq</> |
| (see <xref linkend="libpq-envars">). |
| </para> |
| |
| </refsect1> |
| |
| |
| <refsect1> |
| <title>Diagnostics</title> |
| |
| <para> |
| In case of difficulty, see <xref linkend="SQL-VACUUM" |
| endterm="sql-vacuum-title"> and <xref linkend="APP-PSQL"> for |
| discussions of potential problems and error messages. |
| The database server must be running at the |
| targeted host. Also, any default connection settings and environment |
| variables used by the <application>libpq</application> front-end |
| library will apply. |
| </para> |
| |
| </refsect1> |
| |
| |
| <refsect1> |
| <title>Notes</title> |
| |
| <para> |
| <application>vacuumdb</application> might need to connect several |
| times to the <productname>PostgreSQL</productname> server, asking |
| for a password each time. It is convenient to have a |
| <filename>~/.pgpass</> file in such cases. See <xref |
| linkend="libpq-pgpass"> for more information. |
| </para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Examples</title> |
| |
| <para> |
| To clean the database <literal>test</literal>: |
| <screen> |
| <prompt>$ </prompt><userinput>vacuumdb test</userinput> |
| </screen> |
| </para> |
| |
| <para> |
| To clean and analyze for the optimizer a database named |
| <literal>bigdb</literal>: |
| <screen> |
| <prompt>$ </prompt><userinput>vacuumdb --analyze bigdb</userinput> |
| </screen> |
| </para> |
| |
| <para> |
| To clean a single table |
| <literal>foo</literal> in a database named |
| <literal>xyzzy</literal>, and analyze a single column |
| <literal>bar</literal> of the table for the optimizer: |
| <screen> |
| <prompt>$ </prompt><userinput>vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy</userinput> |
| </screen> |
| </para> |
| |
| </refsect1> |
| |
| <refsect1> |
| <title>See Also</title> |
| |
| <simplelist type="inline"> |
| <member><xref linkend="sql-vacuum" endterm="sql-vacuum-title"></member> |
| </simplelist> |
| </refsect1> |
| |
| </refentry> |