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