Oracle 12.2 升级案例:云和恩墨助力某市人社核心系统升级迁移

    1,280
某市人力资源和社会保障局属于政府机构,执行人力资源和社会保障的监督、管理、执行职能。其核心数据库系统经过多年使用运行,正面临着设备老旧、性能缓慢等突出问题。为提高联网的实时业务交互和数据交换能力,为人社局的各个应用提供安全、可靠的网络环境,并使用和跟踪最新数据库技术,客户决定实现数据库升级的重大业务变更工作,经过多方评估,云和恩墨成为用户的服务供应商,为用户提供数据库升级迁移服务。最终,通过精密规划、精确实施,云和恩墨为用户实现五小时零故障核心数据库Oracle 12.2大版本升级迁移,迁移总数据量达40T以上,并通过最佳实践确保了用户系统的稳定高效率运行!

面临挑战

在本项目实施之前,用户面临的挑战包括硬件老化、性能低下、故障频繁等:

    • 客户迁移前,数据库系统的硬件为IBM 780服务器,已连续运行多年,在迁移前半年内,连续出现过多次硬件损坏,I/O也一直接近于满负荷状态,性能瓶颈突出;
      • 客户的数据库软件为 Oracle 10g 版本,Oracle已停止对该版本的官方维护支持,对比当前的 12c 云数据库时代,客户版本明显滞后;根据下图所示,大家可以看到,自2018年开始,事实上Oracle 18c 已经登上了舞台,属于Oracle 12c的时代已经加速到来。
    • 新项目需要将数据库进行升级迁移,需要迁移数据总量超过 40 TB;且需要将数据库版本由 10g 升级至 Oracle 最新的数据库版本,Oracle 12.2。海量数据跨越一个大版本的升级,再加上时间要求,对升级工作就带来了相当大的挑战。

 

客户场景和解决方案

 

用户的场景决定了迁移的方案和时间。对于本案例来说,这也是核心要素。

    • 在硬件方面,主机、网络、存储等全部重新采购,主机仍然采用小型机,全面更换,这样就有了一套独立的新环境。
      • 软件方面,新环境操作系统使用 AIX,同操作系统平台的迁移就简化了数据库的迁移工作。

 

 

数据迁移,可以通过搭建 DataGuard 同步到新服务器:


正式割接时,将数据库版本先由原来的10.2.0.4升到11.2.0.4,再由11.2.0.4升级为12.2,然后将非CDB的数据库转化CDB架构。

实施步骤

 

完善的实施步骤,严谨的测试过程,是项目成功的有力保障,为此云和恩墨经过详细的设计、测试验证、最终实施了成功的迁移过程,以下的实践步骤供大家参考:
1. 迁移环境调研数据库当前环境调研;数据库遗留问题汇总梳理以及新平台数据库的架构设计、版本选型、补丁实施以及调试等工作。
2. 迁移计划及实施方案输出
根据前期数据库调研情况并结合客户实际的硬件条件现状,制定合理的迁移升级方案,并制定完善的回退方案,以确保整个核心系统的可用性。
3. 测试环境搭建及测试
测试环境搭建,测试环境性能测试,Orion测试,SPA性能测试,迁移升级方案可行性验证。
4. 正式环境搭建及验证测试
数据库功能测试,数据库压力测试,正式环境的迁移方案演练,以及配合应用进行业务应用的功能验证。
5. 迁移实施和现场保障
完成客户核心生产库所有数据的迁移工作。派驻公司内ACE专家,OCM资深工程师,提供至少两人现场保障服务,解决处理突发故障,兜底保障数据安全以及应用的正常运行。
6. GoldenGate版本升级
现有GoldenGae版本不支持12C数据库,需做版本升级。
7. Active DataGuard搭建
数据库迁移完成后,待核心生产库运行稳定后,协助搭建核心生产库的Active DataGuard。
8. 质保服务
自项目实施之后,质保期三个月,为用户提供质量保障。

关键点分享

在这样一个大规模的数据库案例实施中,尤其是业内领先的新版本升级,不可避免会遇到一些已知和未知的问题,在实践中需要快速处理、规避,以实现实施控制。在12.2的升级中,你可能遇到 ORA-01722 号错误,这是其中一个升级脚本遇到的:

这是一个已知问题,根据 Oracle Mos文档 Upgrade to 12.2 Fails with Error:”ORA-01722: Invalid number : NONUPGRADED_TABLEDATA” (文档 ID 2279497.1) 的描述,可以通过如下的方式来解决:

1

2

3

4

5

6

7

set serveroutput on

@?/rdbms/admin/catuptabdata.sql

@?/rdbms/admin/utluptabdata.sql

execute dbms_preup.run_fixup_and_report(‘INVALID_SYS_TABLEDATA’);

execute dbms_preup.run_fixup_and_report(‘INVALID_USR_TABLEDATA’);

set serveroutput off

在执行 PDB 插入到 CDB 时,有一个重要的步骤: exec dbms_pdb.sync_pdb() ,这个步骤如果疏漏或出现错误会导致pdb的信息与cdb的信息不一致,数据库会将pdb置于受限模式 (“OPTION WARNING Database option mismatch: PDB installed version NULL” in PDB_PLUG_IN_VIOLATIONS (文档 ID 2020172.1),该文档中有详细的描述,大家可以参考。

    本文作者:苏傻了 责任编辑:牛小眸 本文来源:牛透社
声明:本文由入驻牛透社的作者撰写,观点仅代表作者本人,绝不代表牛透社赞同其观点或证实其描述。
  • 苏傻了
    未认证
  • 2篇

    文章总数

    2326

    文章总浏览数

意见反馈
返回顶部