
【openGauss】账本机制与闪回特性
账本机制
对防篡改账本表进行数据增、删、改操作,系统会在历史表和全局表中记录行级
数据变化追溯信息,操作的追溯信息,并通过密码学算法生成校验信息。通过对
校验信息的保护、比对、验证,起到对重要数据的完整性保护,识别、阻止未授
权更改。
1. 核心价值:
易用:使用
SCHEMA
级别隔离,创建
SCHEMA
时指定账本属性,在该
SCHEMA
中创
建的用户表自动成为账本;
无感:账本表支持增、删、改、查,与普通表语法一致;
可追溯:对账本表的数据修改,均会以
hash
变迁的形式在历史表中记录数据的变迁
记录,以
SQL
的形式在全局表中记录数据操作;
融合:账本表可以和其他表关联进行事务或查询;
高并发:账本表中数据行与行之间无关联,可以支持并发更改。
账本表使用与普通表一样,支持全量的增、删、改、查操作,在用户看来,仅仅
是普通表多增加了一列 hash 列。用户可以显式的查询每行数据的 hash。
校验信息的记录(历史表和全局表):
账本表的数据增删改操作均会被记录到历史表和全局表。
记录到历史表的形式为只记录
hash
摘要,不记录数据;
记录到全局表的形式为记录操作的
SQL
语句和操作造成的摘要更改。
2. 账本表使用:
账本表的底层存储类型需要是 ASTORE,系统默认存储类型就是 ASTORE,如果为
了实现闪回将存储类型更改为了 USTORE,然后要完成账本的话需要将 USTORE
改回 ASTORE
# 退出数据库连接,在 linux shell 中执行以下命令进行更改
gs_guc set -N all -I all -c "enable_default_ustore_table=off";
# 更改完之后需要重启数据库才生效
gs_om -t restart
(1)创建防篡改特性的 Schema
创建于该 schema 中的表数据账本表,系统会自动根据表名创建历史表,以及指
定全局表,每个账本表都会有一个 hash 字段,记录系统生成的 hash 摘要,所以
文档被以下合辑收录
评论