从磁盘映像恢复MySQL备份

我最近在MySQL中使用了一个查询和一个表格。 我也意识到,我没有一个每晚做SQL转储的cron。 但是我有一个夜间磁盘映像,我已经恢复并安装在数据库服务器上。

我在〜/ my_restore / var / lib / mysql中发现了一个巨大的“ibdata1”文件,听起来像是我的数据库。

有一个命令,我可以运行直接从数据库文件做转储?

或者,也许我应该停止MySQL并更新/etc/mysql/my.cnf指向新的数据文件?

只是试图得到build议之前,我愚蠢更蠢(呃)。

首先closures正在运行的mysql服务器的磁盘镜像几乎肯定会导致备份损坏。 这是一个糟糕的备份策略,你应该尽快纠正。 mysqldump是首选的工具,然后停止mysql服务器。

在任何情况下,如果我在你的鞋子,可以承受一些停机时间,我会遵循的程序是以下。

  • 使用受支持的方法(现在不想在修复过程中使事情变得更糟)对数据库进行备份。
  • 停止Mysql服务器
  • 将mysql数据目录重命名为临时位置(mv / var / lib / mysql / var / lib / mysql_production)
  • 尝试将磁盘映像中的数据恢复到/ var / lib / mysql
  • 启动mysql服务器并查找错误
  • 进行“恢复”的数据的备份/导出。
  • 切换回您的生产数据库
    • 停止服务器
    • git摆脱了恢复的/ var / lib / mysql
    • 将/ var / lib / mysql_production移回到/ var / lib / mysql
    • 启动mysql服务器
  • 有select地恢复您从恢复数据导出的各个表/数据/等。

备份MySQL的最好方法是通过mysqldump导出MySQL数据。 在运行时拍摄整个服务器的映像只会导致服务器可能损坏。

所以说,我会build议如下。

  1. 恢复你的图像。
  2. 一旦恢复,login并运行mysqldump上的数据库是borked。
  3. 把那个导出的MySQL文件重新导入到你的工作设置中。