需求:恢复replication主从,数据保持一致
1.对主库进行锁表,防止数据写入(在活跃度低的时候做)
mysql> flush tables with read lock;
2.在主库进行数据库备份
docker exec -it mysql_zpc_master mysqldump -uhuichao -pOoGP62irDG7uQnF1 --all-databases > /home/workspace/devopts/mysql/replica/allDatabasesBackUp.sql
3.删除.sql文件中第一行的警告:mysqldump: [Warning] Using a password on the command line interface can be insecure.
该警告是mysql5.6之后加入的,在命令行输入密码不安全,会写入到.sql备份文件第一行且不会被注释掉故执行.sql恢复时会报错,有两种方式解决:
1).vim my.cnf
添加: host=localhost
user=user
password=password
2).删除或注释掉该警告
sed -i '1d' /home/workspace/devopts/mysql/replica/allDatabasesBackUp.sql
这里使用的是删除第一行的警告
4.发送主库备份到子节点
scp /home/workspace/devopts/mysql/replica/allDatabasesBackUp root@cluster2.91qpzs.com:home/workspace/devopts/mysql/replica/
5.关闭子节点的主从
stop slave;
6.在子节点恢复数据
docker exec -i mysql_zpc_slave mysql -uhuichao -pOoGP62irDG7uQnF1 < /home/workspace/devopts/mysql/replica/allDatabasesBackUp.sql
7.更新/设置同步进度点
查看master进度点(File:mysql-bin.000009;Position:117304516):show master status;
更新slave:
STOP SLAVE;
change master to
master_host="cluster1.91qpzs.com",
master_user="huichao",
master_password="OoGP62irDG7uQnF1",
master_log_file="mysql-bin.000009",
master_log_pos=117304516;
START slave;
8.取消主库的锁定
mysql> UNLOCK TABLES;
9.查看主从状态
SHOW MASTER STATUS;
SHOW SLAVE STATUS;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?