MySQL双主热备

一、解决问题
Master挂掉不会影响业务
实现心跳

二、双主配置,基于主从复制( MySQL的一主二从异步复制(半同步复制))配置上进一步设置
1、Master:
//master配置
log_bin = /usr/local/mysql/binarylog/mysql_bin.index
binlog_format=mixed
expire_logs_days = 7
server_id = 1

//slave 配置
relay_log = /usr/local/mysql/binarylog/relay_log
relay_log_index = /usr/local/mysql/binarylog/relay_log.index
log_slave_updates=1 //此项代表,把relay_log写入到log_bin中,保证Master的binary log与Slave的bin log 一致

2、Slave:
//master配置
log_bin = /usr/local/mysql/binarylog/mysql_bin.index
binlog_format=mixed
log_slave_updates=1 //此项代表,把relay_log写入到log_bin中,保证slave的binary log与Master的bin log 一致

//slave 配置
relay_log = /usr/local/mysql/binarylog/relay_log
relay_log_index = /usr/local/mysql/binarylog/relay_log.index
expire_logs_days = 7
server_id = 3

3、在Slave上创建同步帐号,默认可同步所有库
GRANT REPLICATION SLAVE ON *.* TO 'master'@'10.168.1.%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

4、在两台服务器上分别重启MySQL

5、在Master上设置其指向Master的配置
CHANGE MASTER TO 
MASTER_HOST='10.168.1.227', 
MASTER_USER='master', 
MASTER_PASSWORD='123456', 
MASTER_LOG_FILE='mysql_bin.000005', 
MASTER_LOG_POS=154;

6、相关命令
6.1、停止MYSQL同步
STOP SLAVE IO_THREAD;    #停止IO进程
STOP SLAVE SQL_THREAD;    #停止SQL进程
STOP SLAVE;               #停止IO和SQL进程

6.2、启动MYSQL同步
START SLAVE IO_THREAD;    #启动IO进程
START SLAVE SQL_THREAD;  #启动SQL进程
START SLAVE;            #启动IO和SQL进程

6.3、重置MYSQL同步
RESET SLAVE;
   
6.4、查看从服务器的状态信息
show slave status\G;


总结,在现在的两个互为主从的MySQL下,可以各自再挂Slave

你可能感兴趣的:(mysql)