【MYSQL】在线恢复主从复制方案
创始人
2024-02-16 13:35:29
0

一、恢复前提

因复杂情况,从库无法从binlog中恢复主从复制关系,需要从备份文件中恢复。恢复过程的几个关键点为:
1、从库现有数据的清理。本方案采用覆盖的方式,导出时添加add-drop参数即可。还有一个方案是手动删除数据文件,再初始化数据库。
2、主库导出之前一定要reset master清除日志文件,否则备库连上后会执行binlog的语句出现各种各样的问题。

二、恢复步骤

1、备份主库、备库文件系统/data
mkdir -p /mysqlrecovery
mount 109.0.14.58:/appm/aixinst/mysql_install/MaterSlaveRecovery /mysqlrecovery
cd /mysqlrecovery
tar cf mysql_master.tar /data/mysql_5.7_3306
tar cf mysql_slave.tar /data/mysql_5.7_3306

2、主库清理binlog
mysql -uroot -pxxxx -e “reset master;”

3、备库导出、获取备份文件
mysqldump -h109.6.45.35 -uroot -pxxxx --triggers --routines --events --single-transaction --add-drop-database --add-drop-table --add-drop-trigger --all-databases > /mysqlrecovery/mysql_data.sql 2>/mysqlrecovery/mysql_data.sql.exp.log

echo $?
cat /mysqlrecovery/mysql_data.sql.exp.log

4、备库上恢复数据。
mysql -uroot -pxxxx -e “stop slave;”
mysql -uroot -pxxxx -e “reset slave;”
mysql -uroot -pxxxx -e “reset master;”

mysql -uroot -pxxxx< /mysqlrecovery/mysql_data.sql > /mysqlrecovery/mysql_data.sql.imp.log 2>&1
cat /mysqlrecovery/mysql_data.sql.imp.log

5、停启数据库,确定没有问题
mysqladmin -uroot -pxxxx shutdown
cd $MYSQL_HOME
./bin/mysqld_safe &

tail -n 100 $MYSQL_DATADIR/mysql.err

6、开始主备同步:
mysql -uroot -pxxxx -e “change master to master_host=‘109.6.45.35’,master_port=3306,master_user=‘repl’,master_password=‘repl’,master_auto_position=1;”
mysql -uroot -pxxxx -e “start slave;”
mysql -uroot -pxxxx -e “show slave status\G;”

三、测试验证情况

1、插入模拟数据(建库、建用户、建存过)
– 创建test库及用户及表,插入1000条数据;

create database testdb;
CREATE USER test@'%' IDENTIFIED BY 'test';
GRANT ALL ON testdb.* TO test@'%';
FLUSH PRIVILEGES;

– 建表testtable

create table testtable(
id int auto_increment not null,
name varchar(30) ,
createtime varchar(30) ,
primary key(id)
)

– 插入测试数据

DELIMITER $$
USE `testdb`$$
DROP PROCEDURE IF EXISTS `addTestData`$$
CREATE DEFINER=`test`@`%` PROCEDURE `addTestData`(IN n INT)
BEGINDECLARE i INT DEFAULT 1;WHILE (i <= n ) DOINSERT INTO `testtable`( `id`, `name`, `createtime`) VALUES (i, CONCAT('坤坤',i), NOW());SET i=i+1;END WHILE;END$$
DELIMITER ;

– 调用存过,插入数据

CALL addTestData(1000)

2、主备库操作
主库执行步骤二的1、2,备库执行步骤二的1、3、4、5、6

3、主备恢复情况验证
1)主备同步状态都YES

[sysdba@localhost][(none)]> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 109.6.109.57
Master_User: admin
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000020
Read_Master_Log_Pos: 1830722
Relay_Log_File: mysql-relay.000002
Relay_Log_Pos: 1830379
Relay_Master_Log_File: mysql-bin.000020
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

2)备库数据已与主库相同
在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...