返回首页

gbase数据、南大通用产品文档:GBase8s使用 SQL 管理 API 执行远程管理

更新日期:2024年09月11日

您可以使用 SQL 管理 API 来利用 SQL 语句执行远程管理任务。
SQL 管理 API 函数采用一个或多个自变量来定义任务。许多任务也可使用命令行实用程
序来完成。使用 SQL 管理 API 函数的优点是可从其他数据库服务器远程运行这些函
数。而运行命令行实用程序命令时,必须直接连接到数据库服务器。
使用 SQL 管理 API 可执行以下类型的管理任务:

控制数据压缩

更新配置参数

检查数据、分区和扩展数据块一致性,控制 B 型树扫描程序,以及强制执行检查


设置和管理 Enterprise Replication

设置和管理高可用性集群

控制日志记录和逻辑日志

控制共享内存和添加缓冲池

控制镜像过程

控制决策支持查询

更改服务器方式

添加、删除和配置存储空间

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 543 -

控制 SQL 语句高速缓存

控制和配置 SQL 跟踪

动态启动和停止侦听控制线程

执行其他任务,例如移动 sysadmin 数据库、终止会话或添加虚拟处理器
有关 SQL 管理 API 的更多信息,请参阅《 GBase 8s 管理员参考》。
SQL 管理 API 的 admin() 和 task() 函数
SQL 管理 API 中包含两个在 sysadmin 数据库中定义的函数:admin() 和 task()。
这两个函数执行相同任务,但是返回不同格式的结果。task() 函数返回描述命令结果的字
符串。admin() 函数返回整数。
缺省情况下,只有 gbasedbt 用户 可连接到 sysadmin 数据库。如果 root 用户或 DBSA
组的成员被授予连接到 sysadmin 数据库的特权,那么该 root 用户或 DBSA 组的成员还
可以运行 SQL 管理 API 的 task() 和 admin() 函数。
可以使用 EXECUTE FUNCTION 语句执行 admin() 和 task() 函数。 例如,等同
于 oncheck -ce 命令的以下 SQL 语句可指示数据库服务器检查扩展数据块:
EXECUTE FUNCTION admin("check extents");
可在调度程序任务操作中使用 SQL 管理 API 函数。例如,可以通过在任务操作中使用
以下语句来定义用于创建数据库空间的任务:
EXECUTE FUNCTION admin("create dbspace","dbspace2","/work/dbspace2","20
MB");
有关使用 admin() 和 task() 函数以及示例的信息,请参阅《GBase 8s 管理员参考》。
查看 SQL 管理 API 历史记录
可以查看 sysadmin 数据库中 command_history 表内前 30 天运行的所有 SQL 管理 API
函数的历史记录。
必须以 gbasedbt 用户或其他授权用户身份连接 sysadmin 数据库。
command_history 表显示了管理任务是通过 admin() 还是 task() 函数执行的,并显示了有
关运行命令的用户、运行命令的时间、命令以及数据库服务器完成运行命令时返回的消息
的信息。
要显示命令历史记录,请执行以下操作:
使用 SELECT 语句从 command_history 表返回数据。
以下示例显示过去 30 天的所有命令历史记录:
SELECT * FROM command_history;

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 544 -
下表显示了采样命令和采样 command_history 表中的相关联结果。有
关 command_history 表中所有信息的描述,请参阅《GBase 8s 管理员参考》。
表 1. command_history 表中某些信息的示例
命令
样本返回消息
设置 SQL 跟踪为打开 SQL 跟踪打开,并带有 1000 个大小为 2024 字节的缓冲区。
创建数据库空间
空间“space12”已添加。
检查点
检查点已完成。
添加日志
已将 3 个逻辑日志添加到数据库空间日志数据库。
控制 command_history 表的大小
可以缩短 command_history 表的保留期或从该表中除去行,从而防止该表变得过大。
必须以 gbasedbt 用户或其他授权用户身份连接 sysadmin 数据库。
缺省情况下,command_history 表中的行在 30 天之后会自动除去。保留期
由 ph_threshold 表中的 COMMAND HISTORY RETENTION 行进行控制。
要缩短保留期,请执行以下操作:
使用 UPDATE 语句修改 ph_threshold 表中 COMMAND HISTORY RETENTION 行的
值。
以下示例将保留期设置为 25 天:
UPDATE ph_threshold
SET value = "25"
WHERE name = "COMMAND HISTORY RETENTION";
可以使用 DELETE 或 TRUNCATE TABLE 之类的 SQL 命令手动从此表中除去数据。
也可在 ph_task 表中创建任务以从 command_history 表清除数据。
以下示例显示了监视 command_history 表中的数据量并当表太旧时清除数据的任务。
INSERT INTO ph_task
( tk_name, tk_type, tk_group, tk_description, tk_execute,
tk_start_time, tk_stop_time, tk_frequency )
VALUES
("mon_command_history",
"TASK",
"TABLES",
"Monitor how much data is kept in the command history table",
"delete from command_history where cmd_exec_time < (

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 545 -
select current - value::INTERVAL DAY to SECOND
from ph_threshold
where name = 'COMMAND HISTORY RETENTION' ) ",
DATETIME(02:00:00) HOUR TO SECOND,
NULL,
INTERVAL ( 1 ) DAY TO DAY);

功能说明
记录系统全局状态信息。
表结构说明
表5- 215 表结构信息说明:

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1469




VARIABLE_NAME
变量名称
VARIABLE_VALUE
变量值
SESSION_LEVEL
是否是session 级的状态
WRITEABLE
服务运行过程中是否可以变更

hh:mm:ss。