暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle rac p31718723_112040_Linux-x86-64 打补丁201002步骤

原创 小小星月明 2022-07-14
1722

 包下载
链接:https://pan.baidu.com/s/1vBKnIr8hESjsypMIhCYRrg
提取码:77vu

或登录mos搜索:Database 11.2.0.4 Proactive Patch Information (Doc ID 2285559.1)

# 基于 11.2.0.4 和 Asianux 7.3 的补丁升级


31537677 DB PSU 11.2.0.4.201020 Both DB homes and Grid home

29938455 OCW PATCH SET UPDATE 11.2.0.4.191015 Both DB Homes and Grid Home

29509309 ACFS PATCH SET UPDATE 11.2.0.4.190716 Only Grid Home

1、备份/oracle和/grid目录
root用户执行
tar -czvf /tmp/oracle.tar.gz /oracle
tar -czvf /tmp/grid.tar.gz /grid

grid 和 oracle都执行:
cp -ar $ORACLE_HOME/OPatch ~/OPatch.bak.2020-05-15

2、更新Oracle database home和GI home的OPatch

所有节点
mkdir/tmp/orasoft/
将*.zip上传到/tmp/orasoft
chmod 777 -R /tmp/orasoft/

oracle执行:
unzip /tmp/orasoft/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
选A
$ORACLE_HOME/OPatch/opatch version

grid用户执行:
unzip/tmp/orasoft/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
选A
$ORACLE_HOME/OPatch/opatch version

3、配置OCM(手动打补丁不需要此步骤)
grid用户:
cd到grid用户的home目录
cd
$ORACLE_HOME/OPatch/ocm/bin/emocmrsp
遇到:
Email address/User Name: --回车
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: Y
会产生一个名为ocm.rsp的文件:
ls -l ocm.rsp

4、验证Oracle Inventory
使用grid用户:
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

使用oracle用户:
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

5、解压PSU补丁
grid用户:

cd/tmp/orasoft/
unzip p31718723_112040_Linux-x86-64.zip
unzip p31537677_112040_Linux-x86-64.zip
unzip p31668908_112040_Linux-x86-64.zip
unzip p31749197_112040_Linux-x86-64.zip
选A

***********查看是否有dbconsole服务************************************
如有,使用如下命令停止
As the Oracle RAC database home owner execute:

su - oracle
$ $ORACLE_HOME/bin/emctl stop dbconsole
**********************************************************************

6、冲突检测
--grid
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/orasoft/31718723/31537677
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/orasoft/31718723/29938455
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/orasoft/31718723/29509309

--oracle
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/orasoft/31718723/31537677
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/orasoft/31718723/29938455

7、手工打补丁(两边)
7.1 oracle用户:
$ORACLE_HOME/bin/emctl stop dbconsole
如果没有安装EM 的话,会报错找不到/oracle/db11g/oc4j/j2ee/OC4J_DBConsole_hostname_sid not found
确认没有dbconsole进程就可以:
ps -ef | grep dbconsole

7.2 oracle用户:
node1:
$ORACLE_HOME/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/status -n `hostname`
node2:
$ORACLE_HOME/bin/srvctl stop home -o $ORACLE_HOME -s /home/oracle/status -n `hostname`

7.3 root用户:(两节点)
. /home/grid/.bash_profile
$ORACLE_HOME/crs/install/rootcrs.pl -unlock

ps -ef|grep d.bin


7.4 打CRS补丁
grid用户:
su - grid
/grid/grid_home/OPatch/opatch napply -oh /grid/grid_home -local /tmp/orasoft/31718723/31537677
/grid/grid_home/OPatch/opatch napply -oh /grid/grid_home -local /tmp/orasoft/31718723/29938455
/grid/grid_home/OPatch/opatch apply -oh /grid/grid_home -local /tmp/orasoft/31718723/29509309

7.5

oracle用户:
/tmp/orasoft/31718723/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome /oracle/db11g
/oracle/db11g/OPatch/opatch napply -oh /oracle/db11g -local /tmp/orasoft/31718723/29938455/custom/server/29938455
/oracle/db11g/OPatch/opatch apply -oh /oracle/db11g -local /tmp/orasoft/31718723/31537677
/tmp/orasoft/31718723/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome /oracle/db11g

二节点重复7.4及7.5


7.8
root用户执行:(1节点起完,2节点起)
. /home/grid/.bash_profile
$ORACLE_HOME/rdbms/install/rootadd_rdbms.sh
$ORACLE_HOME/crs/install/rootcrs.pl -patch

7.9 此时如果报“ "A system reboot is recommended before using ACFS” ”,重启机器,没报的话就继续,不需重启

7.10 oracle用户
node 1上:
$ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/status -n `hostname`

node 2上:
$ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s /home/oracle/status -n `hostname`

检查:
每个节点都执行:
oracle用户:
$ORACLE_HOME/OPatch/opatch lsinventory
grid用户:
$ORACLE_HOME/OPatch/opatch lsinventory


8. 打完补丁后数据库(下边的步骤没有实例不用执行):
在node1上执行,同时node2的数据库要down掉
oracle用户:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> select * from dba_registry_history;
SQL> quit

检查日志文件:
cd $ORACLE_BASE/cfgtoollogs/catbundle/
grep error *.log
详细检查的话,日志文件的命名规则是:
catbundle_PSU_<database SID>_APPLY_<TIMESTAMP>.log
catbundle_PSU_<database SID>_GENERATE_<TIMESTAMP>.log

检查数据库中是否存在无效的对象:
select OWNER,OBJECT_NAME,OBJECT_ID,OBJECT_TYPE,STATUS from dba_objects where status <>'VALID';

无效对象重新编译一下就可以了
######alter view aucdb.view_preview_18_20 compile;
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql



##########################################################################################
小补丁
Oracle用户:

1. 停库(双边)
srvctl stop instance -d <db name> -i <database SID>
或一个节点执行 srvctl stop database -d <db name>

2. 解压缩小补丁(双边,上面第5步已解压)
cd/tmp/orasoft/

3. 安装补丁(双边)

cd ../31668908/
$ORACLE_HOME/OPatch/opatch apply

cd ../31749197/
$ORACLE_HOME/OPatch/opatch apply


$ORACLE_HOME/OPatch/opatch lsinventory


4.执行上面第8步


5. 重启crs集群(双边)
root用户:
crsctl stop crs
crsctl start crs

6.启动数据库
srvctl start database -d <db name>

起库时可能报磁盘权限dend的需要改一下oracle文件的权限
chown oracle:asmadmin /oracle/db11g/bin/oracle
chmod 6751 /oracle/db11g/bin/oracle




##########################################################################################
关闭tfa osw日志收集工具,不需要此服务,已部署在系统用户下
所有节点操作
root用户:
. /home/grid/.bash_profile
ps -ef|grep OSW
/grid/grid_home/bin/tfactl stop
/grid/grid_home/bin/tfactl disable
ps -ef|grep OSW

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论