Mysql Repliaction技术入门
《Mysql Repliaction技术入门》要点: 什么是MySQL Replication?1、Replication可以实现将数据从一台数据库服务器(master)复制到一台到多台数据库服务器上(slave); 2、默认情况下,属于异步复制,所以无需维持长连接. MySQL Replication的原理:简单来说,master将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据重演操作,实现数据异步同步. MySQL Replication的用途: 1、Fail Over 故障切换; 2、Backup 在线热备份(机械故障); 3、High Performance 高性能. MySQL Replication的架构: master ---> slave (双机热备). 默认情况下,master接受读写哀求,slave只接受读哀求以减轻master的压力. 复制过程如下: 1、slave端的IO线程连上master端,执行哀求; 2、master端返回给slave端,bin log文件名和位置信息; 3、IO线程把master端的bin log内容依次写到slave端relay bin log里,并把master端的bin-log文件名和位置记录到master.info里; 4、salve端的sql线程,检测到relay bin log中内容更新,就会解析relay log里更新的内容,并执行这些操作. 复制流程
优点: 进一步分担读压力; 缺点: slave1 出现故障,后面的所有级联slave服务器都会同步失败.
优点:办理上面的slave1的单点故障,同时也分担读压力; 缺点:间接增加master的压力(传输二进制日志压力).
优点: 从命名来看,两台master好像都能接受读、写哀求,但实际上,往往运作的过程中,同一时刻只有其中一台master会接受写哀求,另外一台接受读哀求. 实例:M—S架构:实现双机热备(AB复制)
1、可以降低master读压力; 2、可以对数据库做“热备”,热备只能办理硬件master硬件故障,软件故障等重大故障问题,但无法办理人为误操作导致的逻辑故障(例如输入错误的SQL语句把重要的记录删除了),所以常规的备份是必须.
1、关闭防火墙和selinux; 2、hosts文件中两台服务器主机名和ip地址一一对应起来; 3、系统时间必要同步; 4、master和slave的数据库版本坚持一致(系统版本坚持一致); 5、master:10.1.1.1 slave:10.1.1.2; 6、此处说明,我本机master端是通过源码包安装的mysql5.6.25版本,安装目录和数据目录都是自定义的,basedir=/mysql25,datadir=/data/mysql25.slave是直接从我本机master同步过去再初始化的,所以我当前环境是两台机上面版本一致的,数据库里面库和表也是一致的.
1、master必需开启二进制日志; 2、slave必需开启中继日志; 3、master和slave的server-id必需不一致 2^23-1; 4、master和slave的初始数据一致.
1、修改配置文件(master和slave); master:
slave:
2、初始化数据,使两边数据一致(以master为主); 此处省略,因为上面环境介绍那里已经说明了我的数据是一致的. 3、master端创建授权用户;
4、查看master的正在写的二进制文件名和位置;
5、slave端设定复制信息;
6、启动复制线程,开始同步;
7、测试验证; master写——>slave可以看到 slave写——>master看不到 在上述架构下实现故障迁移和恢复
1、模拟master出现故障; 2、查看slave同步状态并停止向master同步数据:
3、master故障之后,前端的应用应该把读写哀求都调度给slave: r/w X | master slave 直接用客户端登录slave,对数据进行修改,模拟写操作:
故障修复: 可以肯定的是,在这个架构下,master要上线,肯定只有一个选择,便是作为原有slave的从,重新上线; 主 从 slave ---> master 情况: 假设数据已经损害了、丢失了,那么最简单的办法就是重装master数据库,把master作为slave的从,原来的slave就变成新架构的master.
确保新的架构复制成功之后,回到slave服务器,把数据目录下的master.info文件删除,不然的话,下次如果slave重启数据库服务,会自动连接master:slave IO线程把master端的bin log内容依次写到slave端relay bin log里,并把master端的bin-log文件名和位置记录到master.info里. 《Mysql Repliaction技术入门》是否对您有启发,欢迎查看更多与《Mysql Repliaction技术入门》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |