
为什么采用两地三中心GDPS 双活解决方案?
澄清一个概念,如果我们仅仅是指两地三中心GDPS灾备解决方案的话,那么早在七-八年前国内很多大行就已经做到了这一点,具体的实现多是通过同城两个中心的GDPS PPRC解决方案联合异城两个中心的GDPS z/OS Global Mirror或者GDPS Global Mirror解决方案.我们这里提到的两地三中心GDPS双活解决方案是近三年来很火的一个专题,而且因为今年在某一大行的成功实施,使得这个主题无数次被提及,那么为什么要采用两地三中心GDPS 双活解决方案呢?哪些场景下可以用到这个解决方案?
想来大家都应该看到过:银行营业网点或者银行官网上会发出因为某系统升级或者故障从凌晨几点到几点无法做交易的消息. 事实上无论是计划内的应用,数据库,中间件,系统和硬件升级维护,或者计划外的系统综合休(SYSPLEX)级的故障,还是突如其来的火灾,地震,水灾,以及最要命的恐怖袭击,都有可能造成银行系统的不可用,进而造成业务的中断.各大行都迫切希望减少计划内和计划外停机的业务不可用时间,最好能够在面对各种极端情况时,依然能够保证业务的持续可用性,让用户感觉不到有任何故障存在,故两地三中心GDPS 双活业务持续可用解决方案应运而生.该解决方案在不同城市的两个数据中心间沿用已经存在的GDPS z/OS Global Mirror灾备解决方案,其核心则在于同城两个数据中心间的GDPS双活方案,从而使得关键应用运行于同城的任一个数据中心,在这两个数据中心之间做到自如地站点级别切换,一个站点的应用故障不会影响到另外一个站点的应用 *** 作.
GDPS双活的英文全称是Geographically Dispersed Parallel Sysplex Active-Active,即地理分散并行系统综合体双活解决方案. 该解决方案由两个分布于不同数据中心的并行系统综合体组成,这两个数据中心的功能分布是1:1模式,同时对外提供服务,数据中心间实现负载均衡,任何一个中心具备100%生产支持能力,具备无缝业务切换能力,减少应用停机时间,从而保证业务的持续可用性.
说到GDPS 双活解决方案的适用场景,我们需要明确GDPS双活解决方案是一个新生的且持续发展的解决方案,总共分成三个阶段,第一阶段为GDPS Active-Standby, 第二阶段为 GDPS Active-Query, 第三阶段为 GDPS Active-Active, 当前处于第二个阶段.
在当前GDPS Active-Query通常的配置中,两个Active 的站点A和B,站点A是生产站点,主要用于运行核心业务,包含OLTP(联机事务处理) 和批量作业, 站点B则只用于运行只读的Query(查询),并且随时准备着运行OLTP和批量作业 如果在站点B上监控到端到端的延时超过预定义的阈值,那么Query能够自动地Switch到站点A去做运行,当然这里我们可以在一分钟内通过SA REXX从监控表里抽几次样,如果几次都超过的话,再做切换,会更为合适.对于站点A而言,如果行里要对站点A的生产系统进行升级和改造,以前在行里通常需要请求三到五个小时的停机时间窗口(遇到问题的话,可能会更久),在这个过程中,站点A是无法对外界提供服务的,但是现在采用了GDPS 双活方案后,因为站点 B可以无缝接管站点A的业务,所以可以通过GDPS A-A作站点级切换,把OLTP Workload 定向到站点B,由B站点对外界提供业务,此时所有的OLTP和Query Workload都运行在了站点B,整个过程对于客户而言,都是透明的.然后对站点A进行升级,可以是升级应用程序,硬件,DB2z版本,甚至z/OS, 到升级完成后,在B站点停OLTP Workload,反向同步站点B改变的数据到站点A, 再把OLTP Workload回切到站点A 整个过程中,站点切换耗时大概2分钟左右,回切基本上是相近时间,在站点B停OLTP Workload并反向同步数据耗时大概是10分钟,加到一起整个升级过程把对外界不能提供业务的时间控制在了十分钟的级别,与原有的三至五个小时相比有了巨大的改进
方法如下
1、首先打开Excel表格,并在表格单元格中输入好信息。
2、鼠标选中C2单元格,并输入公式:=TEXT(B2-A2,"h小时m分钟s秒"),按回车键。
3、然后鼠标指针放在C2单元格右下角,待鼠标指针变成“+”符号,按住鼠标左键向下拖动。
4、最后浏览下设置的效果,如下图所示时间差就计算出来了。
常用函数
1、数据库函数
当需要分析数据清单中的数值是否符合特定条件时,可以使用数据库工作表函数。
2、日期与时间函数
通过日期与时间函数,可以在公式中分析和处理日期值和时间值。
3、工程函数
工程工作表函数用于工程分析。这类函数中的大多数可分为三种类型:对复数进行处理的函数、在不同的数字系统(如十进制系统、十六进制系统)间进行数值转换的函数、在不同的度量系统中进行数值转换的函数。
最好的办法就是用DB_LINK 加物化视图来实现数据同步。
当然还有像 ORACLE STREAM 和 GLODEN GATE来实现同步,不过这两个用在这里有点大材小用了!
一样。在高德地图上显示的往返路线一样距离就是相同。高德是中国领先的数字地图内容、导航和位置服务解决方案提供商。拥有导航电子地图甲级测绘资质和互联网地图服务甲级测绘资质,其优质的电子地图数据库成为公司的核心竞争力。
我的理解是不能同时处理同一条数据。车票例,应当是谁先处理谁成功。
我们简单举个例子:
车票这个对象,我们简单分析一下属性
车票表
编号 车票号、卖否、卖出时间、售票员
其中编号为主键
这张表中,卖否的默认值为 :否
方案一
update 车票表 set 车票号='车票号'+'一个标志', 卖否='是',卖出时间=getdate(),售票员='张三'
where 车票号='车票号' and 编号='编号'
双方同时卖票也会有update先后之分,这样就会造成谁先update谁成功。
update后,让系统返回一个值能说明是否update成功,即可免去两地打印同一张票的现象了。
方案二
添加一张表
已卖车票表
结构需要与车票表相同或根据需求增加字段
在车票表上做一个update的触发器
当update车票表的 卖否从'否' 变成'是' 后,将该条记录插入 已卖车票表中,并删除该条记录。
车票表删除了记录当然其他人也就没办法去update了。
另外,你也需要研究一下数据库的锁类型。
以上就是关于为什么采用两地三中心GDPS 双活解决方案全部的内容,包括:为什么采用两地三中心GDPS 双活解决方案、怎么计算两地时间差、求助,如何在两个ORACLE数据库中,同步一个结构相同的表的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)