返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

修复账本数据库
前提条件

系统中需要有审计管理员或者具有审计管理员权限的角色。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
214

数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时
段内有账本操作记录结果产生。
背景信息

当前的账本数据库机制为:全局区块表存储在CN 端,各个CN 数据独立。用户历史表
存储在DN 端,
历史表记录的数据为所在DN 防篡改表的数据变化。
当在异常情况或表
被损坏时,需要使用ledger_hist_repair(text, text)或ledger_gchain_repair(text, text)接口对
全局区块表或用户历史表进行修复,
修复后调用全局区块表或用户历史表校验接口结果
为true。

在触发数据重分布时,可能导致防篡改表和用户历史表数据不一致,此时需要使用
ledger_hist_repair(text, text)接口对指定DN 节点的用户历史表进行修复。
SELECT pg_catalog.ledger_hist_repair(schema_name text,table_name text);
修复后当前DN 节点调用历史表校验接口结果为true。

在CN 剔除、修复的场景下,可能导致全局区块表数据丢失或者与用户历史表不一致,
此时需要使用ledger_gchain_repair(text, text)接口,
对整个集群范围内的全局区块表进行
修复。
SELECT pg_catalog.ledger_gchain_repair(schema_name text,table_name text);
修复后调用全局区块表校验接口结果为true。
操作步骤
步骤1 使用EXECUTE DIRECT 对某个DN 节点,执行历史表修复操作。
postgres=# SELECT pg_catalog.ledger_hist_repair('ledgernsp', 'usertable');
查询结果如下:
ledger_hist_repair
--------------------
84e8bfc3b974e9cf
(1 row)
该结果表明当前节点用户历史表修复成功,修复造成的用户历史表hash 增量为
84e8bfc3b974e9cf。
步骤2 连接CN 登录数据库,执行全局区块表修复操作。
postgres=# SELECT pg_catalog.ledger_gchain_repair('ledgernsp', 'usertable');
查询结果如下:

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
215
ledger_gchain_repair
----------------------
a41714001181a294
(1 row)
该结果表明,全局区块表修复成功,且插入一条修复数据,其hash 值为
a41714001181a294。
----结束
8
接口参考

操作场景
审计策略用来控制审计日志记录的策略,
可以设置审计日志只记录某些指定的操作
或者某些固定用户的操作。本节将指导管理员创建、修改、删除审计策略。
操作方法
创建审计策略
创建审计策略的语法规则如下所示:

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
368
CREATE AUDIT POLICY [( =
[, = ])];
表4- 47 参数说明
参数名称


audit_policy_name
为审计策略的名称,不区分大小写,存储时小写保存,可包
括大小写字符、数字和下划线,不包含特殊符号,审计名称
的首字符必须是英文字符。
audit_policy_item
为审计策略项目,审计策略项目名称不区分大小写。
表4- 48 审计策略项目说明
项目名称
取值&含义
Enable
Y:启用,默认值
N:禁用
Hosts
“”:不限制,默认值

严格匹配host,支持空格“ ”分隔的host 列表,
host 可使用“%”
和“_”做通配符
User
“”:不限制,默认值
:严格匹配user,区分大小写
Db
“”:不限制,默认值
:严格匹配db
Obj_type
“”:不限制,默认值
TABLE(VIEW):Object 为表(视图)
PROCEDURE:Object 为存储过程
FUNCTION:Object 为函数
Object
“”:不限制,默认值
:匹配Obj_type 指定的object
Sql_comman
ds
“”:不限制,默认值
INSERT, DELETE, UPDATE, LOAD, CREATE_USER, CREATE_D
B, CREATE_TABLE, CREATE_VIEW, CREATE_INDEX, CREATE_
PROCEDURE, CREATE_FUNCTION, RENAME_USER, ALTER_D
B, ALTER_TABLE, ALTER_PROCEDURE, ALTER_FUNCTION, AL
TER_EVENT, DROP_USER, DROP_DB, DROP_TABLE, DROP_VI
EW, DROP_INDEX, DROP_PROCEDURE, DROP_FUNCTION, DR
OP_EVENT, TRUNCATE, GRANT, REVOKE, SELECT,OTHERS:
其中的一种或多种类型,多个类型间以逗号‘,’连接,且不添加空格
Long_query_
time
:最小查询秒数,可带6 位小数,精确到微秒,默认值0,取
值范围为0~31536000s
Status
“”:不限制,默认不限制。

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
369
SUCCESS:执行成功
FAILED:执行失败
修改审计策略
修改审计策略的语法规则如下所示:
ALTER AUDIT POLICY SET [(] =
[, = ][)];
表4- 49 参数说明
参数名称


audit_policy_name
为审计策略的名称,不区分大小写
audit_policy_item
为审计策略项目,取值内容与创建审计策略中描述相同。
删除审计策略
删除审计策略语法规则如下:
DROP AUDIT POLICY ;

运算符是可以在 SQL 表达式中出现的符号或关键字。大多数 SQL 运算符都被限制为
其操作数和返回值的数据类型。某些运算符只支持具有内置数据类型的操作数;其他一些
运算符可以支持内置和扩展数据类型作为操作数。
下表以优先级的降序(从最高到最低)排列显示了 GBase 8s 支持的运算符的优先
级。具有相同优先级的运算符列出在同一行中。
运算符优先级
在表达式中的示例
. (membership) [] (substring)
customer.phone[1, 3]
UNITS
x UNITS DAY
+ - (unary)
-y
:: (cast)
NULL::TEXT
*/
x/y
+- (binary)
x-y
|| (concatenation)
customer.fname || customer.lname
ANY ALL SOME
orders.ship_date > SOME (SELECT
paid_date FROM orders)
NOT
NOT y

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 137 -
运算符优先级
在表达式中的示例
<<==>>=!= <>
x>= y
IN BETWEEN ... AND LIKE MATCHES
customer.fname MATCHES y
AND
x AND y
OR
x OR y
请参阅 GBase 8s SQL 指南:语法 以获取这些 SQL 运算符的语法和语义。
























4 环境变量

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 138 -
各种环境变量都会影响 GBase 8s 产品的功能。可设置环境变量来识别终端、指定软
件的位置以及定义其他参数。
一些环境变量是必需的,其他则是可选的。必须设置必需的环境变量或接受它们的缺
省设置。
这些主题描述如何使用应用于一个或多个 GBase 8s 产品的环境变量并显示如何进行
设置。