vacuumdb
vacuumdb
垃圾收集并分析数据库。
概要
vacuumdb [connection-option...] [--full | -f] [--freeze | -F] [--verbose | -v] [--analyze | -z] [--analyze-only | -Z] [--table | -t table [( column [,...] )] ] [dbname] vacuumdb [connection-option...] [--all | -a] [--full | -f] [-F] [--verbose | -v] [--analyze | -z] [--analyze-only | -Z] vacuumdb -? | --help vacuumdb -V | --version
描述
vacuumdb是用于清理Greenplum数据库的工具。 vacuumdb还将生成Greenplum数据库查询优化器使用的内部统计信息。
vacuumdb是SQL命令VACUUM的包装。 通过此工具和通过其他访问服务器的方法来清理数据库之间没有明显的区别。
选项
- -a | --all
- 清理所有数据库。
- [-d] dbname | [--dbname=]dbname
- 要清理的数据库的名称。 如果未指定此选项,并且未使用-a(或--all),则从环境变量PGDATABASE读取数据库名称。 如果未设置,则使用为连接指定的用户名。
- -e | --echo
- 回显vacuumdb生成并发送到服务器的命令。
- -f | --full
- 选择完全清理,这可以回收更多空间,但是需要更长的时间并排他锁定表。
Warning: 在Greenplum数据库中不建议使用VACUUM FULL。
- -F | --freeze
- 冻结行事务信息。
- -q | --quiet
- 不显示响应。
- -t table [(column)] | --table=table [(column)]
- 仅清理或分析该表。 只能与--analyze或--analyze-all选项一起指定列名。 可以通过写入多个-t开关来清理多个表。 如果指定列,则可能必须从shell转义括号。
- -v | --verbose
- 在处理过程中打印详细信息。
- -z | --analyze
- 收集统计信息以供查询优化器使用。
- -Z | --analyze-only
- 仅计算统计信息以供查询优化器使用(不清理)。
- -V | --version
- 打印vacuumdb版本并退出。
- -? | --help
- 显示有关vacuumdb命令行参数的帮助,然后退出。
连接选项
- -h host | --host=host
- 运行Greenplum master数据库服务器的计算机的主机名。 如果未指定,则从环境变量PGHOST读取或默认为localhost。
- -p port | --port=port
- Greenplum master数据库服务器正在侦听连接的TCP端口。 如果未指定,则从环境变量PGPORT读取或默认为5432。
- -U username | --username=username
- 要用作连接的数据库角色名称。 如果未指定,则从环境变量PGUSER读取或默认为当前系统角色名称。
- -w | --no-password
- 不发出密码提示。 如果服务器要求密码验证,而其他方式(例如.pgpass文件)无法使用密码,则连接尝试将失败。 此选项在没有用户输入密码的批处理作业和脚本中很有用。
- -W | --password
- 强制输入密码提示。
- --maintenance-db=dbname
- 指定要连接以发现应清理哪些其他数据库的数据库名称。 如果未指定,将使用postgres数据库,如果不存在,将使用template1。
注解
vacuumdb可能需要连接几次master服务器,每次都要求输入密码。 在这种情况下,使用~/.pgpass文件很方便。
示例
清理数据库test:
vacuumdb test
清理分析数据库bigdb:
vacuumdb --analyze bigdb
要清理名为mydb的数据库中的单个表foo,并分析表的单个列bar。 请注意表名和列名两边的引号,从shell转义括号:
vacuumdb --analyze --verbose --table 'foo(bar)' mydb