Oracle 11g RAC 打补丁过程(11.2.0.3.15)

--关闭EM

emctl status dbconsole
emctl stop dbconsole

--关闭数据库和监听

srvctl stop database -d ptfdb
srvctl stop listener -n ptfdb1
srvctl stop listener -n ptfdb2

1、查看数据库安装的补丁

$ORACLE_HOME/OPatch/opatch lsinventory

2、解压 patch 包

unzip p20760997_112030_Linux-x86-64.zip
cd 20760997/

3、检查是否满足补丁安装条件

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

4、安装补丁

cd 20760997
$ORACLE_HOME/OPatch/opatch apply

在安装补丁的过程中,安装完本地补丁后,会提示是否安装远程节点的补丁,选择是即可。

5、安装补丁后的操作

--启动数据库和监听

srvctl start database -d ptfdb

srvctl start listener -n ptfdb1
srvctl start listener -n ptfdb2

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
CONNECT / AS SYSDBA
STARTUP
@catbundle.sql psu apply
QUIT

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql

--检查安装的补丁

select * from dba_registry_history;
SELECT comp_name, version, status FROM dba_registry;

6、安装中的报错

--报错一
SQL> execute dbms_java.loadjava('-synonym -schema ORDSYS -resolve -grant PUBLIC ord/jlib/ordimann.jar');
BEGIN dbms_java.loadjava('-synonym -schema ORDSYS -resolve -grant PUBLIC ord/jlib/ordimann.jar'); END;
*
ERROR at line 1:
ORA-04031: unable to allocate 4096 bytes of shared memory ("java
pool","java/io/Serializable","JOXLE^1b45c29",":SGAClass")
ORA-06512: at "SYS.DBMS_JAVA", line 655
ORA-06512: at line 1
SQL> execute dbms_java.loadjava('-grant PUBLIC -schema ORDSYS ord/jlib/jai_core.jar');
BEGIN dbms_java.loadjava('-grant PUBLIC -schema ORDSYS ord/jlib/jai_core.jar'); END;
*
ERROR at line 1:
ORA-04031: unable to allocate 4096 bytes of shared memory ("java
pool","java/io/Serializable","JOXLE^1b45c29",":SGAClass")
ORA-06512: at "SYS.DBMS_JAVA", line 655
ORA-06512: at line 1
Invoking prereq "checkconflictagainstohwithdetail"
OracleHomeInventory was not able to create a lock file, probably due to a failed OPatch Session. The loaded inventory might not show correctly what you have in the Oracle Home.

--解决方法

这是由于JAVA池分配的太小了,更改JAVA池后,重启数据库。
alter system set java_pool_size=300M scope=spfile;

-- 报错二

OUI-67076:OracleHomeInventory was not able to create a lock file, probably due to a failed OPatch Session. The loaded inventory might not show correctly what you have in the Oracle Home.

--解决方法

cd $ORACLE_HOME/.patch_storage
mv patch_locked patch_locked.back

--报错三

Following executables are active :
/u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/16902043_Jan_13_2016_14_27_14/rollback2016-01-13_14-27-14PM_1.log

--解决方法
如有未清除进程,则执行下列命令
fuser -k /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1

-- 报错四

OPatch found the word "warning" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/u01/app/oracle/product/11.2.0/db_1/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'
/u01/app/oracle/product/11.2.0/db_1/precomp/lib/ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/u01/app/oracle/product/11.2.0/db_1/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'

OPatch found the word "warning" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
ins_emagent.mk:113: warning: overriding commands for target `nmosudo'
ins_emagent.mk:52: warning: ignoring old commands for target `nmosudo'
/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk:113: warning: overriding commands for target `nmosudo'
/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk:52: warning: ignoring old commands for target `nmosudo'

--解决方法
这是一个正常的警告,实际上补丁已经更新成功。

7、补丁回退的方法

$ORACLE_HOME/OPatch/opatch rollback -id 20760997

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26506993/viewspace-1976664/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26506993/viewspace-1976664/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值