一个简单完整的 Mysql 主从复制,读写分离的示意图。javascript

1. 首先搭建 Mysql 主从架构,实现 将 mater 数据自动复制到 slave java
MySQL 复制的工做方式很简单,一台服务器做为主机,一台或多台服务器做为从机。主机会把数据库的变化记录到日志。一旦这些变化被记录到日志,就会马上(或者以设定的时间间隔)被送到从机。mysql

使用MySQL 复制提供扩展大型网站的能力,这些大型网站的数据库主要是读操做(SELECTs)。从机用於复制主机的銷秏是不多的(一般每一个从机1%的开销),在大型网站中每一个主机部署30 个从机也是常见的。sql
异步复制与同步复制数据库
异步复制:MySQL自己支持单向的、异步的复制。异步复制意味着在把数据从一台机器拷贝到另外一台机器时有一个延时 – 最重要的是这意味着当应用系统的事务提交已经确认时数据并不能在同一时刻拷贝/应用到从机。一般这个延时是由网络带宽、资源可用性和系统负载决定的。然 而,使用正确的组件而且调优,复制能作到接近瞬时完成。服务器
同步复制:同步复制能够定义为数据在同一时刻被提交到一台或多台机器,一般这是经过众所周知的“两阶段提交”作到的。虽然这确实给你在多系统中保持一致性,但也因为增长了额外的消息交换而形成性能降低。网络
使用MyISAM或者InnoDB存储引擎的MySQL自己并不支持同步复制,然而有些技术,例如分布式复制块设备(简称DRBD),能够在下层的 文件系统提供同步复制,容许第二个MySQL服务器在主服务器丢失的状况下接管(使用第二服务器的复本)。要了解更多信息,请参 见:http://www.drbd.org/架构

异步复制方案:app
1. Mysql 数据库安装异步
安装过程省略: 详细参见:http://pengranxiang.iteye.com/admin/blogs/1138059
服务器 Master :192.168.14.131
Mysql 安装目录: /home/mysql/mysql (使用源码安装,独立目录)
服务器 Slave :192.168.14.132
Mysql 安装目录 :/home/mysql/mysql
2. 修改配置
为了避免影响原来的配置文件: /etc/my.cnf
建立新的配置文件,
cp /etc/my.cnf /home/mysql/mysql/conf/master.cnf
cp /etc/my.cnf /home/mysql/mysql/conf/slave.cnf
修改 master.cnf, 增长下面的设置 ,
(官方说明:为了使用事务的InnoDB在复制中最大的持久性和一致性,你应该指定innodb_flush_log_at_trx_commit=1,sync_binlog=1选项。)
Cnf代码

- log-bin=mysql-bin #slave会基于此log-bin来作replication
- server-id=1 #master的标示
-
- innodb_flush_log_at_trx_commit=1
-
- sync_binlog=1
修改 slave.cnf
Cnf代码