当前位置:Gxlcms >
数据库问题 >
(4.6)mysql备份还原——深入解析二进制日志(3)binlog二进制格式详解
(4.6)mysql备份还原——深入解析二进制日志(3)binlog二进制格式详解
时间:2021-07-01 10:21:17
帮助过:25人阅读
】准备工作
-- 修改binlog记录模式
set session binlog_format
=‘statement‘;
set global binlog_format
=‘statement‘;
select @@global.binlog_format,
@@binlog_format;
-- 修改隔离级别为重复度
set global tx_isolation
=‘repeatable-read‘;
-- 旧的设置方法
set global transaction_isolation
=‘repeatable-read‘;
-- 新的设置方法
set session transaction_isolation
=‘repeatable-read‘;
select @@global.transaction_isolation,
@@transaction_isolation;
-- 刷新binlog日志
show master status;
flush logs;
show master status;
【1.2】 测试
-- 建表
create table test2(id
int primary key not null auto_increment,
tablename
varchar(
200),UUID
varchar(
50),
timepoint
datetime not null default current_timestamp,
currentversion
timestamp not null default current_timestamp on update current_timestamp
)engine=innodb ;
-- 插入数据
insert into test2(tablename,UUID)
select ‘test2‘,uuid();
-- 更新数据
update test2 set tablename=‘test2_update‘ where id = 1;
-- 提交
commit;
-- 查看状态
show master status; -- 会发现position有了变化,之前是154,现在是2125
-- 退出mysql,进入binlog目录,使用mysqlbinlog 查看binlog信息
mysqlbinlog --start-position=154 --stop-position=2125 binlog.000002
【1.3】总结(对主从的影响)
(1)这种方式下,使用RC、RUC隔离级别会报错。
(2)DDL以及DML都是明文按SQL记录存储。
(3)对有些参数,在不同的服务器和不同的时间,执行的结果不一样,会导致主从不一致。比如currment_date,timestamp。
特别是一些函数:uuid(),user(),时间函数now()
(4)性能问题:比如主库有一条慢SQL执行了,也会去从库执行
(5)数据异常:主从数据不一致,执行也会有问题
(4.6)mysql备份还原——深入解析二进制日志(3)binlog二进制格式详解
标签:name test art nts commit minimal 也会 star nim