使用 gp_toolkit Schema 查看系统信息
Apache Cloudberry 提供了一个名为 gp_toolkit
的管理 Schema,你可以用它查询系统目录、日志文件和操作环境中的系统状态信息。gp_toolkit
Schema 包含多个视图,可以通过 SQL 命令访问这些视图。所有数据库用户都能访问 gp_toolkit
Schema,虽然某些对象可能需要超级用户权限。为了方便使用,你可以将 gp_toolkit
Schema 添加到你的 Schema 搜索路径中。例如:
=> ALTER ROLE myrole SET search_path TO myschema,gp_toolkit;
本文档描述了 gp_toolkit
中一些最有用的视图和用户定义函数(UDF)。你可能会发现 gp_toolkit
Schema 中还有其他对象(视图、函数和外部表),这些对象是为了支持本节中描述的视图而存在,本文件中未具体描述它们。
请勿更改 gp_toolkit
Schema 中的数据库对象,也不要在该 Schema 中创建新的数据库对象,否则可能会影响这些对象所返回信息的准确性。通过 gpbackup
和 gprestore
工具进行数据库备份和恢复时,对 gp_toolkit
Schema 所做的任何更改都会丢失。
gp_toolkit
Schema 中的视图可以分为以下几类:
检查需要例行维护的表 检查锁 检查 ao 表 查看 apache cloudberry 服务器日志文件 检查服务器配置文件 检查下线的 segment 检查资源组活动和状态 检查资源队列活动和状态 查询磁盘溢出空间使用情况 查看用户和角色 检查数据库对象大小和磁盘空间 检查缺失和孤立数据文件 移动孤立数据文件 检查不均匀的数据分布 维护分区
关于扩展
gp_toolkit
是在 Apache Cloudberry 中作为扩展实现的。因为此扩展在 template1
数据库中注册,所以你在创建的每个 Apache Cloudberry 数据库中都可以立即使用它。
升级扩展
安装或升级 Apache Cloudberry 时,gp_toolkit
扩展会自动安装。即使升级了 Apache Cloudberry,之前版本的扩展仍可在现有数据库中使用。要将扩展升级到最新版本,你需要在每个使用该扩展的数据库中执行以下命令:
ALTER EXTENSION gp_toolkit UPDATE TO '1.4';
检查需要例行维护的表
以下视图可以帮助识别需要进行例行维护的表(如 VACUUM
和/或 ANALYZE
)。
VACUUM
或 VACUUM FULL
命令用于回收被删除或过期行占用的磁盘空间。由于 Apache Cloudberry 使用的是 MVCC 事务并发模型,被删除或更新的数据行虽然对新事务不可见,但仍然占用磁盘空间。过期的行会增加表在磁盘上的体积,进而降低表的扫描速度。
ANALYZE
命令用于收集查询优化器所需的列级统计信息。Apache Cloudberry 使用基于成本的查询优化器,依赖于数据库统计信息。准确的统计信息有助于查询优化器更好地估计选择性和查询操作将检索的行数,从而选择最有效的查询计划。
gp_bloat_diag
该视图显示了存在膨胀问题的常规堆存储表(即实际磁盘页数超过表统计信息中预期的页数)。这些膨胀的表需要执行 VACUUM
或 VACUUM FULL
操作,以回收被删除或过期行占用的磁盘空间。所有用户都可以访问该视图,但非超级用户只能查看他们有权限访问的表。
有关返回更多表优化信息的诊断功能,请参见检查 AO 表视图。
该视图的列说明如下:
bdirelid
:表对象 ID。bdinspname
:Schema 名称。bdirelname
:表名称。bdirelpages
:磁盘上的实际页数。bdiexppages
:表数据预期的页数。bdidiag
:膨胀诊断信息。