• 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

  • 相关阅读:
    Git 上传本地项目
    virtual和override
    ASP .NET依赖注入理解
    dotnet不是内部或外部的命令,也不是可运行的程序或批处理文件
    C++ 简单选择排序
    C++ 排序
    iOS UIDynamic
    iOS Modal
    C++ 折半查找
    C++ 二叉链表
  • 原文地址:https://www.cnblogs.com/lvcha001/p/14480476.html
Copyright © 2020-2023  润新知