神通数据库BINLOG日志开启及使用说明

1.神通数据库BINLOG日志接口

1.1 开启BINLOG日志

  1. 开启binlog功能,打开参数配置工具,修改数据库参数enable_binlog=true,重启数据库。
  2. 检查SHOW_BINLOG_EVENTS函数包含REDO_SQL、USER_NAME列,如果不包含,请先升级神通数据库后台,SHOW_BINLOG_EVENTS函数详细说明参见神通数据库帮助文档。

1.2 BINLOG日志接口

1.2.1 描述

神通数据库提供binlog读取接口,v_sys_binary_logs视图可以查看binlog文件和大小,show_binlog_events函数根据参数(文件、偏移量等)可以读取binlog文件的event;通过监视v_sys_binary_logs视图感知数据变化,再根据show_binlog_events函数可以获悉实时增加语句。文件和偏移量可作为日志增量的位置位点标记。

1.2.2 接口

  1. 查询所有的binlog日志

select * from v_sys_binary_logs;

  1. 事件查询(EVENT事件可以理解为每个ddl或者dml)

查询的结果已经按照事务排序。

SELECT * FROM SHOW_BINLOG_EVENTS(varchar_expression, int_expression, int_expression, int_expression);

参数:

varchar_expression

要查看BINLOG文件的绝对路径,路径可以从V_SYS_BINARY_LOGS视图中获取。

int_expression

要查看文件的起始位置,如果设置为0,将从文件头开始读取。如果用户设定该参数,该参数必须是某个EVENT的偏移位置,不可以随意设定,会导致读取出错。

int_expression

从起始位置的Event偏移来读取BINLOG日志,跳过指定偏移的Event开始读取BINLOG日志。

int_expression

读取多少个EVENT,默认是0,会读取所有的EVENT。

  1. 查询结果字段

返回与text表达式相同的类型。

  • LOGFILE_NAME  binlog文件
  • EVENT_TYPE 事件类型

QUERY_EVENT:

 "QUERY"; //事务开始(看event_info=begin)或者是执行的sql

  

 XID_EVENT:

 "XID"; //事务结束

 WRITE_ROWS_EVENT:

 "INSERT_ROW";

 DELETE_ROWS_EVENT:

 "DELETE_ROW";

 UPDATE_ROWS_EVENT:

 "UPDATE_ROW";

 LOBHEAD_EVENT:

 "LOB_HEAD";

 LOBBODY_EVENT:

 "LOB_BODY";

 FUNCTION_EVENT:

 "FUNCTION_EVENT"

  • USER_NAME 执行语句的用户
  • END_LOG_POS 偏移量,可以根据此值标记,获取增量日志、
  • CSF  如果语句过长,超过65535,会分多行显示。0表示语句完整,1表示语句未完,与直到该值为0的语句,拼接成完整的语句。
  • REDO_SQL 当前执行的sql
  • EVENT_INFO 事件信息

可以查询到执行的具体语句情况

grant、drop、create可以

insert、delete、update,显示insert/delete/update row

2. 读写分离集群BINLOG日志接口

2.1 开启BINLOG日志

同1.1

2.2 日志接口

2.2.1 描述

binlog读取接口与神通单库有区别,使用lsn号作为日志增量的位置位点标记,lsn号是全局唯一并且递增的。show_binlog_events函数根据参数(lsn号)读取binlog文件的event, show_binlog_events函数可以获悉实时增加语句。

2.2.2 接口

1. 查询日志的最新标记

select END_LOG_POS from SHOW_BINLOG_EVENTS('A',0,0,0) order by END_LOG_POS desc limit 1  --END_LOG_POS是最近的LSN号

或者第一次:

select START_LSN from V_SYS_HA_SLAVE_INFO where STATUS='master' --START_LSN是最近的LSN号

2. 查询事件(EVENT)

SELECT * FROM SHOW_BINLOG_EVENTS(varchar_expression, int_expression, int_expression, int_expression);

参数:

varchar_expression

不再使用,可以传任意字符串,比如’A’。

int_expression

起始LSN号,从此位置开始查找日志数据。LSN号是全局唯一递增的。

int_expression

从起始位置的Event偏移来读取BINLOG日志,跳过指定偏移的Event开始读取BINLOG日志。

int_expression

读取多少个EVENT,默认是0,会读取所有的EVENT。

举例:

SELECT * FROM SHOW_BINLOG_EVENTS(‘A’, 1190, 0,10);

从lsn=1190号开始查找到10个event。

3.查询结果字段

LOGFILE_NAME  保留字段,无意义

其他字段同1.2.2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王百万_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值