包下载
链接: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
- 打完补丁后数据库(下边的步骤没有实例不用执行):
在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_APPLY.log
catbundle_PSU_GENERATE.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用户:
-
停库(双边)
srvctl stop instance -d -i
或一个节点执行 srvctl stop database -d -
解压缩小补丁(双边,上面第5步已解压)
cd/tmp/orasoft/ -
安装补丁(双边)
cd …/31668908/
$ORACLE_HOME/OPatch/opatch apply
cd …/31749197/
$ORACLE_HOME/OPatch/opatch apply
$ORACLE_HOME/OPatch/opatch lsinventory
4.执行上面第8步
- 重启crs集群(双边)
root用户:
crsctl stop crs
crsctl start crs
6.启动数据库
srvctl start database -d
起库时可能报磁盘权限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