MySQL AB 复制
原理:
master服务器
必须确定server-id,必须启用二进制日志文件,然后把所有自主产生的数据修改操作记录到二进制日志文件中。通过复制线程,等待从服务器连接过来,并且发送二进制日志记录给从服务器。
slave服务器
必须确定server-id,通过IO_THREAD线程连接master服务器去获取最新二进制日志记录,下载记录后,通过SQL_THREAD线程应用二进制日志记录达到数据同步的目的。
作用:
减轻master服务器读压力
数据在线热备,具备故障迁移的功能
常见拓扑图:
master ---> slave
/-----> slave1
master
\-----> slave2
master ----> slave1 ----> slave2
master1 <---互为主从---> master2 <---两个master同时接受读写请求
/-----> slave1 ------> slave2
master
\-----> slave3 <---延迟复制:避免逻辑误操作。
db_proxy 或者 应用层自身代理
|||
--------------------------------------
| | |
| | |
|--w-> master1 ro ro
/ \ | |
| | |
\ / \/ \/
master2 ----> slave1 ----> slave2
|
slave3 (延迟复制)
Amoeba 怪形虫