mysql :
大规模,高并发web服务器体系结构:
MySQL复制,Nginx , LNMP , Memcached , Tomcat(java, servlet,集群),varnish(squid)
NoSQL (redis , mongodb)
mysql-bin.index :二进制日志文件索引文件

MySQL Replication
MySQL主从复制逻辑架构
MySQL主从复制_第1张图片

master/slave
二进制日志/中继日志 relay log
多级复制
复制的作用 :
辅助实现备份
高可用
异地容灾
scale out :分摊负载

读写分离模型 :
MySQL主从复制_第2张图片

主从架构中,不使用MySQL代理 ,如何让主的负责写,从的负责读
双主模型 :无法减轻写操作 ;
scale out
分库 垂直拆分
水平拆分
scale on

读写分离工具:
mysql-proxy
amoeba
数据拆分:
cobar

配置MySQL复制基本步骤 :
一、master
1、启用二进制日志
log-bin=master-bin
log-bin.index=master-bin.index
2、选择一个惟一server-id
server-id={0-2^32}
3、创建具有复制权限的用户
REPLICATION SLAVE
REPLICATION CLIENT
二、slave
1、启用中继日志
relay-log=
relay-log.index=
2、选择一个惟一的server.id
server-id={0-2^32}
3、连接至主服务器,并开始复制数据
复制线程 :
master: dump线程
slave : IO_Thread, SQL_Thread
架构示意图
MySQL主从复制_第3张图片
/etc/profile.d/mysql.sh
read-only=YES
对具有SUPER权限的用户不生效;

sync-binlog=ON
在主服务器上设定,用于事务安全;
percona :percona-tools
mattkit-tools

MySQL:数据库复制过滤
基于MySQL5.6版本 多线程复制
每个数据库仅能使用一个线程
复制涉及到多个数据库时多线程复制才有意义
GTID :
slave-parallel-workers=0
0:表示禁用多线程功能
MySQL主从复制_第4张图片
mysqlreplicate
mysqlrplcheck
mysqlrplshow
mysqlfailover
mysqlrpladmin
MySQL主从复制_第5张图片
GTID启用配置 :
MySQL主从复制_第6张图片

master节点 :
MySQL主从复制_第7张图片
slave节点 :
MySQL主从复制_第8张图片

克隆系统修改网卡号为eth0
/etc/udev/rules.d/70-persistent.net.rule

innodb_file_per_table=1

. !$ 重读上次编辑文件

mysql-proxy.0.8.3实现MySQL5.6读写分离:
MySQL主从复制_第9张图片
MySQL-Proxy 依赖于lua脚本和lua引擎
MySQL-Proxy安装:
MySQL主从复制_第10张图片
侦听tcp/4040