SkyTools
这是一个用于 Skype 中复制和故障转移的工具包。它包括一个通用的排队机制、PgQ 和用于 Python 脚本的实用程序库。
源代码曾经托管在 Pgfoundry (存档) 上,后来转移到 GitHub,技术负责人是 Marko Kreen。
可以在这里找到一个概览演示:File:Moskva DB Tools.v3.pdf,以及 PGQ 的详细演示:http://www.pgcon.org/2008/schedule/events/79.en.html。
PgQ
这是我们使用的队列机制。它由数据库中的 PL/pgsql 和 C 代码组成,并在其之上使用 Python 框架。它源于 Slony-I 的基于快照的事件处理理念,并被重新编写以实现更通用的用途。
特性
- 一个数据库可以有多个队列。
- 生产者可以插入到任何队列中。
- 任何给定队列可以有多个消费者,并且所有消费者都可以看到所有事件。
文档
- PGQ 教程
- PgQ 管理工具 (pgqadm)
- PgQ SQL API 概述
- PgQ SQL 参考
监控
有一个 PGQ Munin 插件 可用。
另请参阅
PGQ 可以作为实现 BASE 解决方案(基本上可用,软状态,最终一致)的基础,或者更普遍地实现一个 最终一致 系统。
Kristo 的博客中有一个详细的 Python PGQ 消费者示例,该示例在用户注册后发送确认电子邮件:http://kaiv.wordpress.com/2007/10/19/skytools-database-scripting-framework-pgq/
Londiste
用 Python 编写的复制工具,使用 PgQ 作为事件传输,在 Github 上提供。 GitHub
特性
- 可以将表逐个添加到复制集中。
- 一个表的初始 COPY 不会阻塞其他表的事件重放。
- 可以比较两边的表。
文档
- Londiste 教程
- Skytools 文档不再可用
监控
Londiste "仅仅" 是一个 PGQ 消费者,因此请参阅如何使用 PGQ_Munin_Plugin 等监控队列本身。
walmgr
此脚本设置 WAL 归档,执行初始备份以及运行时 WAL 归档和还原。
请参阅其 文档。
提供的特定消费者
一些基于 Skytools 框架的更多工具可用于处理特定作业
每个文档页面都以一个描述部分开头,但为了方便您浏览,它们都位于此页面的同一位置:Skytools 特定消费者。