调度Rails任务以安全备份数据库文件

Ida*_*rye 1 ruby sqlite backup ruby-on-rails scheduled-tasks

我在Windows Server 2008计算机上有一个Rails应用程序.该应用程序使用sqlite数据库,我需要每天备份一次.应该通过将数据库文件复制到镜像文件夹来完成备份,镜像备份服务将从那里获取备份.

有一个问题.我想避免在应用程序使用它时复制数据库文件.如果我在操作过程中复制文件,我会在备份中得到一个损坏的和/或锁定的数据库文件 - 如果可能的话,恢复这样的文件就太麻烦了.

现在,是否有计划任务等待数据库不使用?或者在备份任务运行时阻止应用程序的其余部分使用数据库?

至于调度,我已经看到了几个解决方案,但我还没有提交调度解决方案,所以我可以依靠调度解决方案功能来解决备份问题.

Die*_*ime 7

我建议使用SQLite命令行Shell:

sqlite3 /path/to/live.db '.backup /backup/path.db'
Run Code Online (Sandbox Code Playgroud)

这将允许您备份而不会导致常规数据库操作失败.从文档:

复制操作可以递增地完成,在这种情况下,源数据库不需要在复制期间被锁定,仅用于实际读取它的短暂时间段.