OCEANBASE CLOG 咨询

【 使用环境 】 测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.4.2
【问题描述】请问事务未提交,操作的数据执行了回滚,会写入CLOG吗?通过CLOG解析能否看到对数据的修改和回滚的记录?

测试过程:
创建表
create table t10000 (id int primary key ,name varchar(100));
Query OK, 0 rows affected (0.605 sec)

查询表的日志流
select ls_id,SVR_IP,role,tablet_id from sys.dba_ob_table_locations where
table_name = ‘T10000’;
±------±---------------±---------±----------+
| LS_ID | SVR_IP | ROLE | TABLET_ID |
±------±---------------±---------±----------+
| 1001 | 172.16.135.181 | FOLLOWER | 208216 |
| 1001 | 172.16.135.182 | FOLLOWER | 208216 |
| 1001 | 172.16.135.183 | LEADER | 208216 |
±------±---------------±---------±----------+

开启事务 begin
写入数据 insert into t10000 values (9999,‘aaaa’);
Query OK, 1 row affected (0.268 sec)
回滚 rollback;
查询数据 select * from t10000;
Empty set (0.093 sec)

解析 172.16.135.183 LEADER副本 LS_ID 1001的 CLOG
/data/admin/oceanbase/bin/ob_admin log_tool dump_log 24 > 24.log
通过解析日志 找到了tablet_id 为208216 的记录 只有CREATE_TABLET_NEW_MDS类型 没有DML类型

所以是不是回滚的事务不会记录CLOG?请老师解答一下

4 个赞

mark~~

@论坛小助手

数据变更的 redo 在执行期就写 clog 并复制;提交决策的 commit log 在 commit 期写 clog 并复制;客户端 commit 成功 = commit log 多数派 sync 完成

回滚的事务应该也会进clog吧

老师 按照这个说法 clog解出来应该有这一行操作记录才对
是不是这个解的命令是只会解析出来提交的事务?

你使用什么工具解析clog的。正常解析是会有这一行操作记录

回滚也会写入clog的ba

/data/admin/oceanbase/bin/ob_admin log_tool dump_log 24 > 24.log
老师 是这个工具

本地测试下

insert 之后,另开窗口 对租户发起 转储 ( alter system minor freeze),等几秒。
再 回滚,再 dump_log 看看如何?

看看看看