Bucardo

来自 PostgreSQL 维基
跳转到导航跳转到搜索

概述

Bucardo 是一个适用于 Postgres 的复制系统,支持任意数量的源和目标(也称为主服务器和从服务器)。它是异步的,并且基于触发器。

状态

生产 版本 5.6.0

联系方式

一般信息

可扩展性 主从:级联从服务器,高度可扩展。多主:两个或更多
读取扩展
写入扩展 是(多主);否/略微反向(仅主从)
触发器/过程
并行查询
故障转移/高可用性 不自动
在线配置
PostgreSQL 升级
分离节点/WAN
需要 PostgreSQL 核心修改
编程语言 Perl、PL/pgSQL、PL/PerlU
许可证 BSD
完整的集群解决方案
PostgreSQL 版本 8.1 到 14

集群模型

异步级联主从复制,基于行,使用数据库中的触发器和队列 以及 异步主主复制,基于行,使用触发器和自定义冲突解决

通用模型:异步级联主从和/或主主。基于行,使用触发器和 LISTEN/NOTIFY。

Bucardo 需要一个专用数据库,并作为一个 Perl 守护进程运行,与该数据库以及参与复制的所有其他数据库进行通信。它可以作为多主或多从运行。

多主复制使用两个或更多个数据库,通过冲突解决(标准选择或自定义子程序)来处理两边相同的更新。

主从复制涉及一个或多个源指向一个或多个目标。源必须是 PostgreSQL,但目标可以是 PostgreSQL、MySQL、Redis、Oracle、MariaDB、SQLite 或 MongoDB。

用例

  • 通过从服务器进行负载均衡
  • 通过从服务器进行数据仓库
  • 从服务器不受约束,可以写入
  • 从一个 Postgres 版本升级到另一个版本
  • 许多钩子允许在复制过程中动态更改数据,并简化缓存失效等操作。
  • 部分复制
  • 按需复制(更改可以自动推送或在需要时推送)
  • 将处理 Postgres 版本 8.4 或更高版本的 TRUNCATE 复制。
  • 从服务器可以“预热”以快速设置

缺点

  • 无法处理 DDL(Postgres 对系统表没有触发器)
  • 无法处理大对象(原因相同)
  • 无法增量复制没有唯一键的表(它可以“完全复制”它们)
  • 在 Postgres 8 之前的版本上无法使用

项目赞助商

支持

商业支持可从 End Point Corporation 获得。非商业支持可从 bucardo-general 邮件列表以及 irc.libera.chat 上的 #bucardo 频道获得。

其他信息

其他信息