Litestream 引入了 SQLite 复制系统的实现

BoltDB NoSQL 存储的作者 Ben Johnson 介绍了 Litestream 项目,该项目提供了一个用于在 SQLite 中组织数据复制的附加组件。 Litestream 不需要对 SQLite 进行任何更改,并且可以与使用该库的任何应用程序一起使用。 复制是由单独执行的后台进程执行的,该进程监视数据库中文件的更改并将其传输到另一个文件或外部存储。 该项目代码是用 Go 编写的,并在 Apache 2.0 许可证下分发。

所有与数据库的交互都是通过标准 SQLite API 进行的,即Litestream不直接干扰操作,不影响性能,也不会损坏数据库的内容,这也是Litestream与Rqlite、Dqlite等解决方案的区别。 通过在 SQLite 中启用 WAL 日志(“预写日志”)来跟踪更改。 为了节省存储空间,系统定期将更改流聚合到数据库切片(快照)中,在其上开始累积其他更改。 创建切片的时间在设置中指示;例如,您可以每天创建一次切片或每小时创建一次切片。

Litestream 的主要应用领域包括组织安全备份和跨多个服务器分配读取负载。 它支持将更改流传输到 Amazon S3、Azure Blob Storage、Backblaze B2、DigitalOcean Spaces、Scaleway 对象存储、Google Cloud Storage、Linode 对象存储或任何支持 SFTP 协议的外部主机。 如果主数据库的内容损坏,备份副本可以从指定时间点、特定更改、最后更改或指定分片对应的状态恢复。

来源: opennet.ru

添加评论