MySQL复制
MySQL二进制日志
二进制日志记录了所有对MySQL数据库的修改事件,包括了CURD事件和对表结构的修改事件
# 查看二进制日志是否启动
show variables like 'log_bin'
若未开启需要修改my.cnf配置文件
log_bin = /var/log/mysql/mariadb-bin
如何开启二进制日志
二进制日志的格式
-
基于段的格式 binlog_format = STATEMENT
优点:- 日志记录量相对较小,节约磁盘及网络IO
缺点: - 可能造成MySQL复制的主备服务器数据不一致
- 日志记录量相对较小,节约磁盘及网络IO
-
基于行的格式 binlog_format = ROW
同一SQL语句修改了10000条数据的情况下
基于段的日志格式只会记录这个SQL语句
基于行的日志会由10000条记录分别记录每一行的数据修改
优点:- 使MySQL主从复制更加安全
- 对每一行数据的修改比基于段的复制高效
缺点: - 记录日志量较大–binlog_row_image=[FULL][MINIMA