clusterdb — 聚簇一个KingbaseES数据库。
clusterdb 是一个命令行工具,该命令行工具位于KingbaseES安装目录的bin目录下。用来对一个KingbaseES数据库中的表进行重新聚簇。它会寻找之前已经被聚簇过的表,并且再次在最后使用过的同一个索引上对这些表重新聚簇。没有被聚簇过的表将不会受影响。
clusterdb 是SQL CLUSTER命令的一个包装器。通过这个工具和其他方法访问服务器来聚簇数据库之间没有实质性的区别。
clusterdb [ connection-option ...] [ --verbose | -v ] [ --table | -t table ] ... [ dbname ]
clusterdb [ connection-option ...] [ --verbose | -v ] --all | -a
clusterdb接受下列命令行参数:
-a --all
聚簇所有数据库。
[-d] dbname [--dbname=]dbname
指定要被聚簇的数据库名称。如果这个参数没有被指定并且
-a(或--all)没有被使用,数据库名将从环境变量KINGBASE_DATABASE中读出。如果该环境变量也没有被设置,指定给该连接的用户名将被用作数据库名。
-e --echo
回显clusterdb生成并发送给服务器的命令。
-q --quiet
不显示进度消息。
-t table --table=table
只聚簇``table``。可以通过写多个
-t开关来聚簇多个表。
-v --verbose
在处理期间打印详细信息。
-V --version
打印clusterdb版本并退出。
-? --help
显示关于clusterdb命令行参数的帮助并退出。
-h host --host=host
指定运行服务器的机器的主机名。如果该值以一个斜线开始,它被用作 Unix 域套接字的目录。
-p port --port=port
指定服务器正在监听连接的 TCP 端口或本地 Unix 域套接字文件扩展。
-U username --username=username
要使用哪个用户来连接数据库。
-w --no-password
从不发出一个输入密码提示。如果服务器要求密码认证并且没有其他方式提供密码(例如一个
.kbpass文件),那么连接尝试将会失败。这个选项对于批处理任务和脚本有用,因为在其中没有一个用户来输入密码。
-W --password
强制clusterdb在连接到一个数据库之前提示要求输入一个密码。
这个选项不是必不可少的,因为如果服务器要求密码认证,clusterdb将自动提示要求输入一个密码。但是,clusterdb将浪费一次连接尝试来发现服务器想要一个密码。在某些情况下值得用
-W来避免额外的连接尝试。
--maintenance-db=dbname
指定要连接到用来发现那些其它数据库应该被集簇的数据库的名字。如果没有指定,将使用
kingbase数据库。而如果它也不存在,将使用template1。
clusterdb 在使用时,如果用户没有指定相关参数,clusterdb 会使用以下环境变量信息。命令行参数优先高于环境变量。
KINGBASE_DATABASE
指定连接的数据库名,默认和用户名相同。
KINGBASE_HOST
指定要连接的主机名,默认连接到localhost。
KINGBASE_PORT
指定要连接的服务器的端口号,默认为54321。需要根据数据库实际部署修订。
KCIUSER
指定要使用哪个用户连接数据库。默认与使用数据库的操作系统用户名相同。
SYS_COLOR
指定是否在诊断消息中使用颜色。可能的值是
always,auto,never. 和大部分其他KingbaseES工具相似,这个工具也使用libkci支持的环境变量。
在有错误发生时,可以在 CLUSTER 和 ksql 中找潜在问题和错误消息的提示信息。数据库服务器必须运行在目标主机上。同样,任何libkci前端库使用的默认连接设置和环境变量都将适用于此。
要聚簇数据库test:
$ clusterdb test
要聚簇在数据库xyzzy中的一个表foo:
$ clusterdb --table=foo xyzzy
无
CLUSTER