签到成功

知道了

CNDBA社区CNDBA社区

Oracle 19.21 单实例 安装 手册

2024-01-10 13:28 566 0 原创 Oracle 19c
作者: dave

1 安装说明

在之前的博客中我们介绍了 Oracle 软件的生命周期和已经目前最新的版本:19.21.

Oracle RU 19.21 发布了
https://www.cndba.cn/cndba/dave/article/131466

http://www.cndba.cn/dave/article/131492

Oracle 19c 有个很明显的变化,这点和 11g 有很大的区别,在 11g 中我们可以直接安装 11.2.0.4 的版本,但是 19c 不行。 官网可以直接下载的版本是 19.3,如下:

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

也就是说要安装高版本的 19c,必须先安装 19.3 的基础版本,然后通过打对应的 RU 不定来升级。

http://www.cndba.cn/dave/article/131492

在之前的博客我们也介绍了 19.18 版本的操作,如下:http://www.cndba.cn/dave/article/131492

Oracle 19c 单实例 RU 从19.3.0 升级到19.18.0 操作手册
https://www.cndba.cn/cndba/dave/article/116522
Oracle 12.2 家族的补丁 RU 和 RUR 说明
https://www.cndba.cn/dave/article/4063

2 安装 19.3

参考:

Linux 7.4 平台下 Oracle 19.3 单实例安装手册
https://www.cndba.cn/dave/article/3427

3 打 19.21 RU 补丁

打 RU 补丁过程和之前版本一样,我们这里简单记录一下 19.21 打补丁的过程。

Oracle 19c 单实例 RU 从19.3.0 升级到19.18.0 操作手册
https://www.cndba.cn/cndba/dave/article/116522

3.1 检查OPatch工具版本

19.21 需要12.2.0.1.37 以上的 OPatch 工具:

Patch 35643107 requires OPatch version 12.2.0.1.37 or later.

[dave@www.cndba.cn OPatch]$ ./opatch version
OPatch Version: 12.2.0.1.40

OPatch succeeded.
[dave@www.cndba.cn OPatch]$

如果从其他版本进行升级,可以从patch 6880880 下载最新的OPatch。 关于OPatch 工具升级的方法参考我之前的博客,如下:

Oracle 更新 OPatch 工具版本 的方法 说明
https://www.cndba.cn/Dave/article/1353

3.2 检查Patch 是否冲突

进入补丁,执行检查:

[dave@www.cndba.cn 35643107]$ /data/app19c/oracle/product/19.3.0/dbhome_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Copyright (c) 2024, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /data/app19c/oracle/product/19.3.0/dbhome_1
Central Inventory : /data/app/oraInventory
   from           : /data/app19c/oracle/product/19.3.0/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.29
OUI version       : 12.2.0.7.0
Log file location : /data/app19c/oracle/product/19.3.0/dbhome_1/cfgtoollogs/opatch/opatch2024-01-09_22-36-04PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.
[dave@www.cndba.cn 35643107]$

3.3 应用patch

这里有几点注意事项:http://www.cndba.cn/dave/article/131492

  1. 如果是物理DG,那么主备库都需要安装Patch,可以先在备库安装,再安装主库,操作步骤可以参考:Document 278641.1。
  2. 对于RAC 环境,可以使用OPatch rolling 方式来安装,这样没有停机时间,具体操作可以参考:Document 244241.1。
  3. 对于单实例,必须关闭待升级ORACLE HOME关联的所有实例和监听,并且包括退出所有的sqlplus窗口。

关闭实例和监听,并退出sqlplus:

[dave@www.cndba.cn 35643107]$ lsnrctl stop

[dave@www.cndba.cn 35643107]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jan 9 22:37:03 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
[dave@www.cndba.cn 35643107]$

在 pathc 目录下执行:http://www.cndba.cn/dave/article/131492

[dave@www.cndba.cn 35643107]$ pwd
/data/software/Oracle/19.21/35643107
[dave@www.cndba.cn 35643107]$ $ORACLE_HOME/OPatch/opatch apply
……
Patching component oracle.jdk, 1.8.0.201.0...
Patch 35643107 successfully applied.
Sub-set patch [29517242] has become inactive due to the application of a super-set patch [35643107].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /data/app19c/oracle/product/19.3.0/dbhome_1/cfgtoollogs/opatch/opatch2024-01-10_12-50-15PM_1.log

OPatch succeeded.
[dave@www.cndba.cn 35643107]$

3.4 加载变化的SQL到数据库

安装补丁之后,还需要将有变化的SQL加载到数据库中,这里可以直接运行Datapatch工具将这些修改的SQL重新加载到数据库中,如果是RAC环境,只需要在一个节点执行就可以了。

根据readme的说明,操作步骤如下:

sqlplus /nolog
SQL> Connect / as sysdba
SQL> startup
SQL> alter pluggable database all open;
SQL> quit

cd $ORACLE_HOME/OPatch
./datapatch -verbose

datapatch命令只对打开的数据库生效,所有Oracle建议在执行该命令之前将CDB和所有的PDB都打开,一次更新掉。 但如果有部分PDB没有打开,也可以在打开之后,重新运行datapatch命令并制定pdb实例名,比如: ./datapatch -pdbs davehttp://www.cndba.cn/dave/article/131492

这种情况可以参考之前的博客:

Oracle 18c 单实例 RUR 从18.3.0 升级到18.3.1 操作手册
https://www.cndba.cn/dave/article/3138http://www.cndba.cn/dave/article/131492

我们这里将所有的PDB 都打开后在执行datapatch工具。

http://www.cndba.cn/dave/article/131492

运行datapatch工具:http://www.cndba.cn/dave/article/131492

[dave@www.cndba.cn dbs]$ cd $ORACLE_HOME/OPatch
[dave@www.cndba.cn OPatch]$ ./datapatch -verbose
……
Validating logfiles...done
Patch 35643107 apply (pdb CDB$ROOT): SUCCESS
  logfile: /data/app19c/oracle/cfgtoollogs/sqlpatch/35643107/25405995/35643107_apply_CNDBA_CDBROOT_2024Jan10_13_03_10.log (no errors)
Patch 35643107 apply (pdb PDB$SEED): SUCCESS
  logfile: /data/app19c/oracle/cfgtoollogs/sqlpatch/35643107/25405995/35643107_apply_CNDBA_PDBSEED_2024Jan10_13_12_53.log (no errors)
Patch 35643107 apply (pdb DAVE): SUCCESS
  logfile: /data/app19c/oracle/cfgtoollogs/sqlpatch/35643107/25405995/35643107_apply_CNDBA_DAVE_2024Jan10_13_12_53.log (no errors)

Automatic recompilation incomplete; run utlrp.sql to revalidate.
  PDBs: DAVE PDB$SEED

SQL Patching tool complete on Wed Jan 10 13:20:45 2024

3.5 查看版本变化

datapatch 工具加载修改的SQL之后会将patch添加到dba_registry_sqlpatch试图中,以反应patch的应用情况。 查询试图可以看到patch的APPLY状态为”SUCCESS”。

set lines 200
col status for a10
col action for a10
col action_time for a30
col description for a60
col patch_type for a10
select patch_id,patch_type,action,status,action_time,description from dba_registry_sqlpatch;

  PATCH_ID PATCH_TYPE ACTION     STATUS     ACTION_TIME                    DESCRIPTION
---------- ---------- ---------- ---------- ------------------------------ ------------------------------------------------------------
  29517242 RU         APPLY      SUCCESS    09-JAN-24 09.46.57.554752 PM   Database Release Update : 19.3.0.0.190416 (29517242)
  35643107 RU         APPLY      SUCCESS    10-JAN-24 01.20.19.484710 PM   Database Release Update : 19.21.0.0.231017 (35643107)


col version for a25
col comments for a80
select ACTION_TIME,VERSION,COMMENTS from dba_registry_history;

ACTION_TIME                    VERSION                   COMMENTS
------------------------------ ------------------------- --------------------------------------------------------------------------------
                               19                        RDBMS_19.21.0.0.0DBRU_LINUX.X64_230923
09-JAN-24 09.46.50.398253 PM   19.0.0.0.0                Patch applied on 19.3.0.0.0: Release_Update - 190410122720
10-JAN-24 01.12.10.472997 PM   19.0.0.0.0                Patch applied from 19.3.0.0.0 to 19.21.0.0.0: Release_Update - 230930151951

3.6 处理无效对象

最后一步就是处理无效对象,因为之前datapatch命令会加载SQL,这个过程可能会产生无效对象。 可以执行@utlrp.sql脚本处理这些无效对象。

SQL> @/data/app19c/oracle/product/19.3.0/dbhome_1/rdbms/admin/utlrp.sql

至此,我们升级19.21 的操作全部结束, 注意验证版本需要通过dba_registry_sqlpatch视图来查看,如果查询v$version 视图,版本还是没有变化的。

http://www.cndba.cn/dave/article/131492

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2239
    原创
  • 3
    翻译
  • 547
    转载
  • 186
    评论
  • 访问:6656967次
  • 积分:4249
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ