当前位置:   article > 正文

ORACLE-11G-RAC至ORACLE-19C-RAC升级实战_oracle11g升级19c

oracle11g升级19c

一.前言:

本次升级为 Linux 异机同平台跨版本,由Oracle 11G 两节点RAC集群迁移并升级至Oracle 19C 两节点RAC集群。

二.系统环境:

源端操作系统:Red Hat Enterprise Linux Server release 6.10

源端数据库版本:Oracle 11.2.0.4 RAC

目标端操作系统:Red Hat Enterprise Linux Server release 7.9

目标断数据库版本: Oracle 19.16 RAC

三.迁移及升级的思路

1.在两台新服务器部署安装完成Oracle 19.3 GRID集群及Database软件并升级至19.16版本(根据补丁的稳定性选择补丁版本)

2.再新服务器上再安装部署 Oracle 11.2.0.4 database 软件。

3.11G database正好与原环境版本相同,在新环境配置ADG 将数据同步至新环境当中 (搭建DG建议通过rman 备份恢复进行配置)

4.正式切换步骤思路:

4.1 正式切换前,在确保数据同步一致性没问题后,源端主库关闭数据库及集群。

4.2 新环境的DG库 采用Fail over强制切换 (采用fail over强制切换的方式是为了确保后续万一数据库升级失败,主库可直接启用继续进行生产业务)。

4.3 新环境数据库强制OPEN后,做升级前的配置。

4.4 切换ORACLE_HOME的环境变量指向,通过19C的Oracle_home对数据库以startup  upgrade模式启动。

4.5 执行升级数据字典的升级。

4.6 升级时区及编辑无效对象。

4.7 修改数据库参数并重启

4.8 重新注册实例到集群(升级完成)

四.实施过程

1. Oracle 19C GRid集群及database软件安装

过程略...........

2. Oracle 11G database软件安装

过程略...........

3. 配置ADG数据同步

环境变量截图:

配置DG,用Oracle 11.2.0.4的HOME去进行同步

过程略...........

4.正式切换升级步骤

4.1 检查数据同步状态。

  1. Primary:查询主库的最大日志

select max(sequence#) from v$archived_log;

select max(sequence#) from v$archived_log where applied='YES';

  1. standby:查询备库的最大日志

select max(sequence#) from v$archived_log;

select max(sequence#) from v$archived_log where applied='YES';

4.2 源端数据库停机

  1. 清理LOCAL=NO会话 加快shutdown速度

ps -ef|grep -v grep|grep LOCAL=NO|awk '{print $2}'|xargs kill -9

  1. 源端多切几次归档日志

alter system switch logfile;

  1. 两个节点同时关闭集群

crsctl stop has -f

4.3 备库切换

  1. 停止备库实时恢复

alter database recover managed standby database cancel;

  1. 强制应用备库的所有日志

alter database recover managed standby database finish force;

  1. 备库升级主库

alter database active physical standby database;

  1. 备库启动:

alter database open;

4.4 升级配置

4.4.1 先重新安装JAVAMV组件

  1. 卸载JAVAVM

startup mount

alter system set "_system_trig_enabled"=false scope=memory;

alter system enable restricted session;

alter database open;

@?/javavm/install/rmjvm.sql

  1. 安装JAVAVM

shutdown immediate

startup mount

alter system set "_system_trig_enabled"=false scope=memory;

alter database open;

@?/javavm/install/initjvm.sql

4.4.2 编辑无效对象及删除回收站

@?/rdbms/admin/utlrp.sql

SET SERVEROUTPUT ON;

EXECUTE DBMS_PREUP.INVALID_OBJECTS;

  1. 删除回收站

PURGE dba_recyclebin;

4.4.3 使用emremove.sql删除EM

  1. 从 19c 的 Oracle Home 下拷贝以下脚本到源库的 Oracle Home(11.2) 下

cp /u01/app/oracle/product/19.3.0/db_1/rdbms/admin/olspreupgrade.sql  /u01/app/oracle/product/11.2.0/rdbms/admin/olspreupgrade.sql

sqlplus / as sysdba

@?/rdbms/admin/olspreupgrade.sql

4.4.4 删除EM

  1. 从 19c 的 Oracle Home 下拷贝以下脚本到源库的 Oracle Home(11.2) 下

cp /u01/app/oracle/product/19.3.0/db_1/rdbms/admin/emremove.sql  /u01/app/oracle/product/11.2.0/rdbms/admin/emremove.sql

sqlplus / as sysdba

@?/rdbms/admin/emremove.sql

4.4.5 取消对OLAP目录(OLAP AMD)的支持(适用于12.1之前的Oracle数据库版本)

  1. 从 19c 的 Oracle Home 下拷贝以下脚本到源库的 Oracle Home(11.2) 下

Cp /u01/app/oracle/product/19.3.0/db_1/olap/admin/catnoamd.sql  $ORACLE_HOME/olap/admin/catnoamd.sql

sqlplus / as sysdba

@?/olap/admin/catnoamd.sql

4.4.6 禁用计划的数据库自定义JOB和crontab计划任务

@?/rdbms/admin/catnoexf.sql

      1. 检查用户当前不区分大小写的密码版本。

--查看隐含参数_optimizer_cartesian_enabled,确保设置为TRUE

SELECT name,description from SYS.V$PARAMETER WHERE name LIKE '\_%' ESCAPE '\';

alter system set "_optimizer_cartesian_enabled"=TRUE;

4.5 正式升级

4.5.1修改数据库参数cluster_database为false并关闭实例

alter system set cluster_database=false scope=spfile;

shutdown immediate

4.5.2 以19C ORACLE_HOME对数据库以升级模式启动实例

修改Oracle_home 环境变量指向19CORACLE_HOME

startup  upgrade

4.5.3 切换目录 然后执行脚本升级

接下来就是升级数据字典----- @?/rdbms/admin/catupgrd.sql

按照输出的提示进行升级

cd $ORACLE_HOME/rdbms/admin

$ORACLE_HOME/perl/bin/perl catctl.pl -n 24 catupgrd.sql ---并行升级

4.5.4 升级后补充运行脚本

要是手动升级数据库,但是未运行脚本catuppst.sql脚本,则数据库的性能随着时间下降。

$ORACLE_HOME/perl/bin/perl   $ORACLE_HOME/rdbms/admin/catcon.pl  -n 24 -e -b  catuppst -d "."  catuppst.sql

4.5.5 编译无效对象:

$ORACLE_HOME/perl/bin/perl   $ORACLE_HOME/rdbms/admin/catcon.pl  -n 24 -e -b utlrp -d "."  utlrp.sql

4.5.6 升级时区

  1. 启动数据库

Startup

  1. 检查timezone_file脚本:

@?/rdbms/admin/utltz_upg_check.sql

  1. 设置timezone_file脚本:

@?/rdbms/admin/utltz_upg_apply.sql

4.5.7 修改数据库参数:

alter system set resource_manager_plan=default_plan;

grant  administer  database  trigger to SYS;

grant  administer  database  trigger to system;

alter system set cluster_database=true scope=spfile;

4.6 实例重新注册到RAC集群

4.6.1 先通过11G Oracle_home remove掉当前集群的实例

Export ORACLE_HOME= /u01/app/oracle/product/11.2.0

srvctl remove database -d hisdb

4.6.2 切换回19C的 Oracle_home add 实例资源

注册实例前,所有节点的ORACLE_HOME需改为19C的HOME目录

Export ORACLE_HOME= /u01/app/oracle/product/19.3.0/db_1

srvctl add database -d hisdb -o $ORACLE_HOME

srvctl add instance -d hisdb -i hisdb1 -n his01

srvctl add instance -d hisdb -i hisdb2 -n his02

  1. 启动实例

启动前修改spfile文件,拷贝inithisdb.ora及orapwhisdb.ora文件至2节点

添加如下参数:

hisdb2.instance_number=2

hisdb2.thread=2

hisdb2.undo_tablespace='UNDOTBS2'

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/1013951
推荐阅读
相关标签
  

闽ICP备14008679号