前言:
而今我们对“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 实施过程