龙空技术网

支付系统数据库高可用建设方案

老猿外 555

前言:

而今我们对“oracle fal_server”大概比较看重,小伙伴们都想要知道一些“oracle fal_server”的相关内容。那么小编同时在网上搜集了一些关于“oracle fal_server””的相关知识,希望我们能喜欢,同学们一起来学习一下吧!

1 概述1.1 目的

1、 保证核心交易系统的可用性

2、 提升交易系统的用户体验

1.2 建设思路

1、 根据业务拆分数据库

2、 根据系统特征建立多系统

3、 使用OracleDG实现数据库数据同步

1.3 名词和术语


2 数据库部署图2.1 部署图


2.1 分库说明

从系统用途的角度分库,主要解决主/次业务分离和备库数据准备。

从系统上分为:

主库:对应主业务系统,读写

备库:或者应急库,对应备用业务系统,读写

查询库:对应订单查询/对账单/报表等业务系统,只读

2.2 主从库的关系转换

如上图,当前环境下的主库为:业务库1和业务库2组成的RAC集群,切换后,由业务库3和业务库4组成的RAC集群将变为主库,其对应的同步关系也跟着变化;

同步1和同步2:数据备份方向从主库到备库和查询库,主库和备库是逻辑关系,非物理关系,切换后对应的物理服务器的角色会同步变化。

2.3 备选方案

使用备库充当查询库,不足的是,这种方案下不能按照只读的查询系统要求建设索引(多索引影响业务库的性能)。

3 数据库拆分

拆库的目的是解决数据同步的问题,根据需要同步的数据量和数据的实时性要求将数据库拆分为:

1、 客户库,包含客户信息和账户相关信息,同步数据量小、实时性要求高

2、 交易库,所有交易相关信息,同步数据量大,实时性要求不高

3、 运营库,所有其他的信息全部存放在本库中,数据量小,实时性要求不高

4 同步4.1 备库首次上线数据同步

1、 全量Clone主库到备库,完成创建备库

2、 建立主库/备库为DG的Primary Database和Standby Database

主库后续的数据由Oracle完成同步,具体参考下面同步1介绍。

4.2 同步1(从主库到从库)1.2.1 客户库同步

客户库特点:

Ø 数据量小(相对)

Ø 数据准确性要求高(记账业务)

Ø 异步记账记账

采用OracleDG的“最大可用性”特征配置同步;备库使用“Physical Standby”进行数据恢复,确保数据完全一致。

4.2.2 交易库同步

交易库特点:

Ø 数据量大

Ø 性能要求高

采用OracleDG的“最大性能”特征配置同步,备库使用“Logical Standby”恢复数据

4.2.3 运营库同步

数据量小,变化频率也小,采用OracleDG的“最大性能”特征配置同步,备库使用“Logical Standby”恢复数据

4.3 同步2(从主库到查询库)

查询库的数据特征:

Ø 查询条件多,索引构建与交易系统存在较大差别

Ø 部分数据需要处理后才能用于查询系统(如敏感信息)

Ø 交易库和查询库需要保存的数据范围不一致(交易库中保存1个月的数据即可,查询库则需要保存更长时间的数据)

采用Oracle Stream技术同步,有选择性的同步交易、客户数据等,甚至可以构建异构的查询数据库。

4.4 同步异常处理

【使用Archive Gap技术】

配置备库的FAL_CLIENT和FAL_SERVER参数,当备库发生同步异常时可以自动补入缺口数据。

【核算确认】

当系统切换后,通过核算发现数据差别。

5 切换

当前主库发生故障时,需要启用备用系统时切换;切换后主备系统角色对调,原来主库变为备库,原来的备库转为主库。

切换过程:

1、 停止主库交易

2、 数据库切换,主备系统角色对调

3、 启用备用系统,业务接入备用系统,原备用系统变为主系统(系统切换详细参考“EPSP系统高可用切换方案”),备库变为主库

目标,通过脚本等,实现一键切换。

(实施过程待DBA补充,本人有电子书一本可供实施参考《大话Oracle RAC:集群、高可用、备份和恢复》)

6 验证6.1 主备库切换验证

验证内容:

1、 切换操作,尽量做到一键切换

2、 切换时长,即业务停用时长,尽可能短(暂无标准)。

6.2 数据一致性验证

包含问题:

Ø 切换前,主库的数据是否全部同步到备库?它决定这同步操作的时机。

Ø 数据库切换后,备用系统业务启动前,如何校验原来的主备库数据是否一致?这决定着备用业务系统启动时机。

数据一致性重点关注的内容:账户数据,便于在后面切换系统后能够保证代付过程数据正确。

6.2.1 使用Oracle自带工具完成数据验证

参考:

6.2.2 手动编写验证工具

主库:切换前的主库,备库:切换前的备库

操作步骤如下:

1、 从主库中导出账户数据,最近24小时内有变动的账户的数据,如下SQL:select a.id,a.customercode,a.availablebalance,a.floatbalance,a.frozenbalance,a.updatedatetime from acc_account a where a.updatedatetime > sysdate - 1 order by a.updatedatetime desc

2、 将上述导出数据,导入到备库,并与备库数据进行比对,有差错的商户标记出来

3、 对于差错商户,禁止出金业务(业务改造)

根据ID比较,性能应该比较快,当前查的是最近1天的数据,范围可以继续缩小,例如:2分钟;

【异常商户处理过程】

1、 触发商户风控,禁止提现、退款等出金操作

2、 通知核算处理

3、 核算完成后,恢复商户出金权力

7 网络评估

主备库部署在不同网络环境下时,数据同步消耗的网络带宽评估。

TPS与网络资源消耗关系:

8 实施过程


标签: #oracle fal_server #oracledg备库恢复