【重点解析】美国签证系统故障背后相关的数据库问题
【事件背景】
近期,美国国务院负责审批旅游证件的全球资料库发生故障,令美国护照和签证工作出现严重的延误,可能让全球申领美国签证或美国护照的工作受到延误。
据知情人透露,美国签证系统的数据库升级是从10.2.0.3到10.2.0.5,运行在Windows 2003上面。但无论是数据库还是操作系统,都已经不在版本的服务周期里面(下面有展示)。更糟糕的是,他们在做升级操作之前从来都没有在备库演练过,从而造成了系统宕机。这是一个非常大的升级数据库的问题。
【相关分析】
这次的故障案例,对计划进行数据库升级的国内企业也是个提醒。尤其对于超大规模的,且影响范围很大的数据库升级来说,做好充分的准备是必不可少的。借此签证系统故障事件,谈一下数据库系统升级策略以及一些注意事项。
下图为Oracle 10g、11g、12c版本数据库的服务周期,供参考:
Oracle数据库产品当前的支持策略和周期
(注意图示中红色代表版本序列,ES为扩展支持期,有免费期和付费期(但是前提是必须有买基本服务才能进入扩展支持期),绿色代表小版本Patch信息,而每个Patch的终点即是该版本的最后支持期,过了最后支持期将不再提供服务支持。)
升级策略的主要内容分为四部分:升级方法、时间安排、应用测试、如何回退。
升级方法
根据客户的数据库环境不同,需要制定对应的升级方案。升级的常规方案有以下3种:
1.常规的导入导出,EXP/IMP
2.DataGuard(Redo Apply、SQL Apply)
3.Oracle GoldenGate
各个方案的优劣势:
优势
方案1:EXP/IMP的操作简单,不限于任何平台和版本。
方案2:数据一致性高,升级后无需校验。在备库升级,失败后回退较方便。
方案3:可跨平台,跨版本升级。
劣势
方案1:操作时间会很长。例如数TB的数据导入导出需要多久,用户是否是可以接受的。
方案2:DG对环境要求比较严格,例如数据库版本、操作系统版本、硬件结构都需要一致。
方案3:存在较多Bug,存在数据不一致的可能,存在对象状态不一致的可能。
时间安排
在时间安排上,精细化管理项目流程,其中项目流程模块涉及到:项目调研、软件安装、流程测试、应用测试、文档总结、正式升级、升级保障。对于不同的项目模块,要考虑好人天的规划。如下图所示:
时间规划
应用测试
应用测试这一章节是非常重要的环节,在升级(迁移,上线)前一定要做好严格的测试工作,这是检测应用切换过去是否还可以稳定运行的重要环节。
应用测试分为性能测试,功能测试,压力测试。性能测试里面很重要的一个环节叫做SPA测试。
(SPA:SQL Performance Analyzer,可用于预测和防止由于数据库环境改变,影响了SQL执行计划的结构而引起的潜在性能问题。)
以下是大体的测试步骤:
应用测试
(具体的SPA步骤,请点击原文链接阅读)
回退方案
何时需要回退?
1.升级(迁移)时
在升级过程中,例如出现操作时间超过了预期、脚本运行异常、回归测试失败等,需要做回退。
2.升级(迁移)后
在升级之后的正式运行中,出现例如数据库性能降低,数据库宕机等,需要做回退。(据网友透露:这次就是因为签证系统升级之后,没有相对应的回退方案而导致故障处理的延迟。)
如何选择回退方案 ?
1.迁移时失败,直接切回原环境。
2.运行中故障
EXP/IMP数据回迁
所有数据入库时同时更新两套库
Oracle GlodenGate数据同步
升级的7大注意事项
1.在计划调研过程中,一定要考虑周全,在项目开始前预先思考方案与可能遇到的问题,并大量测试。
2.正式迁移升级前,形成完整的文档,编写完整的升级脚本,确保升级的快速、稳定。
3.迁移与升级的测试一定要反复操作,确保整个流程确定无疑义,详细记录所有操作过程中的所有错误。
4.升级(迁移)的项目涉及到网络,存储,交换机,主机,开发人员,维护人员,对于项目管理来说也是一个挑战。对于每个环节的精细化时间管理也是必不可少的。
5.应用测试一定要充分而且具体,需要完全覆盖所有业务应用,测试所有的业务功能点,不仅仅只限于点点按钮。
6.详细的回退方案能减少故障处理的时间。
7.即便做好了充足的准备,在关键时刻,也要尽量调集各种资源备用,这样在出现异常突发事件时,也才能做到快速响应,影响最小化。
数据库升级是一个很大很重要的项目,无论在技术、项目管理,人员储备等各方面都是很重要的,我们都应该重视每一个环节。如果美国签证系统在升级前,也能做好这一系列充分的准备,并经过严格的测试,那么,像这样的故障理论上是不会发生的。
云和恩墨对数据库升级(迁移)项目中,多次按照这套成熟的升级流程,实现了“快速、高效、无缝、透明”的数据库升级。我们为用户的数据保驾护航。
云和恩墨
国内数据服务行业领导者
整合·优化·咨询
联系我们
电话:010-59003186-8019
邮件:marketing@enmotech.com
配图来源于网络