场景:mysql是一主一从的业务架构,从库损坏,数据较少,现在来恢复从库数据,使主从数据一致
从库数据库数据和主库不一致,导致主从报错
1.在主库导出数据库数据(game库)
mysqldump -uroot -p'密码' --single-transaction --no-autocommit --master-data=2 -S /web/data/mysql-8/mysql.sock game > game20220214.sql
这里有一个关键的参数 "--master-data=2", 这个参数能帮助我们实现在线重建主从数据库
scp game20220214.sql root@"从库IP":/root/
2.登录从库数据库,重做主从
mysqlbinlog /root/game20220214.sql | head -30 查看master_log_file和master_log_pos信息
mysql -uroot -p'密码' -S /web/data/mysql/mysql.sock
>show slave status \G; 查看从库状态
>stop slave; 停止从库
>reset master; 重置从库binlog日志
>drop database game; 删除从库game库(先备份)
>create database game; 新建从库
>source /root/game20220214.sql; 导入主库数据
>reset slave all; 重置从库
>change master to master_host='主库ip', master_user='账号', master_password='密码', master_port=3307,master_log_file='master-bin.000014', master_log_pos=4094140;
建立主从
>start slave; 启动从库
双主结构恢复:
vip地址在哪一台数据库上,就用其数据去恢复另一台数据库的数据,方式有mysqldump和xbk,数据同步后在进行以下操作
在需要被恢复的mysql上执行:
mysql> reset slave all; 重置从库
Query OK, 0 rows affected (0.01 sec)
mysql> change master to master_host='vip所在的数据库IP', master_user='账号', master_password='密码', master_port=3306,master_log_file='', master_log_pos=;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql主从数据恢复
于 2024-01-05 16:12:25 首次发布