◆尹 涛 戴昭颖 闫 冬
数据库升级的风险与对策研究
◆尹 涛 戴昭颖 闫 冬
(首钢京唐钢铁联合有限责任公司 河北 063200)
数据库支撑整个业务系统的稳定运行,随着业务系统功能的不断增加,使得用户对于系统的依赖程度逐渐增加,系统的稳定直接影响到生产运行,对系统响应效率、系统稳定性的要求也在逐渐增加。随着Oracle 11G数据库的出现与成熟,新的数据库版本能够更好地对应用系统进行兼容,保证系统的稳定性。通过这次笔者公司应用系统数据库的全面升级,针对升级中面临的风险问题进行集中分析和研究,采用Oracle Goldengate的容灾技术,加速打补丁等相应的应对策略,实现了数据库的线下升级,减少了业务停机时间,有效降低了风险。通过制定详细的升级计划及步骤,风险应急预案,顺利地完成信息系统的数据库升级。
Oracle 10G;Oracle 11G;Goldengate的容灾技术;加速打补丁
数据库作为整个信息化系统的核心,组织、存储和管理着所有业务系统的数据,随着Oracle 11G版本的推出,新的版本在原有版本的基础上,更全面地提高用户服务水平、减少宕机时间以及更加有效地利用 IT资源,同时还增强全天候业务应用程序的性能、可伸缩性和安全性,利用真正应用测试(RAT)尽量降低更改的风险。利用管理自动化提高 DBA 效率,致力于显著简化和完全自动化 DBA 任务。此外,Oracle 11G还提供了大量显著的 Oracle Data Guard增强,包括可以在物理备用系统上运行实时查询用于报表和其他目的、可以通过将物理备用系统暂时转换为逻辑备用系统执行联机的、滚动的数据库升级,Oracle 11G的 OLTP表压缩通过更加高效地使用内存来缓存数据以及减少表扫描的 I/O提高了数据库性能利用 OLTP表压缩,可以利用最小的处理开销达到2到3倍的压缩比。
目前笔者公司从现有的Oracle 10G数据库升级到Oracle 11G数据库的整个过程,找出整个升级过程中的风险点及对策,可以解决数据库表内存溢出、操作系统升级、DP备份工具升级、应用系统频繁更新等带来的问题,这些问题都会导致业务系统的不稳定性。从原先的Oracle10G升级到Oracle 11G,可以保证数据的安全性和系统的稳定性,可以更好地支撑业务系统,保证生产业务有序进行。
针对公司这次信息化系统数据库的整体升级的过程,涉及到相关Oracle数据库的应用系统为39套核心业务系统,其中三级包含铁前、炼钢、热轧、冷轧、LIMS、仓储、计量、能源的开发、测试、生产等23套系统的数据库;四级包含ERP、BW、XI的开发、测试、生产等9套系统的数据库;二三级 integration中间件的7套系统的数据库。这些系统包含公司生产经营的各个方面,因此在升级前要对可能出现的情况进行分析,给出应对方案。升级过程中会存在数据丢失、业务操作不连续、停机时间较长导致对生产业务造成影响,造成生产工序、业务不能正常操作的风险,需要针对这些风险制定相应的风险应急预案,一旦升级出现问题,要提前启动应急预案,通知用户对部分业务进行系统外操作,后续补录等工作,保证对生产影响最小。
针对升级过程中出现的数据丢失、业务操作不连续的风险,生产相关的数据库分别对应增加Standby备用数据库,并采用先进的Goldengate同步技术进行主备数据同步,保证二者数据的高度一致,实现主备数据的无缝切换,同时备用数据库日常承担报表数据响应功能。GoldenGate是一种基于日志的数据复制软件技术,它通过解析源数据库的日志获得对象的增删改增量变化,再将这些改变以事务为单元应用到目标数据库。可实现亚秒级数据传输,同时采用数据库的内部机制有效保证事务的完整性。
Goldengate 数据同步技术能够在活动的生产端及备份端进行数据复制,秒一级的数据延迟,大交易量的数据复制,能在很大程度上确保主备两端数据的同步性及一致性,实现双机热备。在对其中一台数据库服务器进行升级时,系统5分钟内自动切换到备用系统,且系统运行稳定,不会对生产造成任何影响。如图1。
图1 GoldenGate数据同步原理
针对BW、ERP和XI系统用户操作量大,数据要求实时性高的问题,数据库升级对实际的业务操作影响非常大,经过和各部门沟通,明确单次停机窗口不能大于10小时的要求。在保证数据安全的前提下,经过在沙箱系统、开发系统和测试系统的演练,按照传统升级方案制定了初步的升级计划。该计划经过多次优化和压缩,都难以将整个升级过程控制在16个小时以内,不能满足各专业正常生产的要求。
为缩短升级期间的停机窗口,提升关键业务应用的持续可用性,经过多次测试,提出了对传统停机方案的优化方案。针对应用系统和操作系统信息,分析数据库的内部表结构,了解数据的分布情况。将与业务无关的数据清除,或者转储到文件系统,尽量的减少迁移过程中的数据量。同时,考虑数据库升级操作前需要打很多预先具备的补丁,升级至最新版本的话,可能需要打上几GB大小的补丁包。因此,加速打补丁是减少升级停机时间技术中很关键的一环。在这个步骤中,使用类似整体升级过程中所使用的方法,首先我们试着使必须执行的任务的数量和开销最小化,然后在试着加速那些剩余的必须执行的任务。如图2。
图2 合并补丁包原理
遵循升级过程中数据安全原则,保证业务数据在实施过程中的安全与完整,升级的每一步过程中都要做好复制和备份,避免数据丢失的风险,对业务造成不可估计的损失。
升级的过程中要保证生产不间断,遵循业务连续性的原则,在经过充分测试和培训的前提下,进行项目的相关操作,保证业务平稳运行。
系统必须停机的过程,必须反复讨论确认停机时间点,遵循生产系统最小停机时间原则,对业务运转的影响减少到最低,同时通过对项目计划的合理安排,减少开发需求的冻结时间。
数据库升级11G之前需要制定详细而周密的升级和测试计划,反复验证和测试11G数据库的各个阶段,保证不影响生产运行的前提下进行数据库升级。首先,为了确保测试和演练的严密性,实施前期需要分别搭建各个系统数据库升级测试的沙箱系统,需要搭建与生产环境一致的演练环境,保证硬件、操作系统、应用软件、数据以及周边结构保持与生产一致。在沙箱测试系统中进行升级演练,接口配合,完成后组织各模块相关业务功能测试。其次,进行测试和演练工作,主要包括几个方面内容:业务功能测试、系统集成测试、性能测试、容量与负载压力测试、升级前后对比测试、周全的数据备份方案、升级步骤测试、oracle11G数据库能力测试。最后,升级前检查软硬件环境,下载相应介质,进行相关补丁的检查及安装,做好操作系统备份和数据备份,数据文件的转移。升级方案先在系统开发系统实施、实施没有问题后在测试系统进行,在对生产系统进行升级之前,需要完成开发系统和测试系统进行升级操作。ERP系统涉及各个模块的业务,需要制定详细的测试计划,对数据库升级以后的测试系统进行标准事务码、自开发程序及报表测试、跨模块之间的集成测试,在系统内模拟月结测试,系统配置及请求传输测试和BW系统抽数测试,进行三四级之间集成测试和数据归档测试。只有将系统所有功能充分进行测试,才能确保在生产系统上进行升级操作,考虑到ERP系统对业务的重要影响,停机时间选在月度中旬,分两段时间停机保证每次停机时间对相关的业务工作影响最小。
在升级过程中,技术人员要结合业务人员开会进行开会讨论,对升级过程中停机节点和重点业务时间进行核对,需要与业务人员确定最终的停机点及停机时间。升级方案讨论完善确定后,由专业人员对方案进行评审,提出相关意见,并在沙箱测试系统中进行升级演练,接口配合,完成后组织各模块相关业务功能测试。由于四级系统数据传输及一致性要求,尽量缩短开发冻结周期,开发测试系统的升级在较短周期内完成,并按照测试、开发、生产系统的实施顺序进行,保证升级过程的严谨和充分验证。
本文主要是对信息化系统数据库升级的风险进行分析,并针对这些风险提出了基于GoldenGate、加速打补丁等相应应对策略。对于升级风险过程中的预估和评定,并针对问题提出相应对策,不仅有效解决了在升级过程中的各种风险,还为后续的数据库升级过程积累了丰富的实施经验。完成数据库版本升级,使得主要业务系统版本运行在目前主流的系统平台上,提高了公司业务的稳定运行能力。用户操作信息化系统时更方便快捷,提高了各业务部门对信息系统的认可度,进而提升生产效率。综合质量和生产环节,在确保生产能力的同时,节约人工成本,提升质量保证,最终提升公司整体市场竞争力。
公司信息化系统数据库升级历时7个月,截止目前,系统数据库已经稳定运行12个月,创造的直接经济效益达到820.2万元。并且提升公司信息化水平,让信息化系统与业务有效地结合起来,也锻炼公司的信息化队伍,提升信息化及运维人员的技术能力,在升级过程中形成的风险应急预案及操作手册也将成为企业的无形资产,对未来数据库升级和维护工作积累宝贵的经验。
[1]Edward Whalen,Jim, Czuprynski著;许向东,林绪嘉,刘炳林译.Oracle数据库升级、迁移和转换最佳实践[M].出版社:清华大学出版社,2017.
[2]张成.浅谈炼化企业MES系统Oracle数据库备份[J].电脑知识与技术,2011.
[3]盖国强.循序渐进Oracle-数据库管理、优化与备份恢复[M];北京:人民邮电出版社,2007.
[4]张自辉.Oracle数据库的备份方法和策略[J].吉首大学学报,2009.