原 GreenPlum中的gpcheckcat工具
Tags: 原创GreenPlum一致性检查gpcheckcat
简介
gpcheckcatgpcheckcat工具测试Greenplum数据库目录表的不一致性。
该工具在$GPHOME/bin/lib中。
概要
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | gpcheckcat [ options] [ dbname] Options: -g dir -p port -P password -U user_name -S {none | only} -O -R test_name -C catalog_name -B parallel_processes -v -A gpcheckcat -l gpcheckcat -? |
描述
gpcheckcat工具运行多种测试检查数据库目录的不一致。 某些测试不能与其他负载语句同时运行, 否则结果将不可用。运行gpcheckcat时,要以受限模式重新启动数据库,否则,gpcheckcat 可能会由于正在进行的数据库操作而报告不一致,这会与实际的不一致数量不同。如果用户在不停止数据库活动的情况下运行 gpcheckcat,请使用-O选项运行它。
Note: 每当用户运行该工具时,它都会检查并删除指定数据库中的孤立的临时数据库方案(没有会话ID的临时方案)。 该工具在命令行上显示孤立临时模式检查的结果,并在日志中记录该结果。
目录不一致是Greenplum数据库系统表之间发生的不一致。一般来说,有三种不一致:
- Segment级的系统表不一致。例如,包含表数据的系统表与包含列数据的系统表之间的不一致。另一个例子是一个 系统表在本该唯一的列中包含重复。
- Segment之间相同系统表之间的不一致。例如,一个系统表在一个Segment上缺少一行,但其他Segment具有这一行。 作为另一个例子,特定的行列数据的值在不同的Segment之间不同,例如表所有者或表访问特权。
- 持久化系统表对象状态和文件系统对象间的不一致。例如,一个文件在数据库目录中存在,但数据库系统表中 不存在相应的对象。
选项
-A
在Greenplum数据库安装的所有数据库上运行gpcheckcat。
-B parallel_processes
并行运行的进程数量。
gpcheckcat工具尝试确定要同时使用的进程数(批尺寸)。该工具假定它可以为 每个进程使用最小为20MB的缓冲区。并行进程的最大数量是Greenplum数据库Segment实例的数量。 当该工具开始检查目录时,它会显示所使用的并行进程的数量。
Note: 如果返回的错误数量超过缓冲区大小,则该工具可能会耗尽内存。如果发生内存不足错误,可以使用 -B选项降低批尺寸。例如,如果该工具显示批尺寸为936并且内存不足,则可以指定 -B 468并行运行468个进程。
-C catalog_table
对指定的目录表运行交叉一致性、外键和ACL测试。
-g data_directory
生成SQL脚本来修复目录不一致。脚本被放置在data_directory中。
-l
列出gpcheckcat测试。
-O
只运行可以在线(不受限)模式运行的gpcheckcat测试。
-p port
这一选项指定Greenplum数据库使用的端口。
-P password
连接到Greenplum数据库的用户的密码。
-R test_name
指定要运行的测试。某些测试只有当Greenplum数据库处于受限模式时才能运行。
这些是可以执行的测试:
acl - 对访问控制特权的交叉一致性检查
duplicate - 检查重复项
foreign_key - 检查外键