MySQL A、B复制:深入理解复制原理(mysqlab复制)
MySQL A/B复制是一种可用于数据库高可用性的复制技术,它使主数据库(A)的数据能够复制到另一台服务器(B)上,这样就能够构建一个可供生产使用的备用服务器(B),以防主服务器(A)出现任何意外场景时,能够快速失效迁移,新服务器(B)就能够取代主服务器(A),提供服务。
MySQL A/B复制使用Master-Slave原理,一旦主库(A)出现问题,从库(B)就会接管生产环境,这种复制实现需要使用MySQL 5.7.17版本及以上,更高版本MySQL支持GTID复制,使用GTID可以更加简单的实现相关复制机制:
A、配置Master数据库
1. 在MySQL的配置文件中加入如下配置:
server_id=1
log_bin=mysql-bin
binlog_format=row
2. 创建复制用户,授权权限:
mysql>CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘123456’;
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’;
B、配置Slave数据库
1. 同样在MySQL的配置文件中加入如下配置:
server_id=2
log_bin=mysql-bin
binlog_format=row
2. 使用Master上创建的复制用户连接Master,查询Master上binlog位置:
mysql> show master status;
3. 将Slave连接到Master上,让Slave开始复制:
mysql> CHANGE MASTER TO
MASTER_HOST=’192.168.1.1′,
MASTER_USER=’repl’,
MASTER_PASSWORD=’123456′,
MASTER_LOG_FILE=’mysql-bin.000003′,
MASTER_LOG_POS=980;
4. 最后启动Slave并开始复制:
mysql> start slave;
因此,MySQL A/B复制可以非常有效的提高MySQL服务器的可用性,保证系统数据在意外发生时可以快速恢复服务,从而节省宝贵的时间。