macos - SQLite 数据库的实时单向镜像

标签 macos sqlite database-replication database-mirroring

我正在处理在本地计算机上运行带有 WAL(预写日志记录)的 SQLite 3 数据库的第 3 方应用程序,并且我希望将该数据库(只读,这是单向镜像)镜像到另一个系统。挑战在于我在一个单独的进程中运行,这似乎使事情有些复杂化。

数据库正在以正常的锁定模式创建和打开,因此从另一个进程读取它没有问题,但我试图找到现有的实现或获取一些关于从哪里开始的指针。根据其他帖子,我的理解是标准的 sqlite 更新钩子(Hook)(例如 sqlite3_update_hook )不会在进程之外工作。

一个关键问题是速度,理想情况下,我希望能够在每次更新发生时立即检测到并开始传输它。这意味着大多数轮询选项都是不可能的,但即使它们是,您将如何检测最新的变化?

我看到两个看起来很有希望的文件:实际的 WAL 文件( foo.db-wal )和内存映射索引文件( foo.db-shm )。我希望这两个包含我需要的信息: A. 检测数据库中何时发生更改 B. 能够仅获取自上次更新以来的增量更改。

但是指向一些现有解决方案的指针会更受欢迎...... :-)

最佳答案

SymmetricDS 可能是您的解决方案

关于macos - SQLite 数据库的实时单向镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710001/

相关文章:

database - 如何在 postgres 中设置同步流复制?

macos - 是否可以找到 MAC OSX 应用程序中使用的字体的文件路径

ios - SmartSVN:如何从主干分支出工作副本

macos - URL 是否始终会创建具有完全相同字节模式的安全范围书签?

objective-c - Objective-C 的良好 SQLite 包装器

sql - 将 JOIN 查询重写为子查询/更快的变体

mysql - 如何在MySQL复制中使用replicate-*-db?

excel - 如何在 MAC 上使用 VBA 从 Excel 16 打开工作簿?

python-3.x - Python程序,插入txt文件到sqlite3数据库

postgresql - 在 PostgreSQL 中重用旧的 master 作为 slave