我正在使用运行定制软件包的Fedora服务器。 服务器软件相当陈旧,其数据库由1723个文件组成。 数据库文件不断变化 – 它们不断增长,变化不一定追加到最后。 所以现在,我们目前每隔24小时备份一次,当所有的用户都离开系统并且数据库处于内部一致的状态时。
问题是,我们有可能失去一整天的工作价值,这是不可收回的。 所以我想知道是否有办法对这些数据库文件进行一些即时快照,我们可以每30分钟左右备份一次。
我已经阅读了有关Linux LVM快照的内容,并且认为我可以通过创build快照,将文件rsync到备份服务器,然后删除快照来完成目标。 但我从来没有这样做过,所以我不知道这是否是“正确”的解决scheme。
任何想法呢? 有更好的解决scheme
谢谢!
这一切都取决于数据库。 如果你没有办法告诉数据库引擎“让所有的文件处于一致的状态”,那么你不能做一个快照,因为快照不能保证它们之间的文件是一致的 – 您可以在数据库中的一个文件已被更改而另一个文件未被更改的时刻拍摄快照。
真的,这听起来像你有一个专有的应用程序的真正群集function,你需要与该应用程序的供应商讨论备份的可能性。 即使不知道噩梦是什么,我们也无法帮助你,即使如此,
但是,如果您可以设法通知数据库引擎“将所有更改同步到磁盘”,那么是的,LVM快照是完成数据副本其余部分的完全合理的方式。 有关如何执行整个过程(同步到磁盘,快照,装载快照,复制数据)的示例,请参阅mylvmbackup。 它完成这个过程,为MySQL服务器。
我认为LVM是一个不错的select,但首先你需要确保你的文件处于一致的状态。 所以,无论你使用什么解决scheme,如果文件被破坏,没有点他们。
假设您拍摄一张快照,但同时您的数据库正在将一些数据写入文件中。 如果在文件刚刚部分同步时拍摄快照,则遇到问题。
你知道他们说什么坏的备份比没有备份更糟糕。
所以我会build议您找出如何临时locking写入数据库,然后同步磁盘,拍摄快照并再次解锁数据库。 快照不会花费很长时间,所以如果用户能够延迟生存,我会select这个path。