使用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 中对数据库数据进行双重复制,实现数据的保护。

pgrex_001.png

通过这种方式,”主数据库”和”从数据库”将被维持在始终保持相同数据的状态。

在发生故障时,自动切换!

即使出现障碍,在PG-REX中仍然可以继续使用PostgreSQL。

pgrex_002.png

检测障碍的是起搏器。
起搏器会检测以下障碍,并自动将“主”切换到“从”,将“新主”替换成“从”。

在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 GuardPG-REXデータの同期同期・非同期同期スレーブDBの参照可能(参照専用)可能(参照専用)障害検知・切替え自動自動複数のスレーブ可能可能(※1)ディザスタリカバリ可能可能(※2)

主要目的就像导入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

那么走吧!

广告
将在 10 秒后关闭
bannerAds