ITPub博客

首页 > 数据库 > Oracle > 【UP_ORACLE】Oracle 19c之从19.3升级到19.9

【UP_ORACLE】Oracle 19c之从19.3升级到19.9

原创 Oracle 作者:Attack_on_Jager 时间:2021-01-20 16:11:45 0 删除 编辑

前言

和Oracle 11g以及之前的远古版本不同,从Oracle 12c开始,升级Oracle RDBMS只能通过类似于打PSU补丁的方式。

Oracle 19c的第一个免费版本是19.3(可以就认为是12c的12.2.0.3这个版本),建议用zip包一步一步安装。

19.3官方下载地址:

对于19.9或者其他老版本(包括12c,11g等)可通过MOS的文档找到: ID 1454618.1

注:2020年19c目前最新的补丁是Patch 31750108 (补丁里同时包括Grid Home和DB Home)

 

补丁信息

Patch 31750108里面的补丁包信息如下:

补丁编号

补丁说明

使用条件

31771877

Database Release Update 19.9.0.0.201020

可以单独在非RAC或者ASM单实例环境的DB Home上使用

31772784

OCW Release Update 19.9.0.0.201020

适用于DB Home和Grid Home

31773437

ACFS Release Update 19.9.0.0.201020 

仅用于Grid Home

31780966

Tomcat Release Update 19.0.0.0.0

仅用于 Grid Home

注:ACFS,DBWLM和TOMCAT子修补程序不适用于HP-UX Itanium和Linux on IBM System z platforms


补丁的安装和卸载

1. 补丁安装

(1) DB Home 和Grid Home下面的OPatch这个文件夹里文件的版本必须 不低于12.2.0.1.19,可通过Patch 下载,解压后直接替换OPatch这个文件夹即可:

$ unzip Patch6880880.zip -d $ORACLE_HOME
验证:
$ $ORACLE_HOME/OPatch/opatch version


(2)检查DB Home和Grid Home的补丁列表里补丁的一致性

$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

注:如果此命令成功,将会列出安装在主目录中的Oracle组件。

 

(3)检查新补丁版本是否和当前已安装补丁版本冲突

  • Grid Home:

$GI_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oracle/soft/31750108/31771877
$GI_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oracle/soft/31750108/31772784
$GI_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oracle/soft/31750108/31773437
$GI_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oracle/soft/31750108/
$GI_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oracle/soft/31750108/31780966

  • DB Home:

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oracle/soft/31750108/31771877
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oracle/soft/31750108/31772784


(4)检查OS剩余空间是否能容纳补丁

先把补丁路径放到一个自定义文本文件中 

  • Grid Home:

 $ cat grid_patch.txt

/oracle/soft/31750108/31771877
/oracle/soft/31750108/31772784
/oracle/soft/31750108/31773437
/oracle/soft/31750108/
/oracle/soft/31750108/31780966

检查命令:
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /home/grid/grid_patch.txt


  • DB Home:

$ cat db_patch.txt
/oracle/soft/31750108/31771877
/oracle/soft/31750108/31772784

检查命令:
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /home/oracle/db_patch.txt


(5)执行升级安装

此部分分三种情况:

1)适用于Oracle RAC或者使用ASM的单实例数据库,并且Grid Home和DB Home都不是共享的,同时ACFS也没有配置

停环境后,直接用root执行:

$ $ORACLE_HOME/bin/srvctl stop database –d db-unique-name

2)适用于Oracle RAC或者使用ASM的单实例数据库,并且DB Home是共享的,Grid Home没有共享出去,同时ACFS有可能已经配置:

  • 确保所有节点的库都停了

$ $ORACLE_HOME/bin/srvctl stop database -d db-unique-name

  • 在第一个节点上如有ACFS,必须卸载

 

  • 在第一个节点的Grid Home 上应用补丁, root 执行 以下命令

# $GI_HOME/OPatch/opatchauto apply /oracle/soft/31750108 -oh $GI_HOME


 

  • 在第一个节点上重新挂载ACFS

 

  • 在第一个节点上,以root 用户身份执行以下命令:

# $GI_HOME/OPatch/opatchauto apply /oracle/soft/31750108 -oh $ORACLE_HOME


注:由于数据库主目录是共享的, 因此此操作将跨集群修补数据库主目录 但是USM 补丁无法应用于数据库主目录。

 

  • 仅启动第一个节点的数据库

$ $ORACLE_HOME/bin/srvctl start instance -d db-unique-name -n nodename


 

  • 卸载第二个节点的ACFS

  • 在第二个节点的Grid Home 上应用补丁, root 执行 以下命令

# $GI_HOME/OPatch/opatchauto apply /oracle/soft/31750108 -oh $GI_HOME


 

  • 在第二个节点上重新运行上一步 opatchauto 命令,将会重启 stack

  • 在第二个节点上重新挂载ACFS

  • 仅启动第二个节点上的数据库

  • 其他节点重复第二个节点的操作即可

 

3 )非RAC 和不使用ASM 的单节点数据库

  • 停库

  • 使用db 用户执行补丁安装:

$ cd /oracle/soft/31750108/31771877

$ opatch apply (卸载命令:opatch rollback -id 31771877)


注:如果启用了 DG ,则 DG 端也需要安装


(6)卸载补丁

也是和第(5)一样的三个步骤,只需要把“apply”改成“rollback”


后续步骤

安装或卸载补丁后都需要:

(1)对于曾打过补丁的 Oracle home 上运行的每个单独的数据库(包括多租户和非多租户),   按照 下表 运行 datapatch 命令该实用程序。如果是 Oracle RAC ,则仅在一个实例上运行 datapatch

 

Steps

Standalone DB

Steps

Single/Multitenant    (CDB/PDB) DB

1

% sqlplus /nolog

1

% sqlplus /nolog

2

SQL> Connect / as sysdba

2

SQL> Connect / as sysdba

3

SQL> startup

3

SQL> startup

4

SQL> quit

4

SQL> alter pluggable database all   open;

5

% cd $ORACLE_HOME/OPatch

5

SQL> quit

6

% ./datapatch -verbose

6

% cd $ORACLE_HOME/OPatch



7

% ./datapatch -verbose

注:在dba_registry_sqlpatch视图中,确认APPLY的状态为“ SUCCESS”。  


(2)检查$ORACLE_HOME/sqlpatch/31771877/中的以下日志文件是否存在错误:

31771877_rollback_dbSID_CDBname_timestamp.log


(3)编译无效对象

cd $ORACLE_HOME/rdbms/admin

sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> @utlrp.sql


(4)升级catalog

$ rman catalog sys/sys@test_db

RMAN> UPGRADE CATALOG;    ##执行两遍

RMAN> UPGRADE CATALOG;

RMAN> EXIT;



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69992972/viewspace-2751275/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
小小DBA一枚

注册时间:2021-01-11

  • 博文量
    20
  • 访问量
    28113