我最近弄错了一个查询并在 MySQL 中删除了一个表。我还意识到我没有 cron 每晚执行 SQL 转储。但我确实有一个夜间磁盘映像,我已将其恢复并安装在数据库服务器上。
我在 ~/my_restore/var/lib/mysql 中发现了一个巨大的“ibdata1”文件,听起来它可能是我的数据库。
有没有我可以运行的命令直接从数据库文件进行转储?
或者我应该停止 mysql 并更新 /etc/mysql/my.cnf 以指向新的数据文件?
只是想在我将愚蠢与更愚蠢(呃)复合之前获得建议。
首先,获取正在运行的 mysql 服务器的磁盘映像几乎肯定会导致备份损坏。这是一个糟糕的备份策略,您应该尽快纠正。mysqldump 是首选工具,其次是停止 mysql 服务器。
在任何情况下,如果我处于您的位置并且可以承受一些停机时间,我将遵循的程序如下。
备份 MySQL 的最佳方式是通过
mysqldump
. 在运行时拍摄整个服务器的图像只会导致服务器可能损坏。话虽如此,我建议以下内容。
mysqldump
在有问题的数据库上运行。