MySQL复制(异步方式、半同步方式、GTID)总结

本文详细介绍了MySQL的复制机制,包括传统的异步复制方式,确保数据一致性的半同步复制,以及基于全局事务标识符(GTID)的无冲突复制策略。通过理解这些复制模式,可以更好地优化数据库集群的性能和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是之前做的笔记,整体有些凌乱,后续有时间再整理一下格式!!!!

异步复制:在主节点写入日志即返回成功,默认情况下MySQL5.5/5.6/5.7和mariaDB10.0/10.1的复制功能是异步的。异步复制可以实现最佳的性能,主库把binlog日志发送给从库,这一动作就结束了,并不验证从库,会造成主从库数据不一致。
半同步复制:一主多从模式下,有一个从节点返回成功,即成功,不必等待多个节点全部返回。
MySQL半同步,MySQL5.5由Google贡献的补丁才开始支持半同步复制(semi Replication)模式,该模式可以确保从服务器接收完主服务器发送的binlog日志文件并写入自己的中继日志(relay log)里,然后会给主服务器一个反馈,告诉对方已经接收到完毕,这时主库线程才返回当前session告知操作完成,当出现超时情况时,源主服务器会暂时切换到异步复制模式,直到至少有一台设置为半同步复制模式的从服务器及时收到信息为止。
※主从同步可以同步多个数据库,也可以设置为一个数据库同步,如果设置一个数据库,在从服务器上其他数据可以写操作。
※半同步复制模式在主服务器和从服务器同时启用,否则主服务器默认使用异步复制模式。
MySQL异步复制的配置:
① master服务器
1、启用二进制日志
log-bin=master-bin.log
2、选择一个唯一的server-id
server-id=(0-2^31-1) 我要求配置的iP+port
3、创建一个具有复制权限的用户
CREATE USER 'slave_user'@'slave_host' IDENTIFIED BY 'slave_pass';
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'slave_host'
显示从服务器同步的状态:SHOW MASTER STATUS;
※连接至主服务器上通过SHOW MASTER STATUS 语句确定其当前的复制坐标。
执行这个命令显示File和Position的值,因为还需要用它们,以便能够把主服务器读取二进制位置时间的起始位置告知从服务器
② slave服务器
1、启用中继日志
relay-log=
2、选择一个唯一的server-id
server-id=(0-2^31-1)(必须唯一,避免冲突,我要求配置的iP+port
3、连接至主服务器,进行复制
CHANGE MASTER TO
MASTER_HOST='',
MASTER_PORT='',--※主服务器没有使用默认端口需要端口命令指定
MASTER_USER='',
MASTER_PASSWORD='',
MASTER_LOG_FILE='',
MASTER_LOG_POS='';
4、从服务器开始复制,然后查看从服务运行状态
START SLAVE;show slave status\G;
========================================================================
半同步复制方式:(MySQL5.5版本时谷歌提供的补丁)
半同步复制的安装配置半同步复制插件在(通用二进制方式安装)/usr/local/mysql/lib/plugin
1、在master和slave库首次启动时,安装插件,并开启半同步复制:mysql>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值