Oracle 19C RU 19.28 升级和安装
- 背景介绍
- 概述
本次升级包括安全漏扫中所有19c数据库,漏扫预警版本19.3到19.27各个版本,数据库需要升级至19.28版本满足安全要求。
原端19C | 升级目标端19.28 | |
db_name | racdb | racdb |
ORACLE_SID | racdb1/2 | racdb1/2 |
ORACLE_HOME | GI:/oracle/asm DB:/oracle/db | GI:/oracle/asm DB:/oracle/db |
Hostname | node1/2 | node1/2 |
公网IP | 192.168.3.251 192.168.3.252 | 192.168.3.251 192.168.3.252 |
VIP | 192.168.3.249 192.168.3.248 | 192.168.3.249 192.168.3.248 |
软件升级包 | p6880880_190000_Linux-x86-64.zip p37952382_190000_Linux-x86-64.zip |
补丁下载
p6880880_190000_Linux-x86-64.zip
p37952382_190000_Linux-x86-64.zip
- 补丁安装先决条件检查
- 更新OPatch实用程序
必须使用OPatch实用程序版本12.2.0.1.46或更高版本来应用此修补程序。
$ORACLE_HOME/OPatch/opatch version |
su - grid
cp /soft/linux19.28/p6880880_190000_Linux-x86-64.zip /home/grid
unzip p6880880_190000_Linux-x86-64.zip
[root@ grid]# mv /u01/grid/OPatch /u01/grid/OPatch0621.bak
[root@ grid]# mv /home/grid/OPatch/ /u01/grid
su - oracle
cp /soft/linux19.28/p6880880_190000_Linux-x86-64.zip /home/oracle
unzip p6880880_190000_Linux-x86-64.zip
[oracle@ ~]$ mv /oracle/db/product/19.4/OPatch /oracle/db/product/19.4/OPatch0726.bak
[oracle@ ~]$ mv /home/oracle/OPatch/ /oracle/db/product/19.4/
- Oracle Inventory检查
$ <ORACLE_HOME>/OPatch/opatch lsinventory -detail -oh <ORACLE_HOME>
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh /oracle/asm $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh /oracle/db/product/19.4 |
- 补丁冲突检查
su - grid 1.% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/37957391/37960098 2.% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/37957391/37962946 3.% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/37957391/37962938 4.% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/37957391/38124772 5.% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/37957391/36758186 su - oracle 1.% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/37957391/37960098 2.% $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/37957391/37962946 |
- 系统空间检查
创建文件/tmp/patch_list_gihome.txt包含以下内容:
% cat /tmp/patch_list_gihome.txt <UNZIPPED_PATCH_LOCATION>/37957391/37960098 <UNZIPPED_PATCH_LOCATION>/37957391/37962946 <UNZIPPED_PATCH_LOCATION>/37957391/37962938 <UNZIPPED_PATCH_LOCATION>/37957391/38124772 <UNZIPPED_PATCH_LOCATION>/37957391/36758186 |
运行OPatch命令,检查网格基础设施主目录中是否有足够的可用空间:
% $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt |
创建文件/tmp/patch_list_dbhome.txt包含以下内容:
% cat /tmp/patch_list_dbhome.txt <UNZIPPED_PATCH_LOCATION>/37957391/37960098 <UNZIPPED_PATCH_LOCATION>/37957391/37962946 |
运行OPatch命令检查Oracle主目录中是否有足够的可用空间
% $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt |
如果OPatch报告Prereq "checkSystemSpace" failed.,然后清理系统空间,因为所需的空间量不可用。
如果OPatch报告Prereq "checkSystemSpace" passed.,则不需要任何操作。继续安装补丁程序。
- 升级补丁
- 补丁分析验证(20分钟)
验证补丁是否可以升级。
/oracle/asm/OPatch/opatchauto apply /soft/linux19.28/37952382/37957391 -oh /oracle/asm -analyze /oracle/db/product/19.4/OPatch/opatchauto apply /soft/linux19.28/37952382/37957391 -oh /oracle/db/product/19.4 -analyze |
- OPatchAuto 补丁升级(约3小时)
升级前备份
# tar -pcvf /backup/HOME_BACK/db01_gi_home_bkup.tar grid $ tar -pcvf /backup/HOME_BACK/db01_oracle_home_bkup.tar db_1 |
应用补丁升级
/oracle/asm/OPatch/opatchauto apply /soft/linux19.28/37952382/37957391 |
验证补丁
$ORACLE_HOME/OPatch/opatch lspatches |
接着二节点打补丁(重复以上步骤)
- 应用补丁
- 补丁应用到数据库(10分钟)
非CDB或非PDB数据库
sqlplus /nolog SQL> Connect / as sysdba SQL> startup SQL> quit cd $ORACLE_HOME/OPatch ./datapatch -verbose |
多租户(CDB/PDB) Oracle数据库
sqlplus /nolog SQL> Connect / as sysdba SQL> startup SQL> alter pluggable database all open; SQL> quit cd $ORACLE_HOME/OPatch ./datapatch -verbose |
检查中的以下日志文件
$ORACLE_BASE/cfgtoollogs/sqlpatch/37960098/<unique patch ID>对于错误:
37960098_apply_<database SID>_<CDB name>_<timestamp>.log
编译无效对象
cd $ORACLE_HOME/rdbms/admin $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b utlrp -d $ORACLE_HOME/rdbms/admin utlrp.sql tail -f /u01/app/oracle/product/19.3.0/db_1/rdbms/admin/utlrp*.log |
升级后验证补丁
$sqlplus / as sysdba
set line 200 pagesize 200
col DESCRIPTION for a60
col VERSION for a10
col action for a10
col action_time for a30
select patch_id,ACTION_TIME,DESCRIPTION,action,status from dba_registry_sqlpatch;
- 回退
- 回退补丁
# /oracle/asm/OPatch/opatchauto rollback /soft/linux19.28/37952382/37957391 |