误删数据后用快照回滚,发现文件还是不在了。快照是某个时间点的磁盘镜像,不是数据库逻辑备份,回滚的是整块盘当时的状态。
先看快照的时间点
控制台快照列表里每条都有创建时间。回滚只能回到那个时刻,如果创建时间晚于误删时间,数据自然已经不在。很多人想当然以为快照一直在增量保存最新状态。
回滚的正确操作顺序
- 先给当前盘做一份快照,留退路
- 关机再回滚,运行中回滚容易失败
- 启动后核对文件和数据,再决定是否清理
systemctl stop mysql ls -lh /var/lib/mysql
数据库场景更稳妥的路径是停服务、挂载快照盘、把数据文件拷回原目录再启动,避免整盘回滚把配置也一起带回旧版本。
快照不能替代备份
快照和磁盘在同一地域、依赖同一套存储,账号或地域出问题时可能一起不可用。重要数据要额外做逻辑导出并放到对象存储:
mysqldump -u root -p 库名 | gzip > /backup/db-$(date +%F).sql.gz
备份文件定期做一次恢复演练,只备份不验证,等于没有备份。