关系型数据库利用主从复制实现读写分离
2017-04-07 18:13
274 查看
目前,大部分的主流关系型数据库都提供了主从热备功能,通过配置两台(或多台)数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站可以利用数据库的这一功能,实现数据库的读写分离,从而改善数据库的负载压力。
流程结构图:
三个步骤:1、 Master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
2、Slave将Master的二进制日志事件(binary log events)拷贝到它的中继日志(relay log);PS:从图中可以看出,Slave服务器中有一个I/O线程(I/O Thread)在不停地监听Master的二进制日志(Binary Log)是否有更新:如果没有它会睡眠等待Master产生新的日志事件;如果有新的日志事件(Log Events),则会将其拷贝至Slave服务器中的中继日志(Relay Log)。
3、Slave重做中继日志(Relay Log)中的事件,将Master上的改变反映到它自己的数据库中。PS:从图中可以看出,Slave服务器中有一个SQL线程(SQL Thread)从中继日志读取事件,并重做其中的事件从而更新Slave的数据,使其与Master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。
流程结构图:
三个步骤:1、 Master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
2、Slave将Master的二进制日志事件(binary log events)拷贝到它的中继日志(relay log);PS:从图中可以看出,Slave服务器中有一个I/O线程(I/O Thread)在不停地监听Master的二进制日志(Binary Log)是否有更新:如果没有它会睡眠等待Master产生新的日志事件;如果有新的日志事件(Log Events),则会将其拷贝至Slave服务器中的中继日志(Relay Log)。
3、Slave重做中继日志(Relay Log)中的事件,将Master上的改变反映到它自己的数据库中。PS:从图中可以看出,Slave服务器中有一个SQL线程(SQL Thread)从中继日志读取事件,并重做其中的事件从而更新Slave的数据,使其与Master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。
相关文章推荐
- 数据库主从复制的读写分离实现,调度器实现高可用
- 利用mycat实现基于mysql5.5主从复制的读写分离
- MySQL+Amoeba实现数据库主从复制和读写分离
- 利用Amoeba实现MySQL主从复制和读写分离
- 利用amoeba实现mysql主从复制读写分离
- [置顶] 【Mycat】数据库性能提升利器(三)——Mycat实现Mysql主从复制和读写分离
- 利用mycat实现基于mysql5.5主从复制的读写分离
- 利用mycat实现基于mysql5.5主从复制的读写分离
- atlas+mysql实现主从复制和读写分离(二)
- Mysql主从复制及读写分离的实现 推荐
- Mysql主从复制,读写分离之Mysql-proxy实现
- MySQL 主从复制和读写分离实现
- mysql 主从复制读写分离实现
- 利用点对点复制,实现全球三节点SQL2008数据库快速同步
- MySQL主从复制读写分离实现
- Yii实现多数据库主从读写分离的方法
- Mysql主从复制及读写分离的实现
- MySQL主从复制与读写分离的实现
- mysql 主从复制读写分离实现
- mysql数据库源码安装,主从复制和读写分离的实现