跳转至

vacuumdb

vacuumdb

垃圾收集并分析数据库。

语法

``` bash 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是用于清理SeaboxMPP数据库的工具。

vacuumdb还将生成SeaboxMPP数据库查询优化器使用的内部统计信息。

vacuumdb是SQL命令VACUUM的封装。 通过此工具和通过其他访问服务器的方法来清理数据库之间没有明显的区别。

选项

该命令选项说明见下

-a | –all
清理所有数据库。
[-d] dbname | [--dbname=]``dbname
要清理的数据库的名称。 如果未指定此选项,并且未使用-a(或--all),则从环境变量SDDATABASE读取数据库名称。如果未设置,则使用为连接指定的用户名。
-e | –echo
回显vacuumdb生成并发送到服务器的命令。
-f | –full

选择完全清理,这可以回收更多空间,但是需要更长的时间并排他锁定表。

  • 警告: 在SeaboxMPP数据库中不建议使用VACUUM FULL。 -j | –jobs : 使用这个参数来指定需要多少个并发的连接
–min-mxid-age=MXID_AGE |
设置 multixact ID 的最小值
–min-xid-age=XID_AGE |
设置 transaction ID 的最小值
-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命令行参数的帮助,然后退出。

以下选项均为连接选项,即连接SeaboxMPP数据库的相关信息:

-h host | --host=host
运行SeaboxMPP coordinator数据库服务器的计算机的主机名。如果未指定,则从环境变量SDHOST读取或默认为localhost。
-p port | --port=port
SeaboxMPP coordinator数据库服务器正在侦听连接的TCP端口。 如果未指定,则从环境变量SDPORT读取或默认为3000。
-U username | –username=username
要用作连接的数据库角色名称。 如果未指定,则从环境变量SDUSER读取或默认为当前系统角色名称。
-w | --no-password
不发出密码提示。 如果服务器要求密码验证,而其他方式(例如.sdpass文件)无法使用密码,则连接尝试将失败。此选项在没有用户输入密码的批处理作业和脚本中很有用。
-W | --password
强制输入密码提示。
--maintenance-db=dbname
指定要连接以发现还应群集哪些其他数据库的数据库的名称。如果未指定,将使用seaboxsql数据库,如果不存在,将使用template1
注解
vacuumdb可能需要连接几次master服务器,每次都要求输入密码。 在这种情况下,使用~/.sdpass文件很方便。
示例

清理数据库test

vacuumdb test

清理分析数据库bigdb

vacuumdb --analyze bigdb

要清理名为mydb的数据库中的单个表foo,并分析表的单个列bar。 请注意表名和列名两边的引号,从shell转义括号:

vacuumdb --analyze --verbose --table 'foo(bar)' mydb
相关命令
VACUUM, ANALYZE