MySQL-主从复制-异步复制-主从切换

主从复制

作用:

  • 数据热备份
  • 实现读写分离,减轻主服务负载
  • 主服务器有问题时,主从切换,实现高可用
    主从复制流程图:
    在这里插入图片描述
    原理:
    master导出原始数据,slave根据原始数据进行全量备份,当master的dump线程主动通知slave二进制日志发生变化后,slave的io 线程将master的binary log拷贝到它的中继日志(relay log),然后slave的sql线程根据relay log中的事件并在从库执行,从而保持与主库的数据一致。

master-info:记录二进制日志的名字和Position位置号,以便io线程对binary log 进行拷贝,IO线程进行更新。
relay-log.info:记录了 relay log 文件的执行进度,sql线程对其更新。

异步复制

步骤:

  1. master服务器上开启MySQL二进制日志功能,新建一个授权用户by_sever,并授权。

mysql [(none)]> create user ‘by_server’@‘%’ identified by ‘san123’;
mysql [(none)]> grant all on . to ‘by_server’@‘%’ identified by ‘san123’;
mysql [(none)]> FLUSH PRIVILEGES;

  1. 备份原始数据

mysqldump --all-databases --master-data >/mysql_buckup/dbdump.db

  1. 在master和slave服务器上分别设置server_id别为1,2

vim /etc/my.cnf

  1. 将dbdump.db导入slave服务器

scp dbdump.db root@192.168.2.119:/root
mysql -uroot -p <dbdump.db

  1. slave服务器上进行配置

mysql> CHANGE MASTER TO
-> MASTER_HOST=‘192.168.2.113’,
-> MASTER_USER=‘by_server’,
-> MASTER_PASSWORD=‘san123’,
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE=‘mariadb-bin.000002’,
-> MASTER_LOG_POS=245;

  1. 启动slave

mysql [(none)]> show slave status\G;

  1. 验证配置是否成功

mysql [(none)]> show slave status\G;

  1. 在master上进行操作,验证是否备份成功
延迟备份

在slave服务器上操作

stop slave;
CHANGE MASTER TO MASTER_DELAY = N;(N为秒数)
start slave;

在线主从复制

作用:在不中断master服务器也的情况下实现主从复制。
与离线复制的不同点:

  • mysqldump拷贝原始数据后业务一直在进行,导致二进制文件和Position可能在变化导致slave服务器与master之间原始数据不一致
  • 解决办法:
    使用xtrabackup软件对slave服务器进行全量备份,xtrabackup会在slave服务器备份是时输出类似binary_file=文件,Position=的数据,告诉slaves服务器应该从哪开始备份。
主从切换

作用:主服务器出现问题时,从主服务器切换到从服务器,提高并发性能,实现高可用,那么什么时候主从切换,如何手工实现主从切换
脚本实现:

  1. 监控master和slave
  2. 根据优先级选举新的master
  3. 把其他slave切换到新的master
  4. 将APP数据写往新的master
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值