PostgresSQL HA高可用架构实战

本文由萧少聪在高可用架构群所做的分享整理而来,转载请注明高可用架构公众号:ArchNotes。

萧少聪(花名:铁庵),广东中山人,阿里云RDS for PostgreSQL/PPAS云数据库产品经理。自2006年以来,长期从事RedHat及SuSE Linux的HA集群搭建及PostgreSQL数据库支持工作。2011年开始组建Postgres(数据库)中国用户会。

PostgreSQL背景介绍

有不少同学希望了解PostgreSQL的背景及它与MySQL的对比结果,所以在此啰唆两句,有兴趣的同学可以单独给我发E-Mail,我可以分享详细的介绍及一些对比结果。

2015年是PostgreSQL正式在中国起步的一年,我们看到越来越多的企业选择了PostgreSQL。

  • 中国移动主动使用PostgreSQL实现分布式数据库架构。

  • 金融业方面平安集团明确表示将使用PostgreSQL作为新一代数据库的选型。

  • 华为中兴纷纷加入PostgreSQL内核研究队伍。

  • 阿里云正式提供PostgreSQL服务。

大部分人了解MySQL应该都是从2005年左右开始,那时在互联网带动下LAMP空前繁荣。而你所不知道的是,那时PostgreSQL已发展了近30年,至今已经超过40年。1973年MichaelStonebraker(2014年图灵奖得主)在伯克利分校研发了当前全球最重要的关系型数据库实现:Ingres。此后,陆续改名为Postgres、Postgres95,直到现在的PostgreSQL。PostgreSQL有众多的衍生品牌产品,就如同Linux有RedHat、SUSE、Ubuntu一样,当前,国内多个国产数据库都是基于PostgreSQL进行开发的,同时,国际知名的针对OLAP场景的Greenplum数据库,及EnterpriseDB公司高度兼容Oracle语法的PPAS数据库也是基于PostgreSQL实现。

PostgreSQL与MySQL相比功能更为完善,同时,在进行复杂SQL查询时(特别是多表进行JOIN查询)性能及稳定性也更为优秀,是国外企业首选的应用于核心业务系统的开源OLTP业务关系型数据库引擎。PostgreSQL被誉为全球最先进的开源数据库,支持NoSQL JSON数据类型、地理信息处理PostGIS、丰富的存储过程操作,并可实现基于Tuple(在PostgreSQL中此单位比Block还要小)级别的StreamingReplication数据同步。

与MySQL不同,PostgreSQL不支持多数据引擎。但支持Extension组件扩充,以及通过名为FDW的技术将Oracle、Hadoop、MongoDB、SQLServer、Excel、CSV文件等作为外部表进行读写操作,因此,可以为大数据与关系型数据库提供良好对接。

PostgreSQL下如何实现数据复制技术的HA高可用集群

业界大多数的数据库的HA实现都是基于共享存储方式的,如下图。在这个方式下,数据库1主1备,使用一个共享存储保存数据。

0?wx_fmt=jpeg

正常情况下主库连接存储及VIP,进行数据业务处理。备库永远处于非运行状态,只有当主库出现故障后,备库才会进行存储及VIP的接管。但传统的企业中,这样的结构比比皆是,在我进入阿里云之前服务过的大多数企业都使用这样的架构(除了Oracle RAC及DB2的并行方案)。而当今,无论Oracle、MySQL、SQLServer,还是今天我们用作说明案例的Postgres,都已经支持基于数据库底层的StreamingReplication模式实现数据复制了,同时支持备库作为只读服务器提供业务服务。因此,备库资源对于企业来说是极大的浪费。

传统的HA方案在实现基于Streaming Replication方式时,往往需要通过大量人为控制的脚本进行判断和控制。2006年到2011年,我为不同的客户及不同的数据库编写了多种特制的脚本,当中的安装配置及维护难度都有点让人望而却步。2011年,我在SUSE系统的HA支持工作中接触到了Corosync +Pacemaker的HA结构。发现了 “Master-Slave模式”。在这个模式下,系统支持promote及demote,以解决数据库基于Streaming Replication主备模式的切换问题。

Corosync + Pacemaker MS 模式介绍

本次讲解主要针对架构及这个模式的处理原理。如果大家想要了解具体的配置方式,可以参考http://clusterlabs.org/wiki/PgSQL_Replicated_Cluster。同时,当前最新的Red Hat Enterprise Linux 7及SUSE Linux Enterprise Server 11/12中的HA组件都基于此架构,你也可以通过厂商的官方文档或官方技术支持得到配置的详细说明。

0?wx_fmt=jpeg

上图有3个网段:0.x网段,用于数据库对外业务;1.X网段,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值