暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何用备库快速恢复主库

90

前言

本文创作于 2018 年 8 月 31 日,并首次发布于博客园。之所以迁移到公众号,主要是出于对博客园可能关闭导致文章丢失的担忧。未来几周可能会有许多类似的低质量文章出现,它们的知识含量不高或者知识太陈旧,请大家注意甄别,有一些是不推荐阅读的。

好消息是,有些文章,我会对文章有小修改,并且备注现在的一些新想法。

背景

客户的数据库 down 掉了,而且数据库 innodb 文件损坏,无法恢复,数据库没有有效的备份。但有一台备库,数据允许丢失。

2023.8.21 补充,最佳方法并且也是最快的方法,其实是使用备库直接提供服务,先恢复业务,之后旧主慢慢修,修好后作为从库挂回去。当时为什么没有这么做,不知道真正的背景是什么。

最快的解决办法

#1.备份主库上的data目录
mv data data.org

#2.从库关库,然后从库上scp data目录到主库上
#请自行确保复制过去后,执行chown、chmod等操作使目录权限一致。2023.8.21补充
scp -r data 主库:/databases/data/3306/

#3.检查my.cnf配置文件,主要保证redolog等设置要和从库设置一致。
# 检查参数innodb_log_file_size和innodb_log_files_in_group

#4.注意修改data目录里的auto.cnf文件,里面记录的是服务器的uuid,请修改回主库data.org目录下的auto.cnf文件。

#5.启动mysql,看错误日志,应该可以正常启动了

#6.恢复后的主库上,清除复制关系
mysql> reset slave all;

#7.原从库启动数据库,并重建复制关系
mysql> reset slave all;
mysql> change master to ...

恢复的速度

基本取决于你看拷贝文件的速度了,非常快。

总结

在合适的场景采用合适的数据库备份和恢复手段。在允许停止业务的场景,用物理冷备来恢复数据库应该说是最快的一个方法了。


文章转载自芬达的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论