使用PG-REX可实现与Oracle Data Guard相媲美的高可用性,适用于PostgreSQL!
这篇文章是NTT技术交叉点2018年Advent Calendar的第23天的文章。
首先
你好!我是中村,在NTTテクノクロス负责处理以PostgreSQL为中心的业务。希望大家的PostgreSQL今天也很健壮!
在选择数据库产品进行系统引入或迁移时,我们会关心该产品能够提供多大程度的可用性保证,对吧?
当然,对于PostgreSQL来说,也有一些提高可用性的方法。
因此,我想要介绍一下支持PostgreSQL可用性的PG-REX解决方案!
PG-REX是什么?
PG-REX是一个将以下产品功能结合起来的解决方案。
-
- PostgreSQL本体の同期レプリケーション機能
Pacemakerの障害監視およびフェイルオーバ機能
通过引入PG-REX,可以提高PostgreSQL的可用性。
此外,這個解決方案使用的PostgreSQL和Pacemaker都屬於開源軟體。
由于使用了由社区提供的 PostgreSQL 包,因此可以随时进行 PostgreSQL 本体的版本升级。
保护数据!
★ 通过在 PG-REX 中对数据库数据进行双重复制,实现数据的保护。
通过这种方式,”主数据库”和”从数据库”将被维持在始终保持相同数据的状态。
在发生故障时,自动切换!
即使出现障碍,在PG-REX中仍然可以继续使用PostgreSQL。
检测障碍的是起搏器。
起搏器会检测以下障碍,并自动将“主”切换到“从”,将“新主”替换成“从”。
在PG-REX中,什么是被检测到的障碍物?
PG-REX 检测到以下故障,一旦检测到故障,将进行故障转移。
-
- ノード故障(停止)
-
- ディスク故障
-
- PostgreSQL停止
- LAN故障(接続障害)
如果发生LAN故障,会出现不同的行为变化。当“S-LAN(运营LAN)”用于客户端访问PostgreSQL的时候出现障碍时,我们会进行故障切换;但是对于仅在PG-REX的主节点和从节点之间使用的LAN来说,即使检测到故障,也不会进行故障切换。这是因为一旦“S-LAN”故障,就无法使用PostgreSQL服务。
PG-REX的主节点和从节点之间仅使用的局域网,指的是Pacemaker用于彼此的故障监控的“IC-LAN(互连网)”和PostgreSQL用于同步复制数据传输的“D-LAN(数据库复制局域网)”。
我尝试比较了Oracle Data Guard和PG-REX。
PG-REX发布后,我个人最大的好处是,“作为引入了Oracle Data Guard的系统的迁移目标,有了强有力的候选!”
在这里,让我们稍微比较一下Oracle Data Guard和PG-REX。
表:比较Oracle Data Guard和PG-REX的功能。
主要目的就像导入Oracle Data Guard一样,是在数据库节点发生故障时,缩短服务中断时间,因此可以说Oracle Data Guard和PG-REX的功能几乎相等。
如果可以使用类似于Data Guard的功能,那么之前被认为困难的运维需求可能会得到解决,而且还可能扩大考虑从Oracle迁移到PostgreSQL的可能性,您认为呢?
※1
多个从属(多从属)的配置是由PostgreSQL本身提供的功能。
通过PG-REX将一个从属节点的数据远程复制到另一个从属节点上进行级联复制。
级联复制是由PostgreSQL本身提供的功能。
总结
在本篇文章中,我们介绍了PG-REX的概要。
在引入PG-REX时,需要调整一些参数,如障碍检测时间等,但有数年的使用经验,是一个可靠值得推荐的解决方案。
如果您想了解更多详情,请参考以下链接下载PG-REX的资料和文件。您可以在文件中查找更多信息。
PG-REX项目的日语主页- OSDN
那么走吧!