随着互联网时代的到来,越来越多的企业开始使用MySQL数据库,MySQL 复制就成为了互联网应用中不可或缺的内容。MySQL 复制可以非常有效地弥补单机环境下的性能瓶颈以及实现高可用。
MySQL复制分为主从架构与主主架构:
1. 主从架构
主从架构是MySQL最常见的复制模型。主从架构中有一个主服务器(master),多个从服务器(slave),主服务器会定期向从服务器推送更新,从而实现数据的同步。
* 启用Binlog:主服务器需要开启MySQL的binlog_bin log_format,可以将用户的数据库操作记录到MySQL的binlog(trail文件)中,供修改复制:
vim /etc/mysql/my.cnf
binlog-format = row //保证操作完整
log_bin = mysql-bin //开启binlong
* 主服务器向从服务器推送更新:从服务器需要配置复制用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
* 在从服务器上配置同步:
CHANGE MASTER TO
MASTER_HOST='192.168.0.202',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=1729;
START SLAVE;
2. 主主架构
主主架构是一种架构升级,它解决了主从架构中从服务器只负责接收更新而没有数据写入功能的问题,从而可以在不同服务器中实现数据的写入。
实现主主架构的步骤基本与主从复制一致,唯一区别在于需要在另一台服务器上重新配置同步关系,将首台服务器当作主服务器,相互之间进行数据同步,从而实现常见数据的写入:
CHANGE MASTER TO
MASTER HOST='192.168.0.201',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=1729;
START SLAVE;
总之,MySQL 数据库复制的应用可以说是当今互联网应用的必备技术,主从架构及主主架构解决了单机环境下的性能瓶颈以及实现高可用性,而MySQL的复制实现也不复杂,只需要在服务器上正确配置复制参数,便可轻松实现数据库复制。