• 金仓数据库KingbaseES客户端应用参考手册--17. vacuumdb


    目录

    17.1. 简介 ¶

    17.2. 命令行参数 ¶

    17.3. 参数说明 ¶

    17.4. 环境变量 ¶

    17.5. 错误信息诊断 ¶

    17.6. 示例 ¶

    17.7. 备注 ¶

    17.8. 参考 ¶


    17.1. 简介 

    vacuumdb — 对一个KingbaseES数据库进行垃圾收集和分析

    vacuumdb是用于清理一个KingbaseES数据库的工具。vacuumdb也将产生由KingbaseES查询优化器所使用的内部统计信息。

    vacuumdb是 SQL 命令 VACUUM 的一个包装器。在通过这个工具和其他方法访问服务器来清理和分析数据库之间没有实质性的区别。

    17.2. 命令行参数 

    vacuumdb connection-option ...] [ option ...] [ --table -t table [( column [,...] )] ] ... [ dbname ]

    vacuumdb connection-option ...] [ option ...] --all -a

    17.3. 参数说明 

    vacuumdb接受下列命令行参数:

    -a --all

    清理所有数据库。

    [-d] dbname [--dbname=]dbname

    指定要被清理或分析的数据库名。如果没有被指定并且没有使用 -a (或 --all ),数据库名将从环境变量 KINGBASE_DATABASE 中读出。如果环境变量也没有设置,指定给该连接的用户名将用作数据库名。

    --disable-page-skipping

    根据可见性映射的内容禁用跳过页面。

    注意

    此选项仅适用于在KingbaseES |V8R2| 及以后版本的服务器上运行。

    -e --echo

    回显vacuumdb生成并发送给服务器的命令。

    -f --full

    执行“完全”清理。

    -F --freeze

    强有力地“冻结”元组。

    -j njobs --jobs=njobs

    通过同时运行 ``njobs`` 个命令来并行执行清理或者分析命令。这个选项会减少处理的时间,但是它也会增加数据库服务器的负载。

    vacuumdb将开启 ``njobs`` 个到数据库的连接,因此请确认你的 max_connections设置足够高以容纳所有的连接。

    注意如果某些系统目录被并行处理,使用这种模式加上 -f ( FULL )选项可能会导致 死锁失败。

    --min-mxid-age mxid_age

    仅在具有至少 ``mxid_age`` 的多重ID年龄的表上执行真空或分析命令。此设置对要处理的表进行优先排序以防止多重ID。ID封装非常有用(请参阅 KingbaseES数据库维护指南 ).

    对于此选项,多重ID年龄的关系是主关系及其相关的TOAST表中的最大年龄(如果存在的话)。由于由vacuumdb发出的命令也将处理TOAST表以获得必要的关系,因此不需要单独考虑。

    注意

    此选项仅适用于在KingbaseES |V8R2| 及以后版本的服务器上运行。

    --min-xid-age xid_age

    仅在事务ID年龄至少为 ``xid_age`` 的表上执行清除或分析命令。此设置对于为要处理的表设置优先级以防止事务ID包装非常有用(请参阅 KingbaseES数据库维护指南 。)

    对于此选项,事务ID年龄的关系是主关系及其关联的最大年龄TOAST表(如果存在的话)。由于由vacuumdb发出的命令也将处理TOAST表以获得必要的关系,因此不需要单独考虑。

    注意

    此选项仅适用于在KingbaseES |V8R2| 及以后版本的服务器上运行。

    -q --quiet

    不显示进度消息。

    --skip-locked

    跳过不能立即锁定以进行处理的关系。

    注意

    此选项仅适用于在KingbaseES |V8R2| 及以后版本的服务器上运行。

    -t table [ ( column [,...]) ] --table=table [ ( column [,...]) ]

    只清理或分析 ``table`` 。列名只能和 --analyze 或 --analyze-only 选项一起被指定。通过写多个 -t 开关可以清理多个表。

    提示

    如果你指定列,你可能必须转义来自 shell 的括号(见下面的示例)。

    -v --verbose

    在处理期间打印详细信息。

    -V --version

    打印vacuumdb版本并退出。

    -z --analyze

    也计算优化器使用的统计信息。

    -Z --analyze-only

    只计算优化器使用的统计信息(不清理)。

    --analyze-in-stages

    与 --analyze-only 相似,只计算优化器使用的统计信息(不做清理)。使用不同的配置设置运行分析的几个(目前是 3个)阶段以更快地产生可用的统计信息。

    这个选项对分析一个刚从转储恢复或者通过 sys_upgrade 得到的数据库有用。这个选项将尝试尽可能快地创建一些统计信息来让该数据库可用,然后在后续的阶段中产生完整的统计信息。

    -? --help

    显示有关vacuumdb命令行参数的帮助并退出。

    vacuumdb也接受下列命令行参数用于连接参数:

    -h host --host=host

    指定运行服务器的机器的主机名。如果该值以一个斜线开始,它被用作 Unix 域套接字的目录。

    -p port --port=port

    指定服务器正在监听连接的 TCP 端口或本地 Unix 域套接字文件扩展。

    -U username --username=username

    要作为哪个用户连接。

    -w --no-password

    从不发出一个口令提示。如果服务器要求口令认证并且没有其他方式提供口令(例如一个 .kbpass 文件),那儿连接尝试将失败。这个选项对于批处理任务和脚本有用,因为在其中没有一个用户来输入口令。

    -W --password

    强制vacuumdb在连接到一个数据库之前提示要求一个口令。

    这个选项不是必不可少的,因为如果服务器要求口令认证,vacuumdb将自动提示要求一个口令。但是,vacuumdb将浪费一次连接尝试来发现服务器想要一个口令。在某些情况下值得用 -W 来避免额外的连接尝试。

    --maintenance-db=dbname

    指定要连接到来发现哪些其他数据库应该被清理的数据库名。如果没有指定,将使用 kingbase 数据库。而如果它也不存在,将使用 template1 

    17.4. 环境变量 

    KINGBASE_DATABASE KINGBASE_HOST KINGBASE_PORT KCIUSER

    默认连接参数

    SYS_COLOR

    指定是否在诊断消息中使用颜色。可能的值是 always auto never .

    和大部分其他KingbaseES工具相似,这个工具也使用libkci支持的环境变量。

    17.5. 错误信息诊断 

    在有困难时,可以在 VACUUM 和 ksql 中找潜在问题和错误消息的讨论。数据库服务器必须运行在目标主机上。同样,任何libkci前端库使用的默认连接设置和环境变量都将适用于此。

    17.6. 示例 

    要清理数据库 test 

    $ vacuumdb test
    

    要清理和为优化器分析一个名为 bigdb 的数据库:

    $ vacuumdb --analyze bigdb
    

    要清理在名为 xyzzy 的数据库中的一个表 foo ,并且为优化器分析该表的 bar 列:

    $ vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy
    

    17.7. 备注 

    vacuumdb可能需要多次连接到KingbaseES服务器,每次都询问一个口令。在这种情况下有一个 ~/.kbpass 文件会很方便。

    17.8. 参考 

    VACUUM

  • 相关阅读:
    一个可视化动画算法网站,值得收藏!
    ConcurrentModificationException日志关键字报警引发的思考
    openstack wallaby 对应 需要的python版本 3.8.18
    java计算机毕业设计西藏民族大学论文管理系统源码+数据库+系统+lw文档+mybatis+运行部署
    通用ORM的设计与实现
    26 docker前后端部署
    从指针开始变强(三)之超级详细运算题
    【机器学习&数据挖掘】基于自回归积分滑动平均模型的疫情分析报告 附完整python代码
    【Python 千题 —— 基础篇】输出 Hello World!
    驱动开发:内核测试模式过DSE签名
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126657746