我在Windows Server 2008计算机上安装了Rails应用程序。该应用程序使用sqlite数据库,我需要每天备份一次。应该通过将数据库文件复制到镜像文件夹来完成备份,镜像备份服务将从那里获取它。
有一个问题。我想避免在应用程序使用它时复制数据库文件。如果我在操作过程中复制文件,我会在备份中获得一个损坏的和/或锁定的数据库文件 - 如果可能的话,恢复这样的文件就太麻烦了。
现在,是否有计划任务等待数据库不使用?或者在备份任务运行时阻止应用程序的其余部分使用数据库?
至于调度,我已经看到了几个解决方案,但我还没有提交调度解决方案,因此我可以依靠调度解决方案功能来解决备份问题。
答案 0 :(得分:7)
我建议使用SQLite Command Line Shell:
sqlite3 /path/to/live.db '.backup /backup/path.db'
这将允许您备份而不会导致常规数据库操作失败。来自文档:
复制操作可以递增地进行,在这种情况下是源 仅在数据库的持续时间内不需要锁定数据库 在实际被读取的短暂时间内。