1、 下载最新的12.1.0.1的db psu 与 opatch
p23054354_121010_linux-x86-64.zip
p6880880_121010_linux-x86-64.zip
2. 检查当前opatch版本
[oracle@host-172-16-3-132 ~]$ $oracle_home/opatch/opatch version
opatch version: 12.1.0.1.0
opatch succeeded.
3. 更新opatch
[oracle@host-172-16-3-132 ~]$ echo $oracle_home
/u01/app/oracle/product/12.1.0/dbhome_1
— root用户执行,/u01/app/oracle/product/12.1.0/dbhome_1/为oracle用户下的$oracle_home路径
[root@host-172-16-3-132 ~]# mv /u01/app/oracle/product/12.1.0/dbhome_1/opatch /u01/app/oracle/product/12.1.0/dbhome_1/opatch_bak
[root@host-172-16-3-132 u01]# ll p6880880_121010_linux-x86-64.zip
-rw-r–r– 1 oracle oinstall 80276058 sep 12 18:16 p6880880_121010_linux-x86-64.zi
[root@host-172-16-3-132 u01]# unzip p6880880_121010_linux-x86-64.zip -d /u01/app/oracle/product/12.1.0/dbhome_1/
[root@host-172-16-3-132 u01]# chown -r oracle:oinstall /u01/app/oracle/product/12.1.0/dbhome_1/opatch
4、 检查opatch
[oracle@host-172-16-3-132 u01]$ $oracle_home/opatch/opatch version
opatch version: 12.2.0.1.9
opatch succeeded.
5. 解压补丁文件
[root@host-172-16-3-132 u01]# unzip p23054354_121010_linux-x86-64.zip -d /u01/db_psu/
[root@host-172-16-3-132 u01]# chown -r oracle:oinstall /u01/db_psu/
6. 检查补丁之间有无冲突
[root@host-172-16-3-132 u01]# cd db_psu/
[root@host-172-16-3-132 db_psu]# ls
23054354 patchsearch.xml
[root@host-172-16-3-132 db_psu]# cd 23054354/
[root@host-172-16-3-132 23054354]# ls
19769486 20831107 21951844 23054354 readme.txt
20299016 21352619 22291141 readme.html
[oracle@host-172-16-3-132 23054354]$ $oracle_home/opatch/opatch prereq checkconflictagainstohwithdetail -phbasedir /u01/db_psu/23054354 -oh $oracle_home
oracle interim patch installer version 12.2.0.1.9
copyright (c) 2017, oracle corporation. all rights reserved.
prereq session
oracle home : /u01/app/oracle/product/12.1.0/dbhome_1
central inventory : /u01/app/orainventory
from : /u01/app/oracle/product/12.1.0/dbhome_1/orainst.loc
opatch version : 12.2.0.1.9
oui version : 12.1.0.1.0
log file location : /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/opatch2017-09-13_10-14-32am_1.log
invoking prereq “checkconflictagainstohwithdetail”
prereq “checkconflictagainstohwithdetail” passed.
opatch succeeded.
7. 为数据库做冷备份 (如果不考虑安全性,这步可以省略,有点点风险)
使用root用户备份oracle_home (将#oracle_home上级目录整个备份)
tar -zcvpf db_20170913.tar.gz dbhome_1/
8. 关闭实例和监听 (注意静态监听与oem)
[oracle@host-172-16-3-132 23054354]$ lsnrctl stop
[oracle@host-172-16-3-132 23054354]$ lsnrctl status
[root]#ps -ef|grep -v grep |grep local=no|awk ‘{print $2}’|xargs kill -9
[oracle@host-172-16-3-132 23054354]$ sqlplus / as sysdba
sql> shutdown immediate;
[oracle]$ netstat -an |grep 1158
9、 手动更新补丁
[oracle@host-172-16-3-132 23054354]$ $oracle_home/opatch/opatch apply
oracle interim patch installer version 12.2.0.1.9
copyright (c) 2017, oracle corporation. all rights reserved.
oracle home : /u01/app/oracle/product/12.1.0/dbhome_1
central inventory : /u01/app/orainventory
from : /u01/app/oracle/product/12.1.0/dbhome_1/orainst.loc
opatch version : 12.2.0.1.9
oui version : 12.1.0.1.0
log file location : /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/opatch2017-09-13_12-21-10pm_1.log
verifying environment and performing prerequisite checks…
opatch continues with these patches: 19769486 20299016 20831107 21352619 21951844 22291141 23054354
do you want to proceed [y|n]
y
user responded with: y
all checks passed.
please shutdown oracle instances running out of this oracle_home on the local system.
(oracle home = ‘/u01/app/oracle/product/12.1.0/dbhome_1’)
is the local system ready for patching [y|n]
y
user responded with: y
backing up files…
applying sub-patch ‘19769486’ to oh ‘/u01/app/oracle/product/12.1.0/dbhome_1’
applysession: optional component(s) [ oracle.network.cman, 12.1.0.1.0 ] not present in the oracle home or a higher version is found.
composite patch 23054354 successfully applied.
log file location: /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/opatch2017-09-13_12-21-10pm_1.log
opatch succeeded.
sql> startup;
oracle instance started.
total system global area 2371719168 bytes
fixed size 2853264 bytes
variable size 654313072 bytes
database buffers 1694498816 bytes
redo buffers 20054016 bytes
database mounted.
database opened.
sql> alter pluggable database all open;
pluggable database altered.
10、 将补丁注册到数据字典中:
注意:12c的补丁注册改成了用datapatch工具,而不是以前版本的 @$oracle_home/rdbms/admin/catbundle.sql psu apply
[oracle@host-172-16-3-132 opatch]$ cd $oracle_home/opatch
[oracle@host-172-16-3-132 opatch]$ ./datapatch -verbose
connecting to database…ok
determining current state…
currently installed sql patches:
pdb cdb$root:
pdb pdb$seed:
pdb pdb01:
…..
logfile: /u01/app/oracle/product/12.1.0/dbhome_1/sqlpatch/23054354/23054354_apply_andycdb_pdb01_2017sep14_04_41_10.log (no errors)
catbundle generate logfile: /u01/app/oracle/cfgtoollogs/catbundle/catbundle_psu_andycdb_pdb01_generate_2017sep14_04_41_11.log (no errors)
catbundle apply logfile: /u01/app/oracle/cfgtoollogs/catbundle/catbundle_psu_andycdb_pdb01_apply_2017sep14_04_41_13.log (no errors)
sql patching tool complete on thu sep 14 04:41:53 2017
11、 验证是否打补丁成功
col action_time for a30;
col comments for a20;
col bundle_series for a10;
select action_time,bundle_series,comments from dba_registry_history;
action_time bundle_ser comments
—————————— ———- ——————–
14-sep-17 03.46.47.445096 am psu patchset 12.1.0.0.0
14-sep-17 04.28.21.213333 am psu psu 12.1.0.1.160719
14-sep-17 04.28.32.004194 am psu psu 12.1.0.1.160719
14-sep-17 04.28.42.435304 am psu psu 12.1.0.1.160719
14-sep-17 04.28.53.797447 am psu psu 12.1.0.1.160719
14-sep-17 04.29.03.854827 am psu psu 12.1.0.1.160719
14-sep-17 04.29.14.465123 am psu psu 12.1.0.1.160719
14-sep-17 04.29.25.696294 am psu psu 12.1.0.1.160719
8 rows selected
[oracle@12 opatch]$ $oracle_home/opatch/opatch lsinventory
patch 23054354 : applied on thu sep 14 04:12:25 cst 2017
unique patch id: 20238050
sql> select count(*) from dba_objects where status<>’valid’;
count(*)
———-
0
12、 启动监听
[oracle@12 opatch]$ lsnrctl start
[oracle@12 opatch]$ lsnrctl status