ORACLE 12C 自动打补丁跟之前版本也有较大改动,其中就少了一项应答文件包括位置以及PDB存在需要注意项….
语法如下:
Example:
To patch GI home and all RAC homes:
'<GI_HOME>/OPatch/opatchauto apply'
To patch multiple homes:
'<GI_HOME>/OPatch/opatchauto apply -oh <GI_HOME>,<RAC_HOME1>,<RAC_HOME2>'
To patch databases running from RAC homes only:
'<RAC_HOME>/OPatch/opatchauto apply -database db1,db2...dbn'
To patch software-only installation:
'<RAC_HOME>/OPatch/opatchauto apply -oh <RAC_HOME>' OR
'<GI_HOME>/OPatch/opatchauto apply -oh <GI_HOME>'
自动打补丁过程:
其中关于OPatch实体程序升级的,跟原版本一致,这里不再说明…..
1、关监听,断应用这是肯定的
lsnrctl stop
2、打补丁,可以不关库以及ASM,后续自己按需要进行关闭
[root@rac12chub2 ~]# cd /g01/app/grid/12.2.0/OPatch/auto/core/bin/
[root@rac12chub2 bin]# ./opatchauto.sh apply /psu/27468969/ -analyze --分析补丁,若发现SKIP的补丁,可能需要手动指定ORACLE目录打补丁 ,我这里没有分析,直接打补丁的
[root@rac12chub2 bin]# ./opatchauto.sh apply /psu/27468969/
OPatchauto session is initiated at Fri May 11 14:19:10 2018
System initialization log file is /g01/app/grid/12.2.0/cfgtoollogs/opatchautodb/systemconfig2018-05-11_02-19-16PM.log.
OPATCHAUTO-72050: System instance creation failed.
OPATCHAUTO-72050: Failed while retrieving system information.
OPATCHAUTO-72050: Please check log file for more details.
OPatchauto session completed at Fri May 11 14:19:27 2018
Time taken to complete the session 0 minute, 18 seconds
Topology creation failed.
查看日志发现:
2018-05-11 14:19:27,627 FINE [1] com.oracle.glcm.patch.auto.db.product.driver.crs.AbstractCrsProductDriver - oh: /g01/app/grid/12.2.0
2018-05-11 14:19:27,628 FINE [1] com.oracle.glcm.patch.auto.db.product.driver.crs.AbstractCrsProductDriver - oh: /u01/oracle/12.2.0
2018-05-11 14:19:27,628 FINE [1] com.oracle.glcm.patch.auto.db.product.driver.crs.AbstractCrsProductDriver - version: 12.2.0.1.0
2018-05-11 14:19:27,762 INFO [41] oracle.dbsysmodel.driver.sdk.util.OsysUtility$ReaderThread - Can't locate File/Basename.pm: /root/perl5/lib/perl5/File/Basename.pm: (null) at /u01/oracle/12.2.0/OPatch/auto/database/bin/RemoteHostExecutor.pl line 3.
2018-05-11 14:19:27,762 INFO [41] oracle.dbsysmodel.driver.sdk.util.OsysUtility$ReaderThread - BEGIN failed--compilation aborted at /u01/oracle/12.2.0/OPatch/auto/database/bin/RemoteHostExecutor.pl line 3.
2018-05-11 14:19:27,764 INFO [1] oracle.dbsysmodel.driver.sdk.util.OsysUtility - Error message :::
2018-05-11 14:19:27,765 INFO [1] oracle.dbsysmodel.driver.sdk.util.OsysUtility - Output message :::
2018-05-11 14:19:27,765 SEVERE [1] com.oracle.glcm.patch.auto.db.integration.model.productsupport.topology.TopologyCreator - Not able to retrieve system instance details :: Unable to execute command :
2018-05-11 14:19:27,765 SEVERE [1] com.oracle.glcm.patch.auto.db.integration.model.productsupport.topology.TopologyCreator - Failure reason::null
解决:注意,首先得确认先安装perl模块,然后查看/root/perl5/lib/perl5/File/Basename.pm路径下有没有Basename.pm
安装perl模块
[root@rac12chub2 bin]# yum install perl*
若root目录下没有,拷贝到对应目录下
[root@rac12cleaf2 ~]# find / -name "Basename.pm"
/usr/share/perl5/File/Basename.pm
[root@rac12cleaf2 ~]# cp /usr/share/perl5/File/Basename.pm /root/perl5/lib/perl5/File/Basename.pm
设置环境变量
[root@rac12chub2 bin]# export ORACLE_HOME=/g01/app/grid/12.2.0
[root@rac12chub2 bin]# export PERL5LIB=ORACLE_HOME/perl/lib/5.22.0:ORACLE_HOMEroot/perl/lib/site_perl/5.22.0/x86_64-linux-thread-multi
重新打补丁
[root@rac12chub2 ~]# cd /g01/app/grid/12.2.0/OPatch/auto/core/bin/
[root@rac12chub2 bin]# ./opatchauto.sh apply /psu/27468969/
报错:
Patch: /psu/27468969/26839277
Log: /g01/app/grid/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_14-51-58PM_1.log
Reason: Failed during Analysis: CheckSystemSpace Failed, [ Prerequisite Status: FAILED, Prerequisite output:
The details are:
Required amount of space(7271.763MB) is not available.]
Patch: /psu/27468969/27144050
Log: /g01/app/grid/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_14-51-58PM_1.log
Reason: Failed during Analysis: CheckSystemSpace Failed, [ Prerequisite Status: FAILED, Prerequisite output:
The details are:
Required amount of space(7271.763MB) is not available.]
空间不足,需要至少7.2G
清理空间
[root@rac12chub2 bin]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 36G 31G 4.8G 87% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 2.0G 640M 1.4G 32% /dev/shm
tmpfs 3.9G 8.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 497M 121M 377M 25% /boot
tmpfs 783M 0 783M 0% /run/user/0
[root@rac12chub2 home]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 36G 29G 7.6G 79% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 2.0G 640M 1.4G 32% /dev/shm
tmpfs 3.9G 8.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 497M 121M 377M 25% /boot
tmpfs 783M 0 783M 0% /run/user/0
重新打补丁,完整正常输出....但是我们可以发现/psu/27468969/27458609、/psu/27468969/26839277、/psu/27468969/27144050这三个ORACLE目录补丁是没有应用上....手动打
[root@rac12chub2 bin]# ./opatchauto.sh apply /psu/27468969/
OPatchauto session is initiated at Fri May 11 15:03:26 2018
System initialization log file is /g01/app/grid/12.2.0/cfgtoollogs/opatchautodb/systemconfig2018-05-11_03-03-29PM.log.
Session log file is /g01/app/grid/12.2.0/cfgtoollogs/opatchauto/opatchauto2018-05-11_03-04-19PM.log
The id for this session is 7S9N
Executing OPatch prereq operations to verify patch applicability on home /g01/app/grid/12.2.0
Executing OPatch prereq operations to verify patch applicability on home /u01/oracle/12.2.0
Patch applicability verified successfully on home /u01/oracle/12.2.0
Patch applicability verified successfully on home /g01/app/grid/12.2.0
Verifying SQL patch applicability on home /u01/oracle/12.2.0
SQL patch applicability verified successfully on home /u01/oracle/12.2.0
Preparing to bring down database service on home /u01/oracle/12.2.0
Successfully prepared home /u01/oracle/12.2.0 to bring down database service
Bringing down CRS service on home /g01/app/grid/12.2.0
Prepatch operation log file location: /g01/grid/crsdata/rac12chub2/crsconfig/crspatch_rac12chub2_2018-05-11_03-05-45PM.log
CRS service brought down successfully on home /g01/app/grid/12.2.0
Performing prepatch operation on home /u01/oracle/12.2.0
Perpatch operation completed successfully on home /u01/oracle/12.2.0
Start applying binary patch on home /u01/oracle/12.2.0
Binary patch applied successfully on home /u01/oracle/12.2.0
Performing postpatch operation on home /u01/oracle/12.2.0
Postpatch operation completed successfully on home /u01/oracle/12.2.0
Start applying binary patch on home /g01/app/grid/12.2.0
Binary patch applied successfully on home /g01/app/grid/12.2.0
Starting CRS service on home /g01/app/grid/12.2.0
Postpatch operation log file location: /g01/grid/crsdata/rac12chub2/crsconfig/crspatch_rac12chub2_2018-05-11_03-17-29PM.log
CRS service started successfully on home /g01/app/grid/12.2.0
Preparing home /u01/oracle/12.2.0 after database service restarted
No step execution required.........
Trying to apply SQL patch on home /u01/oracle/12.2.0
SQL patch applied successfully on home /u01/oracle/12.2.0
OPatchAuto successful.
--------------------------------Summary--------------------------------
Patching is completed successfully. Please find the summary as follows:
Host:rac12chub2
RAC Home:/u01/oracle/12.2.0
Version:12.2.0.1.0
Summary:
==Following patches were SKIPPED:
Patch: /psu/27468969/27458609
Reason: This patch is not applicable to this specified target type - "rac_database"
Patch: /psu/27468969/26839277
Reason: This patch is not applicable to this specified target type - "rac_database"
Patch: /psu/27468969/27144050
Reason: This patch is not applicable to this specified target type - "rac_database"
==Following patches were SUCCESSFULLY applied:
Patch: /psu/27468969/27464465
Log: /u01/oracle/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_15-07-02PM_1.log
Patch: /psu/27468969/27674384
Log: /u01/oracle/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_15-07-02PM_1.log
Host:rac12chub2
CRS Home:/g01/app/grid/12.2.0
Version:12.2.0.1.0
Summary:
==Following patches were SUCCESSFULLY applied:
Patch: /psu/27468969/26839277
Log: /g01/app/grid/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_15-10-10PM_1.log
Patch: /psu/27468969/27144050
Log: /g01/app/grid/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_15-10-10PM_1.log
Patch: /psu/27468969/27458609
Log: /g01/app/grid/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_15-10-10PM_1.log
Patch: /psu/27468969/27464465
Log: /g01/app/grid/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_15-10-10PM_1.log
Patch: /psu/27468969/27674384
Log: /g01/app/grid/12.2.0/cfgtoollogs/opatchauto/core/opatch/opatch2018-05-11_15-10-10PM_1.log
OPatchauto session completed at Fri May 11 15:27:15 2018
Time taken to complete the session 23 minutes, 49 seconds
Can't open perl script "/auto/database/bin/CleanUp.pl": (null)
手动给ORACLE目录打psu/27468969/27458609、/psu/27468969/26839277、/psu/27468969/27144050这三个补丁
[root@rac12chub2 bin]# export ORACLE_HOME=/u01/oracle/12.2.0/
[root@rac12chub2 bin]# export PERL5LIB=ORACLE_HOME/perl/lib/5.22.0:ORACLE_HOMEroot/perl/lib/site_perl/5.22.0/x86_64-linux-thread-multi
[root@rac12chub2 bin]# cd /u01/oracle/12.2.0/OPatch/auto/core/bin/
[root@rac12chub2 bin]# ./opatchauto.sh apply /psu/27468969/27458609 -oh /u01/oracle/12.2.0/
[root@rac12chub2 bin]# ./opatchauto.sh apply /psu/27468969/26839277 -oh /u01/oracle/12.2.0/
[root@rac12chub2 bin]# ./opatchauto.sh apply /psu/27468969/27144050 -oh /u01/oracle/12.2.0/
3、补丁注册(datapatch 只需要到其中一个节点执行即可)
12C以下版本补丁注册
将补丁注册到数据字典中:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
执行成功后,查看记录:
SQL> select * from dba_registry_history;
补丁打完,最后一步补丁注册,区别在于是否有PDB,有则需要OPEN所有PDB
Steps to Run the Datapatch Utility for Standalone DB Versus Single/Multitenant (CDB/PDB) DB
| Steps | Standalone DB | Single/Multitenant (CDB/PDB) DB |
|---|---|---|
| 1 | sqlplus / as sysdba | sqlplus / as sysdba |
| 2 | startup | startup |
| 3 | exit | alter pluggable database all open upgrade; |
| 4 | cd $ORACLE_HOME/OPatch | exit |
| 5 | ./datapatch -verbose | cd $ORACLE_HOME/OPatch |
| 6 | ./datapatch -verbose |
oracle@rac12chub1:/home/oracle>sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Fri May 11 15:53:57 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
SQL> shwo pdbs
SP2-0042: unknown command "shwo pdbs" - rest of line ignored.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 MARVIN1PDB MOUNTED
SQL> alter pluggable database all open; --官方文档这里启动到OPEN,其实应该启动到OPEN UPGRADE,否则后续PDB启动会受限模式,并且后续补丁会应用不到PDB,需要手动启动到UPGRADE,再应用PDB注册补丁
Warning: PDB altered with errors.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 MARVIN1PDB READ WRITE YES
oracle@rac12chub1:/home/oracle>cd $ORACLE_HOME/
oracle@rac12chub1:/u01/oracle/12.2.0>cd OPatch
oracle@rac12chub1:/u01/oracle/12.2.0/OPatch>./datapatch -verbose
查看补丁注册情况(ORACLE 12CR2)
SQL> select * from dba_registry_history;
ACTION_TIME
---------------------------------------------------------------------------
ACTION NAMESPACE
------------------------------ ------------------------------
VERSION ID
------------------------------ ----------
COMMENTS
--------------------------------------------------------------------------------
BOOTSTRAP DATAPATCH
12.2.0.1
RDBMS_12.2.0.1.0DBAPR2018RU_LINUX.X64_180329
SQL> select patch_id,action,status from dba_registry_sqlpatch;
PATCH_ID ACTION STATUS
---------- --------------- ---------------
27674384 APPLY SUCCESS
但是PDB启动模式受限,可能是因为补丁注册,只注册到了CDB,而PDB没有,原因是我启动PDB是READ WRITE模式,而非UPGRADE模式,导致PDBS没有注册到补丁
SQL> alter pluggable database all close;
Pluggable database altered.
SQL> alter pluggable database all open;
Warning: PDB altered with errors.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 MARVIN1PDB READ WRITE YES
查看alert告警日志:
MARVIN1PDB(3):Database Characterset for MARVIN1PDB is AL32UTF8
MARVIN1PDB(3):***************************************************************
MARVIN1PDB(3):WARNING: Pluggable Database MARVIN1PDB with pdb id - 3 is
MARVIN1PDB(3): altered with errors or warnings. Please look into
MARVIN1PDB(3): PDB_PLUG_IN_VIOLATIONS view for more details.
MARVIN1PDB(3):***************************************************************
2018-05-11T16:03:05.809794+08:00
MARVIN1PDB(3):Opening pdb with no Resource Manager plan active
Pluggable database MARVIN1PDB opened read write
Completed: alter pluggable database all open
查看视图PDB_PLUG_IN_VIOLATIONS,输出信息
SQL> col name for a60;
col cause for a60;
col action for a60;
col message for a120;
set linesize 10000
select name,cause,action,message from PDB_PLUG_IN_VIOLATIONS;
NAME CAUSE ACTION MESSAGE
------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------
MARVIN1PDB SQL Patch Call datapatch to install in the PDB or the CDB DBRU bundle patch 180417 (DATABASE APR 2018 RELEASE UPDATE 12.2.0.1.180417): Installed in the CDB but not in the PDB.
重启PDB到UPGRADE模式
SQL> alter pluggable database all close;
Pluggable database altered.
SQL> alter pluggable database all open upgrade;
Pluggable database altered.
补丁注册到指定的PDB,可以写多个,以逗号分割
oracle@rac12chub1:/u01/oracle/12.2.0/OPatch>./datapatch -help --查看datapatch 工具具体用法
oracle@rac12chub1:/u01/oracle/12.2.0/OPatch>./datapatch -pdbs MARVIN1PDB
SQL Patching tool version 12.2.0.1.0 Production on Fri May 11 16:20:51 2018
Copyright (c) 2012, 2018, Oracle. All rights reserved.
Connecting to database...OK
Note: Datapatch will only apply or rollback SQL fixes for PDBs
that are in an open state, no patches will be applied to closed PDBs.
Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
(Doc ID 1585822.1)
Determining current state...done
Adding patches to installation queue and performing prereq checks...done
Installation queue:
For the following PDBs: MARVIN1PDB
Nothing to roll back
The following patches will be applied:
27674384 (DATABASE APR 2018 RELEASE UPDATE 12.2.0.1.180417)
Installing patches...
Patch installation complete. Total patches installed: 1
Validating logfiles...done
SQL Patching tool complete on Fri May 11 16:22:59 2018
验证PDB启动是否正常
SQL> alter pluggable database all close;
Pluggable database altered.
SQL> alter pluggable database all open;
Pluggable database altered.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 MARVIN1PDB READ WRITE NO
SQL>
OK.....一切正常....至此,补丁完成
版权声明:本文为博主原创文章,未经博主允许不得转载。



