集群环境为oracle19c RAC,共享存储采用openfiler配置asm磁盘,打p33509923补丁是因为手上只有这个补丁包,本篇文档详细记录下19c RAC 测试环境下补丁应用过程及问题记录。以下为p33509923补丁操作部分说明截图
补丁准备
两个节点准备补丁包
mkdir /soft
chmod +x -R /soft/
环境检查
su - oracle
sqlplus / as sysdba
col product for A30
col version for A15
col version_full for A20
col status for A15
select * from product_component_version;
opatch版本检查
在node1/node2两个节点上分别进入oracle/grid用户进行版本查询
su - oracle
opatch version
su - grid
opatch version
opatch 备份
root:
mv /u01/app/19.3.0/grid/OPatch /u01/app/19.3.0/grid/OPatch_bak
mv /u01/app/oracle/product/19.3.0/dbhome_1/OPatch /u01/app/oracle/product/19.3.0/dbhome_1/OPatch_bak
更新opatch
oracle opatch
root
unzip /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.3.0/dbhome_1/
chown -R oracle:oinstall /u01/app/oracle/product/19.3.0/dbhome_1/OPatch
grid opatch
root
unzip /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/19.3.0/grid/
chown -R grid:oinstall /u01/app/19.3.0/grid/OPatch
opatch版本检查
在oracle和grid下验证opatch版本和有效性
#opatch版本
$ORACLE_HOME/OPatch/opatch version
#opatch 有效性
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
补丁解压
#root
unzip p33509923_190000_Linux-x86-64.zip
chown -R grid:oinstall /soft/35940989/
补丁冲突检查
grid和oracle用户下分别执行检查
su - grid
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33239955
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33515361
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33529556
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33534448
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33575402
su - oracle$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33239955
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33515361
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33529556
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33534448
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/33509923/33575402
补丁空间检查
su - grid
vi /tmp/patch_list_gihome.txt
/soft/33509923/33239955
/soft/33509923/33515361
/soft/33509923/33529556
/soft/33509923/33534448
/soft/33509923/33575402两个节点 grid用户 oracle用户分别执行
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
补丁分析检查
两个节点使用root执行
su - root
cd //u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/33509923 -analyze
我这里执行时ll两个节点出现报错,根据报错提示缺失命令fuser,fuser是一个在 Linux 系统中用于识别和显示正在使用某个文件、目录或套接字的进程的命令。它可以帮助系统管理员监控和管理文件的使用情况,以及处理被占用的资源;现在对两个节点执安装这个组件
su - root
[root@node1 ~]#yum search fuser
[root@node1 ~]#yum install -y psmisc
[root@node1 ~]# which fuser
/usr/sbin/fuser
修复完成后重新执行分析检查,正常。
node1:
su - root
chmod 777 /u01/app/oraInventory/ContentsXML/oui-patch.xml
scp -r /u01/app/oraInventory/ContentsXML/oui-patch.xml root@node2:/u01/app/oraInventory/ContentsXML
node2:
chown grid:oinstall oui-patch.xml
chmod 777 /u01/app/oraInventory/ContentsXML/oui-patch.xml
补丁应用
先停库打节点1,起库完成后再打节点2
node1:
su - grid
#停集群
srvctl stop database -d node
crsctl status res -t#1节点应用补丁
su - rootcd /soft/33509923
chmod 777 *
/u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/33509923 -oh /u01/app/19.3.0/grid
/u01/app/oracle/product/19.3.0/dbhome_1/OPatch/opatchauto apply /soft/33509923 -oh /u01/app/oracle/product/19.3.0/dbhome_1
su - grid
lsnrctl start
srvctl start instance -d node -i node1
grid补丁应用--耗时13分钟
oracle补丁应用--耗时7分钟
出现这个waring警告,提示sql不能应用,等2节点打完后统一刷新数据字典,更新应用SQL
1节点打完后对1节点起库
srvctl start instance -d node -i node1
crsctl status res -t
一节点打完对一节点起库后,开始对二节点进行补丁应用
node2:
su - root
cd /soft/33509923
chmod 777 */u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/33509923 -oh /u01/app/19.3.0/grid
/u01/app/oracle/product/19.3.0/dbhome_1/OPatch/opatchauto apply /soft/33509923 -oh /u01/app/oracle/product/19.3.0/dbhome_1
su - grid
lsnrctl start
srvctl start instance -d node -i node2
grid补丁应用--耗时15分钟
oracle补丁应用--耗时7分钟
2节点打完后对2节点起库
srvctl start instance -d node -i node1
crsctl status res -t
根据补丁文档说明对补丁应用后的数据库执行数据字典更新
#cdb模式下打开所有pdb
sqlplus / as sysdba
show pdbs;
alter pluggable database all open;
刷新数据字典 --耗时36分钟
su - oracle
cd $ORACLE_HOME/OPatch
./datapatch -verbose
刷新无效对象
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
@utlrp.sql
验证补丁集
$ORACLE_HOME/OPatch/opatch lspatches
版本验证
column product format A30
column version format A15
column version_full format A20
column status format A15
select * from product_component_version;
补丁应用成功 数据库成功从19.3升级到19.14