现在银行都流行做24小时联机交易,备份是个大问题。我做过这方面的事,有过一些血的教训与经验,拿出来与大家分享,希望对hanyu能有帮助。
首先,SAVE-WHILE-ACTIVE备份不可靠,不建议使用,原因有三:
1. SAVE-WHILE-ACTIVE有可能无法找到CHECKPOINT而导致备份超时失败。交易繁忙时,一时无法找到CHECKPOINT,系统缺省等待120秒,超过此时间,备份失败。
2. 应用可能报错。即使找到CHECKPOINT,备份作业也会对目标进行短时的锁定。当交易正巧发生时,会与交易应用发生锁冲突。如果交易程序不够健壮,会导致应用中止,这是个严重的运营事故隐患。
3. 备份数据无效。当应用相关的多个PF是相关联的时,由于对这些文件的备份有先后,会导致数据关联失败,这种数据即使备份下来也是无效的。
因此,对于24小时联机交易的系统需要考虑其它的备份方案。大体有以下两种:
方案一:利用热备份数据。银行等金融行业对数据的可用性以及业务的可持续性有着较高的要求,所以一般银行都有数据热备份系统,如MIMIX热备份。对备份系统的数据进行备份不会与生产系统的交易业务产生冲突。这有实际的案例可循且效果很好。
优点:方案操作简单,有实际案例
缺点:投入相对大点,需要有两套AS/400,以及购买MIMIX热备软件
方案二:利用AS/400的Journal功能。Journal实时记录了PF文件记录级的更新。通过Journal的前滚与后滚功能可以很方便地将数据恢复到你指定的时间点。方法如下:
数据备份操作:
1. 创建Journal与Journal Receiver;
2. 使用命令STRJRNPF启动需要备份的数据文件的Journal;
3. 离线备份一套数据,作为将来恢复的启始数据
4. 备份Journal;
5. 每日备份离线的Journal Receiver
数据恢复操作:
1. 恢复Journal与Journal Receiver
2. 恢复启始数据;
3. 使用Journal的后滚功能,将数据恢复到你指定的时间点即可。
优点:投资省
缺点:操作相对复杂,需要有一定的技术准备
理论可行,测试通过,尚无实际案例。
qingzhou 回复于:2004-03-18 13:28:30 | ||||||||||||||||||||||
说句很中肯的话:
感觉楼主水平是不低,但如果能够谦虚一点,在AS/400领域进步会更快些,须知山外有山、人外有人。。。 | ||||||||||||||||||||||
fh2001 回复于:2004-03-18 13:42:56 | ||||||||||||||||||||||
[quote:6be4f2b9bd="qingzhou"]说句很中肯的话:
感觉楼主水平是不低,但如果能够谦虚一点,在AS/400领域进步会更快些,须知山外有山、人外有人。。。[/quote:6be4f2b9bd] 不低之称太过奖了,自已反觉还真是不高,业内高手如林,偶也只是知些皮毛而已。感觉网上AS/400像样的论坛太少了,这儿挺有气氛,要向大家多多学习。初来乍到,想拿出点见面礼而已,不想被误解。 :em16: | ||||||||||||||||||||||
fzrxh 回复于:2004-03-18 13:59:13 | ||||||||||||||||||||||
还是支持你,文章高,希望多分享 | ||||||||||||||||||||||
qingzhou 回复于:2004-03-18 14:01:26 | ||||||||||||||||||||||
这边的学习气氛比较浓,大家也都比较热心,也不存在勾心斗角的局面,因为大家都是陌生的朋友,但是不缺乏高手。。。
你水平是很不错,回答帖子语气也很自信,期待能够帮助大家实质性的解决问题。。。 | ||||||||||||||||||||||
zzzddd 回复于:2004-03-18 14:44:09 | ||||||||||||||||||||||
哪里看楼主不谦虚了?? | ||||||||||||||||||||||
hanyu 回复于:2004-03-18 17:11:27 | ||||||||||||||||||||||
感谢各位兄弟!
抱歉没有说清楚,项目目标是准24小时银行,停机时间控制在5分钟内。 我这边正在准备系统改造方案,联机备份整个生产库也是方案之一。 根据目前对联机备份的测试结果来看,对于SAVACT(*SYSDFN)方式是会导致备份的文件分别到达不同的同步点,导致恢复之后需要结合JRN手工下处理,不太现实。 对于SAVACT(*SYNCLIB*LIB)两种方式对于备份单个库区别不大,都是首先对库中每个目标加*SHRNUP锁,然后同步点开始,如果相关作业处于事务处理中,会被调度同时到达事务边界,然后同步点完成,释放目标锁。预备采用这种方案,联机备份前停掉联机服务,联机备份同步点完成后再开启服务,目前同步点完成已经优化到两分钟,想把时间控制在半分钟以内。这种方式应该是不存在锁冲突的,不知道有没有应用的实例。 我这用的是OMS双机,fh2001 提的方案一也考虑过,关键在于生产库需要是一个完整的备份,也就需要在生产机一旦开始日切,日切前生产库所有更新都需要发到备机,然后停止OMS的读日志或发送数据,备机开始备份目标机同步的数据库,备份完成后再追同步数据。同样需要有先例才能采用此方案。 方案二属于增量在线备份,一旦距离初始备份时间太久,需要恢复的磁带太多,中间任何磁带丢失。。。。。因为数据量太大,管理的难度太大。 谢谢! 希望大家能够交流一下大家的备份策略 | ||||||||||||||||||||||
fh2001 回复于:2004-03-18 18:01:53 | ||||||||||||||||||||||
hanyu大大,原来可以停5分钟? :shock: 这样的话SAVE-WHILE-ACTIVE确实可以考虑一下。 :em14:
不过你们真用了OMS的话,最佳方案还是方案一。MIMIX与OMS是同类产品,两者原理一样,功能与性能类似。用MIMIX走方案一的备份方案在一个巨型国有银行已有成功案例了,我想用OMS一样可以走得通的,让IBM多动动脑筋。 最主要的是这种方案可以实现真正的24小时联机交易,管理起来特别简单。已用了OMS,几乎没有再投入,不用方案一太可惜了。 :em13: | ||||||||||||||||||||||
hanyu 回复于:2004-03-18 21:11:44 | ||||||||||||||||||||||
[quote:d6edc31687="fh2001"]
用MIMIX走方案一的备份方案在一个巨型国有银行已有成功案例了..........[/quote:d6edc31687] 我来猜一下是那个行 目前用400做集中帐务系统的只有招商、中信、广发,其中只有中信算是国有银行,但也还不是巨型国有银行。工行、中行已经集中到S390了,莫非fh2001老兄是说的某个省建行或是省农行。 ps 找到一个用Save-while-active 的24小时银行,也是建行系统内的,到底还是老大哥。 | ||||||||||||||||||||||
居士 回复于:2004-03-19 09:00:38 | ||||||||||||||||||||||
我认为Save-while-active备份效果一点都不好,出问题的概率极其高,因此IBM有个BRMS软件来弥补这个功能。
对于大型的数据应用备份,现在感觉还是MIMIX和OMS比较好一点,虽然市场上还有些别的类似软件,但是没有多少大的成功案例可询,也还是不放心。 | ||||||||||||||||||||||
qingzhou 回复于:2004-03-19 09:35:31 | ||||||||||||||||||||||
1、剖析一下MIMIX、OMS双机热备软件,其原理实质是以数据库文件的日志功能为基础,不过热备厂商还为自己的商业软件专门定做了特殊的通讯线路,将工作机的数据以日志方式传到备份机上保存或进行数据同步。(可参考原理图)
2、hanyu所说“ps 找到一个用Save-while-active 的24小时银行,也是建行系统内的。。。 ” 我想采用Save-while-active 备份机制也并不是完全不行,建行在国内来说也是一个不小的银行,他们的上层管理人员当初在制订备份策略时应该不会比我们还笨,否则建行我想早就毁在数据备份策略上了。。。
|