AB复制
目的:
1. 机械故障
2. 远程灾备
3. 高可用HA
4. 负载均衡
5. 读写分离什么是MySQL的AB复制?
MySql的AB复制(replication、也叫主从复制)是一个异步的复制,从一个MySql实例(Master)复制到另一个mysql实例(Slave)。实现整个主从复制,需要由Master服务器上的IO进程,和Slave服务器上的Sql进程和IO进程共同完成。要实现主从复制,首先必须打开Master端的binary log(bin-log)功能,因为整个MySql复制过程实际上就是Slave从Master端获取相应的二进制日志,然后再在自己slave端完全顺序的执行日志中所记录的各种操作(二进制日志几乎记录了除select以外的所有针对数据库的sql操作语句)。
类型:
1. M
2. M-S
3. M-S-S
4. M-M
5. M-M-S-S原理
概念
1. 在主库上把数据更改(DDL DML DCL)记录到二进制日志(Binary Log)中。
2. 备库I/O线程将主库上的日志复制到自己的中继日志(Relay Log)中。
3. 备库SQL线程读取中继日志中的事件,将其重放到备库数据库之上。
=======================================================================
下面将以一个实例来演示多主多从(MM-SS)AB复制情景:
搭建双主双从复制
第一步:搭建双主
master1:(192.168.1.119)-master2(192.168.1.113)
master1:
(1). 开启二进制日志,GTID
# vim /etc/my.cnf
server_id=1
log_bin=/var/lib/mysql/binlog/mysql-bin
binlog_format=statement
expire_logs_days=5
gtid_mode=ON
enforce_gtid_consistency=1
(2). 授权复制用户rep
# grant replication slave,replication client on *.* to 'rep'@'%' identified by '123';
(3). 备份数据
# mysqldump -p'12345' --all-databases --single-transaction --master-data=2 --flush-logs >