签到成功

知道了

CNDBA社区CNDBA社区

ORACLE12C 自动打补丁报错JAVA摆错Can't locate File 解决

2018-05-11 15:48 7400 0 原创 ORACLE
作者: Marvinn

ORACLE 12C 自动打补丁跟之前版本也有较大改动,其中就少了一项应答文件包括位置以及PDB存在需要注意项….

语法如下:

http://www.cndba.cn/Marvinn/article/2781
http://www.cndba.cn/Marvinn/article/2781http://www.cndba.cn/Marvinn/article/2781

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实体程序升级的,跟原版本一致,这里不再说明…..

http://www.cndba.cn/Marvinn/article/2781

1、关监听,断应用这是肯定的http://www.cndba.cn/Marvinn/article/2781http://www.cndba.cn/Marvinn/article/2781

lsnrctl stop

2、打补丁,可以不关库以及ASM,后续自己按需要进行关闭http://www.cndba.cn/Marvinn/article/2781

[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以下版本补丁注册http://www.cndba.cn/Marvinn/article/2781http://www.cndba.cn/Marvinn/article/2781

将补丁注册到数据字典中:
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) DBhttp://www.cndba.cn/Marvinn/article/2781

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.....一切正常....至此,补丁完成

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Marvinn

Marvinn

关注

路漫漫其修远兮、吾将上下而求索

  • 99
    原创
  • 0
    翻译
  • 2
    转载
  • 36
    评论
  • 访问:458421次
  • 积分:449
  • 等级:中级会员
  • 排名:第12名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ