mysql主从复制中重点参数配置详解
log-bin :
搭建主从复制,必须开启二进制日志
server-id:
mysql在同一组主从结构中的唯一标识,各个服务器必须不同
server-uuid:
从mysql5.6开始有了该参数,在数据库启动过程中自动产生,每个机器都不一样, uuid存放在auto.cnf文件中
read only:
设置从库只读状态,避免在从库上写操作,但该指令对超级管理员是无效的,mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作。
binlog_format:
二进制日志的格式,这里必须是row模式
log_slave_updates:
将从主库获得的变更信息在重新写入从库的binlog日志中。
log_error_action:
该参数用来控制当不能写binlog文件时候,mysql将会怎么样,该参数是mysql5.7之后新增的。有abort_server 和 ignore_error, abor_server代表当mysql在写binlog时候遇到磁盘慢或文件系统不可用时退出;而ignore_error 则表示遇到binlog无法写入时候,mysql会在错误日志中记录错误,并且还会强制关闭binlog功能,这样会影响从库从主库上获取日志的功能,导致主从库数据不一致,mysql5.7之后默认使用abort_server
binlog-do-db:
使用该参数可选择性复制数据库(主库上设置),如binlog-do-db=ceshi,则意味着只同步ceshi库,其他库是不进行复制同步的。
gtid_mode:
决定gtid模式是否开启,如果使用gtid复制模式,则必须 gtid_mode=on
enforce-gtid-consistency:
使用gtid模式时候,要开启该参数,保证gtid的一致行enforce-gtid-consistency=on
gtid_next
该参数是session级别的变量,下一个gtid。默认值是automatic
gtid_purged:
丢弃的gtid
relay_log:
记录从主库的I/O dump thread过来binlog内容
replicate_do_table:
只复制指定的表,在从库上使用
replicate_ignore_table:
需要在复制中忽略的表,在从库上设置使用
replicate_ignore_db:
忽略复制的库,从库上设置使用
replicate_do_db:
只进行复制的库,从库上设置使用
replicate_wild_do_table:
使用通配符指定需要复制的表,如zs库下tt开头的表,则为
--replicate_wild_do_table=zz.tt%
replicate_wild_ignore_table:
使用通配符指定需要忽略的表
master_info_repository:
把master.info(主从状态,配置信息)记录下来,默认记录到file里面,建议使用表记录
master_info_repository=table
relay_log_recovery:
为了让从库是crash safe的必须要设置relay_log_recovery=1,该参数的的含义是:当从库发生崩溃或重启时,它会把那些为做完的中继日志删除,并向主库重新获取日志,再次产生中继日志的恢复,建议在从库上开启relay_log_recovery参数,默认是关闭的
relay_log_purge:
清除已经执行过的relay log,建议从库上开启
slave_net_timeout:
该参数是设置多少秒没从主库上获得binlog之后,从库认为是超时,从库 I/O thread会重新连接主库,该值从mysql5.7.7开始默认值是60s
slave_parallel_type:
该参数从msyql5.7.2引入的,有两个值,一个是database,另一个是logical_clock,在mysql5.7之后引入了基于组提交的并行复制,通过设置参数 slave_parallel_workers>0 并且slave_parallel_type='LOGICAL_CLOCK'实现
slave_parallel_workers:
设置多个进程来并发的执行relay log中主库提交的事务,最大值为1024