mysql复制原理,及主要参数讲解

主从复制原理

首先介绍主从复制过程中工作的thread.主服务器有一个工作线程i/o dump thread,从服务器有两个工作线程,一个是i/o thread,另一个是SQL thread。
主库把外界接受的SQL请求记录到自己的binlog日志中,从库的i/othread去请求主库的binlog日志,并将得到的binlog日志写到自己的relay log文件中,然后在从库上重做应用中继日志中的SQL语句。主库通过I/O dump thread 给从库i/o thread传送binlog日志。

复制中的重点参数详解

log-bin:搭建主从复制,必须开启二进制日志。
server-id:mysql在同一主从结构中的唯一标识,不同实例要保持不一致。
server-uuid:5.6开始有该参数,数据库启动过程中自动生成,每台设备的server-uuid是不一样的,uuid保存在auto.cnf文件下。
read-only:设置从库为只读状态,避免在从库上进行写操作(对super账号无限制),5.7新出的super_read_only参数,对super用户进行读写限制。
binlog_format:二进制日志的格式,必须使用row模式。
log_slave_updates:作用是将从master服务器上获取数据变更信息记录到从服务器的二进制日志中。
binlog_error_action:该参数用来控制当不能写binlog时,mysql server会怎样,是5.7新增参数,有两个值:
abort_server:表示mysql server在遇到磁盘满或者文件系统不可写入时退出。(默认配置)
ignore_error:表示如果遇到binlog无法写入的情况,mysql会在错误日志中记录错误,并且还会强制关闭binlog功能。
binlog-do-db:选择性复制数据库,在主库使用,binlo-do-db=db1,意味着出来db1其他库都不复制。
binlog-ignore-db:该参数就是忽略某个库的复制,如binlog-ignore_db=db1,除了db1,其他库都复制。
gtid_mode;决定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 thrad从主库读取而来的binlog内容。
replicate_do_table:只复制指定的表,从库设置。
replicate_ignore_table:不复制指定的表,从库设置。
replicate_db_db:只复制指定的库,从库设置。
replicate_ignore_db:不复制指定的库,从库设置。
replicate-wild-do-table:使用通配符复制指定的表,如replicate-wild-do-table=db1.t%.
replicate-wild-ignore-table:使用通配符不复制的表。
master_info_repository:把master.info(主从配置信息),记录下来默认记录到file里,建议使用表记录.
master_info_repository=TABLE,记录到了表slave_master_info。
relay_log_info_repository:应用二进制日志中的内容,将binlog应用到的位置记录到relay.info,
relay_log_info_repository=TABLE默认记录到file,记录到了表slave_relay_log_info里面。
relay_log_recovery:为了让从库是crash safe的,必须要设置relay_log_recovery=1.该参数的含义是:当从库发生崩溃或者重启时,它会把那些未执行完成的中继日志删除,并会向主库重新获取binlog,再次生产relay log来完成中继日志的恢复,建议从库上开启。
relay_log_purge:清楚已经执行过的relay log。建议在从库开启该参数。
slave_net_timeout:该参数是设置在多少秒没有收到主库传来的binlog之后,从库认为是网络超时,从库的I/O thread会从新连接主库,5.7.7默认是60秒。
slave_parallel_type:该参数是从5.7.2引入的,有两个值,
database:基于不同库的并行复制
logical_clock:基于组提交的并行复制,并且需要slave_parallel_workers>0;
slave_parallel_workers:设置多个线程并发执行relay log 中主库提交的事物,最大值1024,目前ZX大厂生产配置32.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值