PostgreSQL 金融行业高可用和容灾解决方案

背景

金融行业高度依赖共享存储来解决高可用,数据0丢失以及异地容灾的问题。

开源数据库PostgreSQL基于复制的解决方案能不能解决0丢失,高可用以及容灾的问题?

完全可以,而且更灵活,更可靠。

PostgreSQL 金融场景实现

如图1

主备同步通过流复制实现,可靠性指标包含反馈维度的指标和一致性维度的指标。

反馈指标

1. L1,备库接收到REDO并写入XLOG BUFFER。

2. L2,备库接收到REDO并落盘。

3. L3,备库接收到REDO落盘后并恢复。

以上三个指标,对事务的时延逐级提升。(根据可靠性强度要求设置)

一致性指标

1. 满足两个条件后,通知应用程序事务提交成功或失败

   1.1 强制要求强同步的指定备库组反馈,处于该组的所有备库,至少有一个反馈。(用于异地强同步容灾,不配置则表示没有指定的强同步备库,只要满足下面一条即可。)

   1.2 大于等于n个备库反馈,(用于任意副本数强同步,0表示异步,1表示1个备库强同步,2表示2个备库强同步,以此类推)

2. 异步库延迟多少秒,主库切换为只读(不配置,表示主库不管异步库延迟多少)

3. 异步库延迟多少字节,主库切换为只读(不配置,表示主库不管异步库延迟多少)

(如果异地容灾库也需要0丢失,把上图的异地2个异步库级联挂接改为直接挂接主库即可。并且将它们配置为一组,则这组库必须要有1个反馈。)

架构简化

数据0丢失的实际上是靠REDO日志来保障的,只要REDO不丢失,就可以恢复到最终一致性状态。

前面的图,可以简化为XLOG多分组同步如下图,每个分组代表一个机房(含本地机房)。

XLOG副本:

本地强同步模式

  XLOG数据在本地机房同步至少1份。

异地容灾强同步模式

  XLOG在异地机房同步至少1份。

数据副本:

本地机房建议2个副本。

异地机房建议1个副本,可靠性要求高的场景,可以再增加副本。

配置示范:

针对金融行业,或者可靠性要求非常高的用户。

本地机房

    1主3备,万兆网连接。

    反馈指标配置为2个L1,1个L2。一致性要求配置为超过1个主机反馈。

    本地机房和异地机房通过物理分离的双光纤直连。

    

异地机房

    2备, 都直连主库,并配置为强同步组,至少要有1个反馈,同时反馈指标都配置为L1。

解决了什么问题?

1. 数据的强同步副本达到了2个,其中一个副本在异地。

2. 本地机房,备库挂2台没关系,不影响主库运作。

3. 异地机房,备库挂1台没关系,不影响主库运作。

性能如何?

1. 对读完全没有影响。

2. 对写事务的性能影响,完全取决于网络,实测万兆网的环境中写事务请求延迟会增加不到1毫秒,影响非常小。

3. 备库和主库的延迟,因为PostgreSQL是基于物理变更的数据流同步,所以不存在逻辑复制的延迟问题,物理流复制的延迟可以控制在毫秒级。

4. 发生故障时 HA 切换时延如何?

  考虑到网络抖动,负载等不安因素,整个切换过程一般控制在25到45秒之间。

5. 发生故障切换时,应用要不要重新和数据库建立会话?

  有proxy解决方案,可以做到 HA 切换时不断开用户连接,对用户无感知(但是使用绑定变量的话,需要重新绑定,将来会解决会话信息的同步)。

主库的重新选举原则

1. 从已达到同步模式的库中根据配置的优先级顺序选择

2. 如果用户配置的是全异步模式,则从延迟最低的库选择

3. 同样的延迟,则根据配置的优先级顺序选择

图2

选举出新的主库后,连接关系重新建立。

灵活性

1. 备库可以提供给只读查询,做读写分离负载均衡。

2. 时间线切换很方便,主备角色切换非常灵活。

3. 备库还可以用于升级大版本的演练,测试环境快速搭建,样本库快速建立等。

以上这些,使用共享存储的解决方案都是做不到的。

性能和一致性的博弈

如果异地机房不设置强同步,那么当主库所在机房都挂掉时,切换到异地机房有丢数据的风险。但是为了可用性,用户可能会决定切换到异地机房,那么问题来了,当主库所在的机房活了,

1. 怎么把未完全同步到异地机房的数据补回去?

2. 怎么快速的把原来的主库变成备库,需不需要重新同步数据,搭建主备?

1. PostgreSQL 的logical decode帮你解决第1个问题。

使用logical decode,可以帮助用户从异地机房激活的时间点开始,将主库执行过多的SQL取出来,同时将SQL影响的行,老的记录,新的记录都取出来。

有了这些数据,就可以在业务层面解决补数据差异的问题。

2. PostgreSQL 的pg_rewind可以帮你解决第2个问题

速度有多快?假设切换时,异地备库与主库的延迟在分钟级别,那么:

不管数据库有多大,都可以分钟级完成回退,变成备库。

原理是从异地机房激活的时间点到主库crash时,主库产生的XLOG,将这些变更使用新的主库的数据块替换。

这一点Oracle都做不到。

成本

使用PostgreSQL的解决方案,本地高可用,加一个容灾机房。

(假设用户单库的数据 10TB,REDO 保留100GB。)

成本如下:

1. 本地机房数据 2份(包括主库在内2台主机)

2. 本地机房XLOG 3份(复用以上主机,再增加一台)

3. 异地机房数据 1份(1台主机)

4. 异地机房XLOG 2份(复用以上主机,再增加一台)

一共5台主机。

磁盘容量需求,3份数据容量(30TB),5份REDO容量(500 GB)。

效果:

1. 本地2个XLOG接收服务,挂掉1个不影响主库的写操作。

2. 异地机房2个XLOG接收服务,挂掉1个不影响主库的写操作。

3. 主库挂掉时,自动切换到本地的备库。

4. 机房挂掉时,可以切换到异地的备库。

时间: 2024-09-05 07:13:03

PostgreSQL 金融行业高可用和容灾解决方案的相关文章

AIX的存储高可用和容灾解决方案实现

基本技术介绍 AIX LVM Mirror 本地存储高可用解决方案介绍 Logical Volume Manager(LVM)是 AIX 上用于逻辑卷管理的软件.LVM 本身提供 Logical Volume (LV)数据在多个 Physical Volume (PV)之间做数据镜像的功能,以达到存储的本地高可用性.在 LVM Mirror 方案中写 I/O 与底层设备交互如下图所示. 图 1. LVM Mirror 方案架构 当服务器发出写 I/O 时,该 I/O 在 Parallel 模式下

高可用数据容灾 同有科技助力河北省人民检察院数据中心升级

随着我国政府职能向数字化.服务化转型,越来越多的应用.业务.数据被集中处理,数据中心需要更完备的安全保障.河北省人民检察院在其数据中心改造项目中,选择了北京同有飞骥科技股份有限公司(以下简称"同有科技")为其量身打造的高可用数据容灾存储解决方案. 原数据中心无法满足业务发展需求 作为省级检察院,河北省检察院管理着全省11个市级院和169个县区级检察院,现有22个内设机构,分管不同的业务内容.其信息化系统包含办公系统.档案系统.统一业务软件系统.数据库系统等.随着各种大数据应用的增多,原

如何衡量数据中心的高可用及容灾水平

数据中心的好与差有很多评判的方法,很多评价机构都是将多方面的因素考虑进来,对每种因素进行评分,再根据经验对每种因素给定权重,最终得出数据中心的评价结果,按照预先定义的数据中心等级,根据评价结果给数据中心定级.不少的数据中心评价机构尽量保证数据的真实性和权威性,一定要将数据中心分个三六九等,这其中就有两项非常重要的参数,就是一个数据中心的高可用性和数据中心的容灾能力.往往这两项会在整个数据中心评价中占据相当大的权重,很多数据中心在建设时考虑最多的也是这两个方面.下面就展开来谈谈高可用性及容灾. 何

浅析单点故障以及云上高可用和容灾

引言 故障,不管它发生的概率有多低,终归还是会发生的.                                                                                     --墨菲定律 概念 单点故障 顾名思义,单个点发生的故障,扩展到云上的环境,指的就是单个节点发生的故障导致整个链路瘫痪.这里的节点可以是一台服务器,一个数据库,一台网络设备,乃至一个应用程序. 打个简单的比方,一个加工厂流水线只有甲乙丙丁四名员工,一个加工需求进来,需要甲乙丙

阿里云高可用-容灾解决方案

这两天,一篇名为<IT之家因无法忍受阿里云而迁移至XX云>的文章引起了整个云计算行业的热议.(袋鼠云CTO江枫还专门写了一篇热评:点击阅读原文.) 从目前得到的信息看,其应该是在青岛区域购买了一台云服务器ECS,基于.net和自建SQL Server,并且应用和数据库跑在同一台云服务器上. IT之家,所有应用都部署在单台ECS上,不具备高可用的特性. 即便阿里云产品本身就有容灾.高可用的特征,但是因为一些用户对阿里云产品的不了解和自身应用架构不够合理,也根本无法使其发挥该优势. 其实,IT之家

基于存储虚拟化远程容灾解决方案

今天,大多数的企业已经全面使用计算机管理,所有数据都存储在计算机系统中.因此,计算机系统的持续使用性和安全可靠性,在整个企业运营过程中起着至关重要的作用.如果系统在一段时间内不能正常运行,所造成的影响将不仅仅是局部的,有可能给整个企业运营造成重大损失.目前,只有少数企业建立了容灾备份系统.为什么大多数企业尚未建立容灾体系?原因有三点: "这种事不会发生在我们公司!"对于大多数的IT主管来说,他们认为这种偶然事件只会发生在其它公司,不会发生在他们自己所管辖的公司内.因而没有这方面的考虑.

IBM七级容灾解决方案

容灾对企业的重要性已无需多言,在需要全天候运行的全球经济环境中,没有一家企业能够承受宕机,无论是计划的宕机(升级.维护和修复)还是突发的宕机(由于人为错误.处理故障.电源故障.甚至灾难事件).但许多企业都制订了在24到48小时内恢复核心应用的业务连续性计划.虽然数据丢失了24小时,但实现全面恢复需要数天或者数星期的时间.这些企业通常依赖后台和人工流程来保持业务的正常运行,直到系统恢复为止. 随着信息成为越来越重要的企业资产,许多企业都致力于最大限度地降低宕机风险和避免业务中断的潜在影响,从而影响

飞康CDP本地备份与异地容灾解决方案

飞康提供的虚拟化存储平台+CDP全面数据保护+异地容灾的解决方案,解决了首都师范大学数字校园建设中遇到的本地备份和异地容灾问题. 应用背景与需求 首都师范大学是一所综合性师范大学.为了加强学校信息化建设,集中力量建设数字化校园,早在2002年,学校就成立了数字校园建设中心,为首都师范大学2400名教职员工及超过28000名学生提供信息服务.数字校园建设中心全面覆盖了该大学的南.北两个校区,集中了学校关键性的教学.科研.管理等系统,拥有大量的关键数据,包括教学.科研.管理等文档以及音视频资料,而保

求异地容灾解决方案

问题描述 最近公司需要将现有业务,实现异地容灾,下面是需求:1.数据库数据能够实时(小于1分钟)同步,主备数据库双活:2.web文件夹里的文件实时(小于5分钟)同步:3.当主服务器数据库或者服务器系统出现问题,要在最短的时间内从服务器进行异地接管:4.接管只接管数据库和网站服务,不能接管IP,并且能手动.自动接管:5.主服务器恢复服务后,能够使备服务器恢复数据库数据和web文件到主服务器,并且数据恢复完毕后,主服务器进行接管.6.支持MSSQL.Mysql.Oracle,系统支持windows.