--关闭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
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/