SQLite备份和还原策略



我是这个SQLite的新手。长期使用Oracle/SQL进行集中维护,因此DBA管理所有这些

我计划在我们的Java/JSP应用程序中使用SQLiteDB。

数据将被写入和读取到此DB

我将这个SQLite DB文件存储在与应用程序本身相同的服务器中。有可能数据库文件被删除(无论出于何种原因)

我想知道我们可以在这里应用什么备份和恢复策略,以便增量备份数据库,并在最坏的情况下进行恢复。

只是偶尔复制文件(批处理文件以将文件从一个位置复制到另一个位置)是行不通的,因为DB文件可能会被使用

您所说的文件有多大?

锁定问题可以通过使用LLVM快照来解决,如下所述:http://tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html

使用普通数据库,比如MariaDB,你可以这样做:

  1. 刷新数据并锁定写入
  2. 获取LLVM快照
  3. 释放锁
  4. 将快照装载到某个位置,并使用tar、rsync、tarsnap等进行备份

再说一遍,为了使其可用,您可能需要在创建快照时以某种方式锁定SQLite DB文件。

如果您确定当前没有写入数据库,您可以简单地复制文件。

如果可能存在并发访问,则必须从数据库事务中读取数据库文件
SQLite为此提供了一个备份API;使用它最简单的方法是使用.backup命令运行sqlite3命令行shell。

没有进行增量备份的机制。

最新更新