生产实战:oracle ADG端 dbua静默升级11g到19c全过程

Oracle ADG端dbua静默升级11g到19c实战

多年从事IT数据库一线工程师行业,记录日常工作中数据库知识及一些生产故障案例,不废话。如有不对请指正,欢迎关注小编:

微信:xh870545795   CSDN:dba_notes

公众号:DB咖啡逗


一.背景

     某金融客户一套11.2.0.3的rac由于服务器老旧,需要对整体的服务器和存储进行更换,考虑到数据库版本和操作系统版本都相对比较老旧,在更换服务器和存储的同时,对操作系统和数据库也都进行升级,具体情况如下:

现有版本

目标版本

操作系统

redhat 6.3

redhat 8.6

数据库

11.2.0.3

19.23

二.升级说明

     目前客户的数据库版本为11.2.0.3,根据官方说明是不能直接通过dbua升级到19c的,如下图所示,需要先升级到11.2.0.4并应用相应补丁后才可以直接升级到19c。

根据官方文档Doc ID 2668071.1介绍,从11.2.0.4升级到19c需要应用11.2.0.4.160419 (Apr 2016) Grid Infrastructure Patch Set Update (GI PSU)及之后的补丁才可以升级,如下所示:

因此采取的方式是新服务器直接安装oracle 19c grid集群软件(8.2以后的系统不支持11.2.0.4的GI。直接安装19c grid,也不用再额外对grid进行升级),然后再安装oracle 11.2.0.4的db软件(打上16年0419之后补丁,不需要安装11.2.0.3软件,11.2.0.4可在mount下与11.2.0.3的主库同步)及oracle 19.23的db软件。然后通过adg进行同步,然后在业务管控期进行dbua升级。

三.升级过程

1. adg环境搭建

    安装oracle 19c grid集群软件和数据库软件并打上19.23的补丁,安装oracle 11.2.0.4的数据库软件并打补丁,详情如下:

数据库

ORACLE_HOME

补丁版本

11.2.0.4

/u01/app/oracle/product/11.2.0/db_1

220118 PSU

19.23

/u01/app/oracle/product/19/db_1

19.23

安装集群和数据库过程此处就不详细介绍,使用duplicate搭建adg,然后mount状态下开启日志同步。

2. 11.2.0.3升级11.2.0.4

(1)检查adg端同步情况

SQL> set linesize 999 pagesize 999;SQL> select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag');

同步正常

(2)停业务,锁用户,停主库监听

--锁用户alter user xxxx account lock;--停止主库监听su - gridsrvctl stop listenersrvctl stop scan_listener

(3)adg端做failover

--停止同步SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;--确保所有未完成的日志应用操作都被完成SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;--failover操作,将adg角色变为PRIMARYSQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;

(4)准备参数文件pfile

注意这里需要暂时将cluster_database设置为false,因为后续需要使用upgrade模式启动进行升级,并去掉所有的隐含参数。注意compatible参数最小为11.2.0.0或者更高。

(5)关闭数据库,使用准备的参数文件以upgrade模式启动

SQL> shutdown immediate;SQL> startup upgrade pfile='/home/oracle/bak1.ora'

查询组件状态及当前版本

--组件状态SELECT COMP_NAME, VERSION, STATUS FROM DBA_REGISTRY;--当前版本信息set linesize 300col COMMENTS for a30  col ACTION_TIME for a40col ACTION for a20col VERSION for a10select * from DBA_REGISTRY_HISTORY;

(6)执行11.2.0.3到11.2.0.4升级

--执行升级脚本@$ORACLE_HOME/rdbms/admin/catupgrd.sql; ##执行完数据库会关闭

执行过程耗时较长8分钟左右,以下截取脚本最后输出,脚本执行完数据库会关闭:

(7)执行升级完后操作

--启动数据库SQL> startup pfile='/home/oracle/bak1.ora'--验证各个组件的版本和状态,并显示升级花费总时间,以下截图为最后输出SQL> @$ORACLE_HOME/rdbms/admin/utlu112s.sql

--执行附加脚本,以下截图为最后输出SQL> @$ORACLE_HOME/rdbms/admin/catuppst.sql

--编译无效对象,输出略@$ORACLE_HOME/rdbms/admin/utlrp.sql--检查数据库状态,截图如下SQL> select status from v$instance;--重启下数据库SQL> shutdown immediateSQL> startup pfile='/home/oracle/bak1.ora
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dba_notes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值