误删数据后用快照回滚,发现文件还是不在了。快照是某个时间点的磁盘镜像,不是数据库逻辑备份,回滚的是整块盘当时的状态。

先看快照的时间点

控制台快照列表里每条都有创建时间。回滚只能回到那个时刻,如果创建时间晚于误删时间,数据自然已经不在。很多人想当然以为快照一直在增量保存最新状态。

回滚的正确操作顺序

  • 先给当前盘做一份快照,留退路
  • 关机再回滚,运行中回滚容易失败
  • 启动后核对文件和数据,再决定是否清理
systemctl stop mysql
ls -lh /var/lib/mysql

数据库场景更稳妥的路径是停服务、挂载快照盘、把数据文件拷回原目录再启动,避免整盘回滚把配置也一起带回旧版本。

快照不能替代备份

快照和磁盘在同一地域、依赖同一套存储,账号或地域出问题时可能一起不可用。重要数据要额外做逻辑导出并放到对象存储:

mysqldump -u root -p 库名 | gzip > /backup/db-$(date +%F).sql.gz

备份文件定期做一次恢复演练,只备份不验证,等于没有备份。

作者 9823189