12.2 DB測試環境啟動報錯ORA-20001


一、報錯

測試庫12.2 DB 啟動,觀察DB Alert存在報錯信息

Completed: ALTER DATABASE OPEN
2021-03-04T22:39:51.795680+08:00
Unable to obtain current patch information due to error: 20001, ORA-20001: Latest xml inventory is not loaded into table
ORA-06512: 在 "SYS.DBMS_QOPATCH", line 777
ORA-06512: 在 "SYS.DBMS_QOPATCH", line 864
ORA-06512: 在 "SYS.DBMS_QOPATCH", line 2222
ORA-06512: 在 "SYS.DBMS_QOPATCH", line 740
ORA-06512: 在 "SYS.DBMS_QOPATCH", line 2247

===========================================================
Dumping current patch information
===========================================================
Unable to obtain current patch information due to error: 20001
===========================================================

 

二、參考學習



12.2:DB Alert.log shows ORA-20001: Latest xml inventory,ORA-06512: at "SYS.DBMS_QOPATCH","KUP-04004: error while reading file" (Doc ID 2323937.1)
https://www.xifenfei.com/2018/01/orainventory-ora-20001.html

 

三、問題排查

3.1 參考MOS處理,非權限問題

SQL> select * from OPATCH_XML_INV ;
ERROR:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-29400: data cartridge error
KUP-04004: error while reading file
/picclife/app/oracle/product/12.2.0/db_1/QOpatch/qopiprep.bat


select xmltransform(dbms_qopatch.get_opatch_lsinventory(), dbms_qopatch.GET_OPATCH_XSLT()) from dual ;
ERROR:
ORA-20001: Latest xml inventory is not loaded into table
ORA-06512: at "SYS.DBMS_QOPATCH", line 777
ORA-06512: at "SYS.DBMS_QOPATCH", line 864
ORA-06512: at "SYS.DBMS_QOPATCH", line 2222
ORA-06512: at "SYS.DBMS_QOPATCH", line 740
ORA-06512: at "SYS.DBMS_QOPATCH", line 2247


datapatch -prereq報錯

$ $ORACLE_HOME/OPatch/datapatch -prereq                                                                   
SQL Patching tool version 12.2.0.1.0 Production on Thu Mar  4 22:49:46 2021
Copyright (c) 2012, 2017, 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)

Queryable inventory could not determine the current opatch status.
Execute 'select dbms_sqlpatch.verify_queryable_inventory from dual'
and/or check the invocation log
/picclife/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_8718_2021_03_04_22_49_46/sqlpatch_invocation.log
for the complete error.

Prereq check failed, exiting without installing any patches.

Please refer to MOS Note 1609718.1 and/or the invocation log
/picclife/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_8718_2021_03_04_22_49_46/sqlpatch_invocation.log
for information on how to resolve the above errors.

SQL Patching tool complete on Thu Mar  4 22:49:50 2021

c11:/picclife/app/oracle$ tail -200f /picclife/app/oracle/product/12.2.0/db_1/rdbms/log/qopatch_log.log
LOG file opened at 03/04/21 22:43:13

 
         

KUP-05007: Warning: Intra source concurrency disabled because the preprocessor option is being used.

 
         

Field Definitions for table OPATCH_XML_INV
Record format DELIMITED BY NEWLINE
Data in file has same endianness as the platform
Reject rows with all null fields

 
         

Fields in Data Source:

 
         

XML_INVENTORY CHAR (100000000)
Terminated by "UIJSVTBOEIZBEFFQBL"
Trim whitespace same as SQL Loader
KUP-04004: error while reading file /picclife/app/oracle/product/12.2.0/db_1/QOpatch/qopiprep.bat
KUP-04017: OS message: Error 0
KUP-04017: OS message: OPatch cannot find a valid oraInst.loc file to locate Central Inventory.
cat: /picclife/app/oracle/product/12.2.0/db_1/rdbms/log/xml_file_c11.xml: No such file
KUP-04118: operation "pipe read", location "skudmir:2"

 
         

$ ls -ld $ORACLE_HOME/rdbms/log
drwxr-xr-x. 2 oracle oinstall 4096 3月 4 22:43 /picclife/app/oracle/product/12.2.0/db_1/rdbms/log
$ chmod 775 /picclife/app/oracle/product/12.2.0/db_1/rdbms/log

 

 

3.2  問題定位

OPatch 找不到有效的 oraInst.loc 文件來定位主產品清單。

c11:/picclife/app/oracle/product/12.2.0/db_1/OPatch$ ./opatch lsinventory
Oracle 中間補丁程序安裝程序版本 12.2.0.1.6
版權所有 (c) 2021, Oracle Corporation。保留所有權利。
Oracle Home       : /picclife/app/oracle/product/12.2.0/db_1
Central Inventory : n/a
   from           : /picclife/app/oracle/product/12.2.0/db_1/oraInst.loc
OPatch version    : 12.2.0.1.6
OUI version       : 12.2.0.1.4
Log file location : /picclife/app/oracle/product/12.2.0/db_1/cfgtoollogs/opatch/opatch2021-03-04_22-52-09下午_1.log
OPatch 找不到有效的 oraInst.loc 文件來定位主產品清單。
OPatch failed with error code 104

查詢日志

# cat /picclife/app/oracle/product/12.2.0/db_1/cfgtoollogs/opatch/opatch2021-03-04_22-52-09下午_1.log
[2021-3-4 22:52:09]          OUI exists, the oraclehome is OUI based.
[2021-3-4 22:52:09]          OUI exists, the oraclehome is OUI based.
[2021-3-4 22:52:09]          OPatch invoked as follows: 'lsinventory -invPtrLoc /picclife/app/oracle/product/12.2.0/db_1/oraInst.loc '
[2021-3-4 22:52:09]          OUI-67077:
                             Oracle 主目錄       : /picclife/app/oracle/product/12.2.0/db_1
                             主產品清單: n/a
                                從           : /picclife/app/oracle/product/12.2.0/db_1/oraInst.loc
                             OPatch 版本    : 12.2.0.1.6
                             OUI 版本       : 12.2.0.1.4
                             OUI 位置      : /picclife/app/oracle/product/12.2.0/db_1/oui
                             日志文件位置 : /picclife/app/oracle/product/12.2.0/db_1/cfgtoollogs/opatch/opatch2021-03-04_22-52-09下午_1.log
[2021-3-4 22:52:09]          Patch history file: /picclife/app/oracle/product/12.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt
[2021-3-4 22:52:09]          OUI-67104:OPatch 找不到有效的 oraInst.loc 文件來定位主產品清單。
[2021-3-4 22:52:09]          堆棧說明: java.lang.RuntimeException: OPatch 找不到有效的 oraInst.loc 文件來定位主產品清單。
[2021-3-4 22:52:09]          堆棧跟蹤: oracle.opatch.OPatchEnv.printOPatchHeader(OPatchEnv.java:6225)
[2021-3-4 22:52:09]          堆棧跟蹤: oracle.opatch.OPatchSession.process(OPatchSession.java:1925)
[2021-3-4 22:52:09]          堆棧跟蹤: oracle.opatch.OPatch.process(OPatch.java:796)
[2021-3-4 22:52:09]          堆棧跟蹤: oracle.opatch.OPatch.main(OPatch.java:846)

觀察oraInst.loc 文件

# cat /etc/oraInst.loc 
inventory_loc=/picclife/app/oraInventory
inst_group=oinstall

# ls -ld /etc/oraInst.loc
-rw-r--r--. 1 root root 61 5月 24 2019 /etc/oraInst.loc

這個權限oracle 根本無法讀取,再次找其它的oraInst.loc文件

檢查文本信息! 找到了Oracle Opatch讀取的oraInst.loc配置文件!

發現缺失了一個i字符! ??? 

$ cat /picclife/app/oracle/product/12.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt
Date & Time : Thu Mar 04 22:55:22 CST 2021
Oracle Home : /picclife/app/oracle/product/12.2.0/db_1
OPatch Ver. : 12.2.0.1.6
Current Dir : /picclife/app/oracle/product/12.2.0/db_1/OPatch
Command     : lsinv -invPtrLoc /picclife/app/oracle/product/12.2.0/db_1/oraInst.loc 
Log File    : /picclife/app/oracle/product/12.2.0/db_1/cfgtoollogs/opatch/opatch2021-03-04_22-55-22下午_1.log


c11:/picclife/app/oracle/product/12.2.0/db_1/OPatch$ cat /picclife/app/oracle/product/12.2.0/db_1/oraInst.loc 
nventory_loc=/picclife/app/oraInventory
inst_group=oinstall
修改

inventory_loc=/picclife/app/oraInventory

 

3.3 驗證

$ ls -lrt /picclife/app/oracle/product/12.2.0/db_1/oraInst.loc 
-rw-r-----. 1 oracle oinstall 61 5月  24 2019 /picclife/app/oracle/product/12.2.0/db_1/oraInst.loc
$ vi /picclife/app/oracle/product/12.2.0/db_1/oraInst.loc 
inst_group=oinstall


$ ./opatch lsinv
已安裝的頂級產品 (1):
Oracle Database 12c                                                  12.2.0.1.0
此 Oracle 主目錄中已安裝 1 個產品。
此 Oracle 主目錄中未安裝任何中間補丁程序。
--------------------------------------------------------------------------------
OPatch succeeded.




$ $ORACLE_HOME/OPatch/datapatch -prereq  
SQL Patching tool version 12.2.0.1.0 Production on Thu Mar  4 23:03:19 2021
Copyright (c) 2012, 2017, 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: CDB$ROOT PDB$SEED C11PDB
    Nothing to roll back
    Nothing to apply
SQL Patching tool complete on Thu Mar  4 23:03:29 2021

重啟OK

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM