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

本文主要是介绍Oracle 12.2 升级案例:云和恩墨助力某市人社核心系统升级迁移,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

某市人力资源和社会保障局属于政府机构,执行人力资源和社会保障的监督、管理、执行职能。其核心数据库系统经过多年使用运行,正面临着设备老旧、性能缓慢等突出问题。

为提高联网的实时业务交互和数据交换能力,为人社局的各个应用提供安全、可靠的网络环境,并使用和跟踪最新数据库技术,客户决定实现数据库升级的重大业务变更工作,经过多方评估,云和恩墨成为用户的服务供应商,为用户提供数据库升级迁移服务。

最终,通过精密规划、精确实施,云和恩墨为用户实现五小时零故障核心数据库Oracle 12.2大版本升级迁移,迁移总数据量达40T以上,并通过最佳实践确保了用户系统的稳定高效率运行!

面临挑战

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

  • 客户迁移前,数据库系统的硬件为IBM 780服务器,已连续运行多年,在迁移前半年内,连续出现过多次硬件损坏,I/O也一直接近于满负荷状态,性能瓶颈突出;

  • 客户的数据库软件为 Oracle 10g 版本,Oracle已停止对该版本的官方维护支持,对比当前的 12c 云数据库时代,客户版本明显滞后;

    根据下图所示,大家可以看到,自2018年开始,事实上Oracle 18c 已经登上了舞台,属于Oracle 12c的时代已经加速到来。

    f38276f4ec994bef28213863f908e719.png

  • 新项目需要将数据库进行升级迁移,需要迁移数据总量超过 40 TB;且需要将数据库版本由 10g 升级至 Oracle 最新的数据库版本,Oracle 12.2。

    海量数据跨越一个大版本的升级,再加上时间要求,对升级工作就带来了相当大的挑战

    9f925a3875434cca477591217ac84282.png

客户场景和解决方案

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

  • 在硬件方面,主机、网络、存储等全部重新采购,主机仍然采用小型机,全面更换,这样就有了一套独立的新环境。

  • 软件方面,新环境操作系统使用 AIX,同操作系统平台的迁移就简化了数据库的迁移工作。

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

0e52620acfbaa8c1a1a0dab356a951eb.png

正式割接时,将数据库版本先由原来的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 号错误,这是其中一个升级脚本遇到的:

810c4b745f50824ce6ab277bb5d06c0a.png

这是一个已知问题,根据 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),该文档中有详细的描述,大家可以参考。

相关阅读

动手为王 | Oracle 数据库跨版本升级迁移实践

积极拥抱互联网化 北京电信核心完成跨平台迁移

浙江移动完成国内最大规模的Oracle数据库升级

【云和恩墨业务介绍】之升级迁移服务

数据驱动,成就未来,云和恩墨,不负所托!

推荐阅读

安全稳健 - 全面保障城商行核心系统顺利升级

XTTS (Cross Platform Incremental Backup) 测试

IT基础架构变革在路上:青海移动的去“IE”之旅

从小型机到x86:四川电信核心数据库迁移

云和恩墨

数据驱动,成就未来。整合业界顶尖的技术与合作伙伴资源,围绕数据及相关领域,提供解决方案和专业服务。

IT基础架构

专业服务:云化(分布式)数据中心解决方案

支撑软件:分布式存储软件

数据架构

Oracle DB2 MySQL NoSQL

专项服务:混合架构 / 安全 / 容灾 / 优化 / 整合升级迁移

运维服务:运维服务  | 云化运维

人才培养:个人教育培训 | 在线教育

支撑软件:自动化运维软件 | 数据库监控软件

应用架构

专业服务:中间件 | 数据建模与模型优化 | SQL审核与优化

支撑软件:应用开发质量管控平台 

业务架构

数据治理 | 电子商务用户行业分析 | 数据资产运营

8b69fdce1637cf0b58a61a5229ff8adb.png

这篇关于Oracle 12.2 升级案例:云和恩墨助力某市人社核心系统升级迁移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/506722

相关文章

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固 通俗易懂版)

《MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固通俗易懂版)》本文主要讲解了MySQL中的多表查询,包括子查询、笛卡尔积、自连接、多表查询的实现方法以及多列子查询等,通过实际例子和操... 目录复合查询1. 回顾查询基本操作group by 分组having1. 显示部门号为10的部门名,员