Binlog日志常见问题
本章节介绍TaurusDB的Binlog日志常见问题。
TaurusDB服务如何查看Binlog日志?
- 参考连接实例,连接数据库实例。
- 执行命令,读取Binlog日志。
SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
如果提示账号权限不足,请执行GRANT命令为子账号授予REPLICATION SLAVE权限。
GRANT SELECT, REPLICATION SLAVE ON *.* TO 'xx'@'%'; FLUSH PRIVILEGES;
拉取Binlog对实例性能有什么影响?
单个拉取任务的影响较小,但几十到上百个任务同时进行时,资源消耗会显著增加。建议在业务低峰期执行此类操作。
拉取Binlog失败,如何处理?
- 首先检查是否已开启本地Binlog,详情请参见开启本地Binlog日志。
- 直连TaurusDB拉取:请确认所连接节点的类型,即连接的是TaurusDB主节点还是只读节点。
- 若为直连只读节点进行拉取,要求TaurusDB实例内核版本为2.0.54.240600及以上,且需要开启只读节点Binlog拉取,否则不支持拉取(报错关键字:Unknown command,Error code: 1047)。
- 若为直连主节点进行拉取,但是拉取失败,请提交工单,联系华为云客服处理。
- 通过代理(proxy)拉取:代理内核版本需要2.24.12.000及以上,且代理拉取binlog的开关已开启,该开关默认关闭,关闭状态下不支持拉取Binlog,产生报错信息(报错关键字:Unknown command,Error code: 1047)。如需开启请参见开启代理Binlog拉取。
如果您的代理内核版本满足且代理拉取binlog开关已开启,仍无法拉取,请提交工单,联系华为云客服处理。
在执行写操作时,为什么show master status显示的position值保持不变?
position表示主库Binlog文件中当前写入的字节位置,仅当内核版本大于等于2.0.45.230900时,show master status命令的返回结果会显示position值。
建议检查Binlog开关状态,Binlog开关由参数rds_global_sql_log_bin控制,默认关闭。若未开启,则position将不会发生变化。如果开关已开启,但position仍然不变,请提交工单。
如需修改参数值,请参考修改TaurusDB实例参数。
为什么有的Binlog文件大小会超过max_binlog_size?
max_binlog_size:当单个binlog文件大小达到该参数值时,数据库关闭当前binlog文件,生成一个新的binlog文件,将新产生的数据写入新binlog文件。
当写入binlog时,如果遇到大事务(如大规模的INSERT、UPDATE或DELETE操作),必须将该事务完整地写入同一个binlog文件中,会导致文件大小超过max_binlog_size的限制。