随笔 - 746  文章 - 0  评论 - 39  阅读 - 79万

Mysql:开启了二进制日志功能 log-bin 的mysql数据库, 如何故障恢复?

Mysql 的 二进制 日志 不仅仅用于 Replicate\审计 等情况, 完全可以像其他 RDBMS 系统那样用来进行备份还原.

具体操作步骤如下:

(可选):  备份 二进制的日志文件

step1: 启动服务器 mysqld: 确保使用一些选项:

复制代码
#取消二进制启动
#log-bin

#允许salve i/o thread 读取自身server-id的二进制日志记录
replicate-same-server-id

#slave线程不自动启动. 保险起见
,可以不设置
skip-slave-start

#定义relay-log的basename
relay-log
="原来log-bin(二进制日志的)basename"
复制代码

  

step2: 配置slave线程信息 change master to

change master to
relay_log_file
='起始的 二进制 日志文件',
relay_log_pos
=起始的 二进制 日志文件 位置,
master_host
='一个虚假的不可用的主机或ip'
;

  该语句中的 "master_host" 仅仅是语法需要,并不进行实际的连接.

step3: 启动 slave 线程,进行还原

start slave;

  

step4: 还原完成后,以正常模式启动mysql即可. 记住: 清理掉data目录下的salve相关文件!
记住,清理掉 data 目录下的 和 slave 相关的文件!

  

题外: 所有的关键是: 建立良好的备份策略,提供完整的备份信息.以该种方式还原来看,平时 dba 就必须提供备份时的时间点,binlog文件索引号甚至是show master status的信息.否则必须逻辑上来确定还原点才行!

posted on   jinzhenshui  阅读(623)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

点击右上角即可分享
微信分享提示