我是这个SQLite的新手。长期使用Oracle/SQL进行集中维护,因此DBA管理所有这些
我计划在我们的Java/JSP应用程序中使用SQLiteDB。
数据将被写入和读取到此DB
我将这个SQLite DB文件存储在与应用程序本身相同的服务器中。有可能数据库文件被删除(无论出于何种原因)
我想知道我们可以在这里应用什么备份和恢复策略,以便增量备份数据库,并在最坏的情况下进行恢复。
只是偶尔复制文件(批处理文件以将文件从一个位置复制到另一个位置)是行不通的,因为DB文件可能会被使用
您所说的文件有多大?
锁定问题可以通过使用LLVM快照来解决,如下所述:http://tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html
使用普通数据库,比如MariaDB,你可以这样做:
- 刷新数据并锁定写入
- 获取LLVM快照
- 释放锁
- 将快照装载到某个位置,并使用tar、rsync、tarsnap等进行备份
再说一遍,为了使其可用,您可能需要在创建快照时以某种方式锁定SQLite DB文件。
如果您确定当前没有写入数据库,您可以简单地复制文件。
如果可能存在并发访问,则必须从数据库事务中读取数据库文件
SQLite为此提供了一个备份API;使用它最简单的方法是使用.backup
命令运行sqlite3命令行shell。
没有进行增量备份的机制。