MySQL主从复制架构及原理
2017-01-04 09:41
597 查看
一、简介在实际生产中,数据的重要性不言而喻,因此考虑到数据的重要性比如单点故障导致后端数据库奔溃,或者后端数据库访问压力过大等,mysql数据库做主从非常有必要,减轻后端数据库压力,主服务器负责读写,从服务器只负责读,这样一来即保证了数据的可靠性,同时提高服务器的高可用。
MySQL主从复制架构如图:
MySQL主从复制原理:master服务器将数据的改变记录二进制日志,当master上的数据发生改变时,则将其改变写入二进制日志中,salve服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/OThread请求master二进制事件,同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至从节点本地的中继日志中,从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致,最后I/OThread和SQLThread将进入睡眠状态,等待下一次被唤醒。
二、主从复制配置实现 要求: 1、双方mysql版本需一致,如不一致,只要主节点低于从节点 2、两节点间时间需同步 配置: 主服务器配置如下: 1、修改/etc/my.cnf配置文件 log-bin=/mydata/data/binlogs/master-bin 2、创建此目录并修改属组属主为mysql mkdir /mydata/binlogs/ chown -R mysql.mysql /mydata/binlogs/ 3、授权用户 grant replication slave,replication client on *.* to 'repluser'@'10.1.10.%' identified by 'pass'; flush privileges; 从服务器配置如下: 1、修改/etc/my.cnf配置文件,注释二进制日志,开启中继日志,修改server-id和主节点不一致 server-id=11 relay-log=/mydata/relaylogs/relay-bin 2、创建其目录并授予此目录的属主、属组为mysql mkdir /mydata/relaylogs/ chown -R mysql.mysql /mydata/relaylogs/ 3、连接主服务器 change master to master_host='10.1.10.1',master_user='repluser',master_password='pass'; 完成上诉配置过程即可各自启动mysql服务器,且在从服务器上启动I/O,SQL线程,例如:start slave 测试两数据可数据是否能同步,则可在主库上插入数据在从库上查看是否存在,注意:从库只能读,而不能写
三、实战:主从不同步时,如何进行数据同步至一致描述:当主服务器已经运行一段时间,并且存在不小的数据时,则需把主服务器备份,然后在从服务器恢复,从备份时所在的位置开始复制。
1、将主服务器上的数据做完全备份
2、在从服务器上导入主服务上的完全备份,在导入时关闭I/O和SQL线程
总结:此实战中最为关键主要有两步①主服务器上锁表做完全备份,并滚动日志,②从服务器上进行半道恢复.
文章来源:马哥教育官方微信:马哥linux运维
MySQL主从复制架构如图:
MySQL主从复制原理:master服务器将数据的改变记录二进制日志,当master上的数据发生改变时,则将其改变写入二进制日志中,salve服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/OThread请求master二进制事件,同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至从节点本地的中继日志中,从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致,最后I/OThread和SQLThread将进入睡眠状态,等待下一次被唤醒。
二、主从复制配置实现 要求: 1、双方mysql版本需一致,如不一致,只要主节点低于从节点 2、两节点间时间需同步 配置: 主服务器配置如下: 1、修改/etc/my.cnf配置文件 log-bin=/mydata/data/binlogs/master-bin 2、创建此目录并修改属组属主为mysql mkdir /mydata/binlogs/ chown -R mysql.mysql /mydata/binlogs/ 3、授权用户 grant replication slave,replication client on *.* to 'repluser'@'10.1.10.%' identified by 'pass'; flush privileges; 从服务器配置如下: 1、修改/etc/my.cnf配置文件,注释二进制日志,开启中继日志,修改server-id和主节点不一致 server-id=11 relay-log=/mydata/relaylogs/relay-bin 2、创建其目录并授予此目录的属主、属组为mysql mkdir /mydata/relaylogs/ chown -R mysql.mysql /mydata/relaylogs/ 3、连接主服务器 change master to master_host='10.1.10.1',master_user='repluser',master_password='pass'; 完成上诉配置过程即可各自启动mysql服务器,且在从服务器上启动I/O,SQL线程,例如:start slave 测试两数据可数据是否能同步,则可在主库上插入数据在从库上查看是否存在,注意:从库只能读,而不能写
三、实战:主从不同步时,如何进行数据同步至一致描述:当主服务器已经运行一段时间,并且存在不小的数据时,则需把主服务器备份,然后在从服务器恢复,从备份时所在的位置开始复制。
1、将主服务器上的数据做完全备份
2、在从服务器上导入主服务上的完全备份,在导入时关闭I/O和SQL线程
总结:此实战中最为关键主要有两步①主服务器上锁表做完全备份,并滚动日志,②从服务器上进行半道恢复.
文章来源:马哥教育官方微信:马哥linux运维
相关文章推荐
- MySQL主从复制原理以及架构
- MariaDB/Mysql之主从架构的复制原理及主从/双主配置详解(二)
- MariaDB/Mysql之主从架构的复制原理及主从/双主配置详解(一)
- MYSQL主从复制原理以及架构
- MySQL高性能主从架构的复制原理及配置详解
- MySQL主从复制原理以及架构
- MySQL主从复制架构及原理 推荐
- MySQL主从复制原理以及架构
- Mysql之主从架构的复制原理及主从/双主配置详解(二)
- MySQL主从复制原理以及架构
- MariaDB/Mysql之主从架构的复制原理及主从/双主配置详解(一)
- Mysql之主从架构的复制原理及主从/双主配置详解(一)
- Mysql原理、主从复制、半同步复制及基于SSL复制
- mysql主从、主主复制架构
- Mysql主从同步架构图和原理
- MySQL主从复制的原理及实现过程(mysql-5.5的同步、半步复制过程) 推荐
- mysql 主从、主主复制原理详解
- web架构 之 MySQL负载均衡 主从复制 读写分离
- Mysql原理及主从架构
- mysql-proxy主从服务架构下读写分离和负载均衡实现及原理