正常切换
- 停止客户端应用(即停止客户端对主库的操作)。
- 确认所有从库同步完成,参考2。
- 获取主库状态值,参考3。
- 获取从库状态值,参考4。
- 对比前面获取的主库状态值和从库状态值,确认从库是否完成所有relay log的回放,参考5。
- 从库1升级为主库。
- 登录从库1。
1
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
- 从库1升级为主库。
停止slave,删除slave的所有信息,查看slave状态。
1 2 3
stop slave; reset slave all; show slave status \G;
查看master状态,记录File参数值(binlog日志文件)和Position参数值(binlog中最新操作的位置),8.4会用到这2个参数值。
1
show master status;
如果主库想重置File(binlog日志文件)和Position(binlog中最新操作的位置),则执行:
1 2
reset master; show master status;
- 确认新主库(从库1)的log_bin值为ON。
1
show variables like 'log_bin';
若log_bin值为OFF,执行下面的操作:
- 打开配置文件。
1
vim /etc/my.cnf
- 按“i”进入编辑模式,修改以下内容。
[mysqld] log-bin=mysql-bin
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 重启MySQL服务,如果成功则没问题。
1
service mysql restart
或者
1 2
/usr/local/mysql/bin/mysqladmin -uroot -p123456 shutdown -S /data/mysql/run/mysql.sock /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &
- 打开配置文件。
- 登录从库1。
- 从库2指向新主库。
- 登录从库2。
1
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
- 停止slave,删除slave的所有信息,查看slave状态。
1 2 3
stop slave; reset slave all; show slave status \G;
- 配置同步方式,参考4。
- 从库2指向新主库(根据3的同步方式选择)。
- 传统方式(master_log_file和master_log_pos是6.b新主库查询到的,根据实际情况修改):
1
change master to master_host='192.168.220.72',master_port=3306,master_user='replicate',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=155;
- GTID方式:
1
change master to master_host='192.168.220.72',master_port=3306,master_user='replicate',master_password='123456',master_auto_position=1;
- 传统方式(master_log_file和master_log_pos是6.b新主库查询到的,根据实际情况修改):
- 启动从库。
1
start slave;
- 查看从库状态。
1
show slave status \G;
下面两项值均为Yes,即表示设置从库成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
- 登录从库2。
- 旧主库指向新主库。
- 登录旧主库(当前已经是从库)。
1
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
- 停止slave,删除slave的所有信息,查看slave状态。
1 2 3
stop slave; reset slave all; show slave status \G;
- 配置同步方式,参考4。
- 旧主库指向新主库(根据3的同步方式选择)。
- 传统模式(master_log_file和master_log_pos是6.b新主库查询到的,根据实际情况修改):
1
change master to master_host='192.168.220.72',master_port=3306,master_user='replicate',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=155;
- GTID模式:
1
change master to master_host='192.168.220.72',master_port=3306,master_user='replicate',master_password='123456',master_auto_position=1;
- 传统模式(master_log_file和master_log_pos是6.b新主库查询到的,根据实际情况修改):
- 启动从库。
1
start slave;
- 查看从库状态。
1
show slave status \G;
下面两项值均为Yes,即表示设置从库成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
- 登录旧主库(当前已经是从库)。
父主题: 主从切换