PostgreSQL自带的命令行工具20- vacuumdb

PostgreSQL自带的命令行工具19- vacuumdb

基础信息
OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
DB版本:16.2
pg软件目录:/home/pg16/soft
pg数据目录:/home/pg16/data
端口:5777

vacuumdb 是 PostgreSQL 中的一个命令行工具,用于清理数据库,释放未使用的空间,并优化数据库性能。这个工具对应 SQL 命令中的 VACUUM,用于回收已经删除或者更新了的行所占用的空间,并可能使这些空间可供将来的操作重新使用。此外,VACUUM 命令也有助于更新数据库表和索引上的统计信息,这对于查询优化器选择最佳执行计划是至关重要的。

通过help查看帮助文档。

[pg16@test ~]$ vacuumdb --help
vacuumdb cleans and analyzes a PostgreSQL database.

Usage:
  vacuumdb [OPTION]... [DBNAME]

Options:
  -a, --all                       vacuum all databases
      --buffer-usage-limit=SIZE   size of ring buffer used for vacuum
  -d, --dbname=DBNAME             database to vacuum
      --disable-page-skipping     disable all page-skipping behavior
  -e, --echo                      show the commands being sent to the server
  -f, --full                      do full vacuuming
  -F, --freeze                    freeze row transaction information
      --force-index-cleanup       always remove index entries that point to dead tuples
  -j, --jobs=NUM                  use this many concurrent connections to vacuum
      --min-mxid-age=MXID_AGE     minimum multixact ID age of tables to vacuum
      --min-xid-age=XID_AGE       minimum transaction ID age of tables to vacuum
      --no-index-cleanup          don't remove index entries that point to dead tuples
      --no-process-main           skip the main relation
      --no-process-toast          skip the TOAST table associated with the table to vacuum
      --no-truncate               don't truncate empty pages at the end of the table
  -n, --schema=SCHEMA             vacuum tables in the specified schema(s) only
  -N, --exclude-schema=SCHEMA     do not vacuum tables in the specified schema(s)
  -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available
  -q, --quiet                     don't write any messages
      --skip-locked               skip relations that cannot be immediately locked
  -t, --table='TABLE[(COLUMNS)]'  vacuum specific table(s) only
  -v, --verbose                   write a lot of output
  -V, --version                   output version information, then exit
  -z, --analyze                   update optimizer statistics
  -Z, --analyze-only              only update optimizer statistics; no vacuum
      --analyze-in-stages         only update optimizer statistics, in multiple
                                  stages for faster results; no vacuum
  -?, --help                      show this help, then exit

Connection options:
  -h, --host=HOSTNAME       database server host or socket directory
  -p, --port=PORT           database server port
  -U, --username=USERNAME   user name to connect as
  -w, --no-password         never prompt for password
  -W, --password            force password prompt
  --maintenance-db=DBNAME   alternate maintenance database

Read the description of the SQL command VACUUM for details.

Report bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>

如何使用 vacuumdb

vacuumdb 提供了很多选项,允许你对整个数据库、特定表、甚至是 PostgreSQL 实例中的所有数据库进行清理操作。

基本命令结构如下:

vacuumdb [选项]... [数据库名]

常用选项

  • -a--all:清理所有的数据库。
  • -d <数据库名>--dbname=<数据库名>:指定要清理的数据库。
  • -t <表名>--table=<表名>:指定要清理的表,可与 -d 一同使用。
  • -v--verbose:显示详细的操作信息。
  • -z--analyze:在清理完成后对数据库进行分析操作,更新统计信息。
  • -j <并发数>--jobs=<并发数>:用于并行执行清理作业,适用于 PostgreSQL 9.6 及以上版本。
  • -h <主机>--host=<主机>:指定 PostgreSQL 服务器的主机。
  • -p <端口>--port=<端口>:指定 PostgreSQL 服务器的端口。
  • -U <用户名>--username=<用户名>:指定用于连接数据库的用户名。
  • -w--no-password:在连接数据库时不提示输入密码。
  • --analyze-only:只执行分析操作,不做清理。
  • --full:执行一个全面的清理,这是一个阻塞操作,可能会对数据库性能有较大影响。

示例1

清理特定的数据库,如white

[pg16@test ~]$ vacuumdb -d white -v

示例2

清理并分析所有数据库

[pg16@test ~]$ vacuumdb -a -z -v

示例3

并行清理并分析所有数据库,如开4个并行

[pg16@test ~]$ vacuumdb -a -z -j 4 -v

示例4

只分析特定的数据库,如分析white

[pg16@test ~]$ vacuumdb --analyze-only -d white -v

注意事项

  • 在执行 VACUUM(或使用 vacuumdb 工具)时,它通常不会锁定表,因此对数据库的正常操作影响较小。但是,VACUUM FULL 会重写表来回收空间,这将锁定被清理的表。
  • 定期执行 VACUUM(特别是带有 --analyze 选项的)对于保持 PostgreSQL 数据库性能是很重要的。
  • 对于大型生产数据库,可能需要考虑使用并行选项 (-j) 来加速 VACUUM 过程,同时避免在高峰时段运行可能产生性能影响的操作。

在多数情况下,PostgreSQL 的自动清理进程(Autovacuum)会处理好大部分需要清理的情况,但在某些特定场景或者是在维护窗口期间,手动运行 vacuumdb 可以帮助确保数据库的健康和性能。

谨记:心存敬畏,行有所止。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: postgresql10.0_x64-haosq.zip是一个文件名,它表示的是一个带有哈斯克编译器的64位PostgreSQL 10.0版本的压缩包。 PostgreSQL是一个功能强大且可扩展的开源关系数据库管理系统。它支持多种操作系统,包括Windows、Linux和Mac OS等。在这个压缩包中,"x64"表示支持64位操作系统,"haosq"可能是压缩包的创建者或者对该版本进行了某种修改。 要安装该版本的PostgreSQL,首先需要解压缩这个压缩包。然后,可以按照官方提供的安装指南进行安装和配置。在安装完成后,可以通过命令行或者可视化界面工具来管理和使用PostgreSQL数据库PostgreSQL 10.0版本在性能、安全性和功能方面有很多改进和新增的特性。其中包括改进的并行查询处理、逻辑复制、数据分区、JSONB索引等等。这些功能可以提升数据库的性能和灵活性,使其更适合处理复杂的数据工作负载。 总之,postgresql10.0_x64-haosq.zip是一个64位的PostgreSQL 10.0版本的压缩包,你可以使用它来安装和配置这个强大的开源数据库管理系统。 ### 回答2: postgresql10.0_x64-haosq.zip是一个PostgreSQL数据库的安装文件。PostgreSQL是一个开源的关系型数据库管理系统,具有高度稳定性和可靠性,广泛应用于各种规模的应用程序和网站开发中。 这个压缩文件中的x64表示适用于64位操作系统的安装版本。haosq是一个识别码,可能是某个发行版本的标识或个人定制版本的命名。 安装PostgreSQL通常需要以下步骤:首先,解压缩haosq.zip文件到你希望安装的目录。然后,运行安装文件来启动安装向导,按照向导的指示完成安装过程。在安装过程中,你可以选择安装的组件和配置选项,例如选择安装PostgreSQL服务器、客户端和相关工具、选择安装位置等。安装完成后,你需要配置数据库的初始设置,例如设置用户名、密码、监听地址和端口等。 安装完成后,你可以使用PostgreSQL提供的命令行工具或者可视化管理工具来管理数据库。你可以创建数据库、创建表和索引、执行SQL查询、导入导出数据等。PostgreSQL还支持事务和并发控制,提供了各种高级功能和扩展。 总之,postgresql10.0_x64-haosq.zip是一个PostgreSQL数据库的安装文件,通过它可以方便地安装和使用PostgreSQL数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值