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

MySQL Replication MySQL主从复制逻辑架构

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

读写分离模型 :

主从架构中,不使用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 架构示意图 /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:表示禁用多线程功能 mysqlreplicate mysqlrplcheck mysqlrplshow mysqlfailover mysqlrpladmin GTID启用配置 :

master节点 : slave节点 :

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

innodb_file_per_table=1

. !$ 重读上次编辑文件

mysql-proxy.0.8.3实现MySQL5.6读写分离: MySQL-Proxy 依赖于lua脚本和lua引擎 MySQL-Proxy安装: 侦听tcp/4040