Chinaunix首页 | 论坛 | 博客
  • 博客访问: 219576
  • 博文数量: 73
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 407
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-18 20:28
文章分类
文章存档

2014年(73)

分类: DB2/Informix

2014-12-08 10:54:14

近年来随着金融行业的改革和发展,城商行等股份制银行的崛起,对这些区域性银行的业务模式及业务的连续性提出了重大的挑战。特别是随着互联网金融类公司的快速崛起、利率市场化及网商银行的出现,对传统的区域性银行的业务模式、服务手段都提出了更高的要求。这就要求作为支持传统金融行业的核心系统,能够快速变化、不断完善,以应对频繁变化的业务需求,与此同时还需要核心系统具备业务的连续运行能力。

而恰恰业务需求的快速变化又对信息系统提出了如下挑战:

1) 业务类型及新的需求的不断增加加剧了对核心应用系统的频繁更改

2) 业务形态的多样性导致核心系统必须具备7*24在线服务的能力,如网上银行、手机银行、微信银行及直销银行等新应用系统的投产及融合
3)业务的快速发展随之而来的是数据量的快速增长

以上这些挑战都要求银行核心信息系统在不断变化中,还要保持业务的连续性。根据监管的要求并随着IT系统灾难备份和业务可持续性设施的逐步建设、完善。因非计划宕机影响业务可持续性的几率逐渐降低而计划内停机成为影响业务可持续性的关键因素。所以目前核心应用系统的变更已经成为影响业务连续性的最重要的因素。
这也正是本文将要着重探讨的一个话题:即如何减少因计划内停机的时间来提高银行业务系统的连续性。通过对核心应用系统变更的进一步分析发现,由于大量的应用变更涉及到数据类型的更改,尤其是涉及表结构的更改、与数据库相连程序的重新绑定等工作,而数据库变更在整个变更时间中占据了最多的部分。所以如何能够通过优化减少数据库操作中的时间,减少关键路径上作业的运行时间,增加并发,减少冲突成为降低应用变更时间,提高业务可连续性的关键因素。

下面是我能想到的关于如何提高金融行业的IT系统业务连续性的几点思路,以供参考,若有更好的建议和意见欢迎互动:

.表结构变更操作

DDL操作大多是应用变更的第一步,相关的数据迁移,程序绑定等等操作都基于 DDL 变更的完成,因此它是关键路径上的关键一步。所以首先我们要设法提高DDL操作效率来切实保证业务系统的连续性,具体优化建议包括如下几点:

1) 新建表提前发版,对于新加表在应用变更开始之前就提前创建。新建表与现有应用系统一般没有关联,因此不必占用宝贵的变更窗口时间,可以提前创建完成;

2)24小时表先发程序后发表结构,对于24小时表结构变更可以尝试先发程序后发表结构的方法而非按照既定模式先发表结构再发程序的方式以减少业务中断时间;

3) 并行发版,将所有需要进行同步发版的各个线条的系统按照一定的原则,在不影响数据的完整性和一致性的前提下实施并行操作以提高并行度,减少因发版导致业务中断的时间;

4) 索引延迟重建,CREATE INDEX 时使用DEFER YES 的参数,创建完成后利用 REBUID INDEX utility 来实现INDEX的最终创建;

5) 使用alter table方式发版,因业务逻辑的问题银行核心数据库的表结构变更多采用重建表的方式变更表结构,这样导致在数据库发版过程中数据的备份与恢复数据占用了大部分时间,所以可以探讨不使用重建表的方式发版的可能性;

5)使用import方式恢复数据,当前核心使用insert into tabname select column from tabname_bak操作恢复变更后表的数据,基于现实情况可以尝试核心数据库变更时用import恢复数据的方式,来缩小因数据的恢复导致业务中断的时间窗口。

. 数据迁移

数据备份和迁移是应用变更中另一比较耗时的步骤。加快其性能的建议主要有2点:

1) 通过开启分区内的并行性运行BACKUP/UNLOAD/LOAD等作业,尽量提高它的并行度以减少数据备份和迁移的时间;

2) 通过使用V10版本的新工具ingest加速数据的备份、迁移过程并保证迁移过程中系统的可用性、并发性能。

. 统计信息更新、同步
数据迁移完成后,传统的做法是运行runstats utility,收集数据分布的相关信息,然后bind packages。但当数据量比较大的时候,runstats运行的时间会变得非常漫长。
解决方法:事先将发版验证系统中的统计信息利用db2look工具备份后手工同步到生产系统中,以此节省掉runstats的时间,从而大大降低了因统计信息更新而导致的业务中断的时间,从而大约可以节省三分之的发版时间。

. 静态程序包的绑定

bind/rebind packages是新程序或变更程序投产前的最后一个步骤,bind/rebind的过程涉及到对catalogdirectory及plan table等多个系统表的读取或更新,因此主要优化建议有如下2条:

1) 应用变更提前reorg plan_table, sysibm.syspackage等表以提高其读取或更改时的性能;

2) 先bind/rebind联机程序再bind/rebind批量程序。客户业务开门营业往往指的是运行基于cics的联机程序,因此可先bind/rebind联机程序保证业务开门,来减少对正常业务的影响,提升用户的体验。
以上完!如有好的建议和意见请联系我们~~


阅读(1848) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~