标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (102)
- 数据库 (1,683)
- DB2 (22)
- MySQL (73)
- Oracle (1,545)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (159)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (7)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (53)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (565)
- Oracle安装升级 (92)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (79)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- ORA-15411: Failure groups in disk group DATA have different number of disks.
- 断电引起的ORA-08102: 未找到索引关键字, 对象号 39故障处理
- ORA-00227: corrupt block detected in control file
- 手工删除19c rac
- 解决oracle数据文件路径有回车故障
- .wstop扩展名勒索数据库恢复
- Oracle Recovery Tools工具一键解决ORA-00376 ORA-01110故障(文件offline)
- OGG-02771 Input trail file format RELEASE 19.1 is different from previous trail file form at RELEASE 11.2.
- OGG-02246 Source redo compatibility level 19.0.0 requires trail FORMAT 12.2 or higher
- GoldenGate 19安装和打patch
- dd破坏asm磁盘头恢复
- 删除asmlib磁盘导致磁盘组故障恢复
- Kylin Linux 安装19c
- ORA-600 krse_arc_complete.4
- Oracle 19c 202410补丁(RUs+OJVM)
- ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复
- .mkp扩展名oracle数据文件加密恢复
- 清空redo,导致ORA-27048: skgfifi: file header information is invalid
- A_H_README_TO_RECOVER勒索恢复
- 通过alert日志分析客户自行对一个数据库恢复的来龙去脉和点评
标签归档:重建oraInventory
重建oraInventory解决ORA-20001
数据库启动报ORA-20001: Latest xml inventory is not loaded into table错误
Completed: ALTER DATABASE OPEN 2018-01-23T23:46:27.924841+08:00 CJQ0 started with pid=54, OS id=6653 2018-01-23T23:46:31.705550+08:00 Unable to obtain current patch information due to error: 20001, 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 =========================================================== Dumping current patch information =========================================================== Unable to obtain current patch information due to error: 20001 ===========================================================
查询相关sql报错
SYS@xffdb>select * from OPATCH_XML_INV ; ERROR: ORA-29913: error in executing ODCIEXTTABLEFETCH callout ORA-29400: data cartridge error KUP-04004: error while reading file /u03/app/oracle/product/12.2.0.1/dbhome/QOpatch/qopiprep.bat no rows selected Elapsed: 00:00:00.58 SYS@xffdb>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 no rows selected Elapsed: 00:00:00.63
datapatch -prereq报错
[oracle@xifenfei ~]$ $ORACLE_HOME/OPatch/datapatch -prereq SQL Patching tool version 12.2.0.1.0 Production on Tue Jan 23 18:11:32 2018 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 /u03/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_4909_2018_01_23_18_11_32/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 /u03/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_4909_2018_01_23_18_11_32/sqlpatch_invocation.log for information on how to resolve the above errors. SQL Patching tool complete on Tue Jan 23 18:11:45 2018
分析qopiprep.bat文件
cd $ORACLE_HOME PATH=/bin:/usr/bin export PATH # sed tried to convert from one encoding to other in presence of LC_ALL # or LANG settings. Since opatch returning UTF-8 based encoding we do not # need such a conversion. So safely skip it LANG=en_US.UTF-8 export LANG LC_ALL='' export LC_ALL # Option: "-retry 0" avoids retries in case of locked inventory. # Option: "-invPtrLoc" is required for non-central-inventory # locations. $OPATCH_PREP_LSINV_OPTS which may set by users # in the environment to configure special OPatch options # ("-jdk" is another good candidate that may require configuration!). # Option: "-all" gives information on all Oracle Homes # installed in the central inventory. With that information, the # patches of non-RDBMS homes could be fetched. DBSID=$ORACLE_SID ORABASE=`$ORACLE_HOME/bin/orabasehome` rm -rf $ORABASE/rdbms/log/xml_file_$DBSID.xml $ORACLE_HOME/OPatch/opatch lsinventory -xml $ORABASE/rdbms/log/xml_file_$DBSID.xml -retry 0 -invPtrLoc $ORACLE_HOME/oraInst.loc >> $ORABASE/rdbms/log/stout_$DBSID.txt cat $ORABASE/rdbms/log/xml_file_$DBSID.xml | sed 's/^ *//' | tr '\n' ' ' echo "UIJSVTBOEIZBEFFQBL" rm $ORABASE/rdbms/log/xml_file_$DBSID.xml rm $ORABASE/rdbms/log/stout_$DBSID.txt
这里主要是$ORACLE_HOME/OPatch/opatch lsinventory可能异常,测试该功能
qopatch_log日志
[oracle@xifenfei ~]$ tail -f /u03/app/oracle/product/12.2.0.1/dbhome/QOpatch/qopatch_log.log LOG file opened at 01/23/18 18:48:55 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 /u03/app/oracle/product/12.2.0.1/dbhome/QOpatch/qopiprep.bat KUP-04017: OS message: Error 0 KUP-04017: OS message: LsInventorySession failed: RawInventory gets null OracleHomeInfo cat: /u03/app/oracle/product/12.2.0.1/dbhome/rdbms/log/xml_file_xffdb.xml: No such file or direc KUP-04118: operation "pipe read", location "skudmir:2"
opatch lsinventory验证
[oracle@xifenfei ~]$ /u03/app/oracle/product/12.2.0.1/dbhome/OPatch/opatch lsinventory Oracle Interim Patch Installer version 12.2.0.1.6 Copyright (c) 2018, Oracle Corporation. All rights reserved. Oracle Home : /u03/app/oracle/product/12.2.0.1/dbhome Central Inventory : /u01/app/oraInventory from : /u03/app/oracle/product/12.2.0.1/dbhome/oraInst.loc OPatch version : 12.2.0.1.6 OUI version : 12.2.0.1.4 Log file location : /u03/app/oracle/product/12.2.0.1/dbhome/cfgtoollogs/opatch/opatch2018-01-23_23-50-29PM_1.log List of Homes on this system: Home name= OraDB12Home1, Location= "/u01/app/oracle/product/12.2.0/dbhome_1" LsInventorySession failed: RawInventory gets null OracleHomeInfo OPatch failed with error code 73
现在到这一步,可以确定判断opatch lsinventory运行异常,导致DBMS_QOPATCH无法正常工作,而引起opatch异常的原因是由于RawInventory gets null OracleHomeInfo
分析inventory.xml 文件
[oracle@xifenfei ContentsXML]$ cat inventory.xml <?xml version="1.0" standalone="yes" ?> <!-- Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved. --> <!-- Do not modify the contents of this file by hand. --> <INVENTORY> <VERSION_INFO> <SAVED_WITH>12.2.0.1.0</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> <HOME NAME="OraDB12Home1" LOC="/u01/app/oracle/product/12.2.0/dbhome_1" TYPE="O" IDX="1"/> </HOME_LIST> <COMPOSITEHOME_LIST> </COMPOSITEHOME_LIST> </INVENTORY>
因为该机器上安装过三个版本的oracle,12.2 beta,11.2.0.4,12.2.0.1,现在oracle home只有第一个beta的,因此这个部分肯定异常,导致后面的12.2正式版无法获取到oraclehome
重建oraInventory
[oracle@xifenfei app]$ cd $ORACLE_HOME/oui/bin [oracle@xifenfei bin]$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/oracle/product/12.2.0/dbhome_1" ORACLE_HOME_NAME="OraDB12betaHome1" Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 3935 MB Passed The inventory pointer is located at /etc/oraInst.loc 'AttachHome' was successful. [oracle@xifenfei bin]$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u02/app/oracle/product/11.2.0.4/dbhome" ORACLE_HOME_NAME="OraDb11g_home1" Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 3935 MB Passed The inventory pointer is located at /etc/oraInst.loc 'AttachHome' was successful. [oracle@xifenfei bin]$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u03/app/oracle/product/12.2.0.1/dbhome" ORACLE_HOME_NAME="OraDb122g_home1" Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 3935 MB Passed The inventory pointer is located at /etc/oraInst.loc 'AttachHome' was successful. --验证inventory.xml 文件 [oracle@xifenfei ContentsXML]$ cat inventory.xml <?xml version="1.0" standalone="yes" ?> <!-- Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved. --> <!-- Do not modify the contents of this file by hand. --> <INVENTORY> <VERSION_INFO> <SAVED_WITH>12.2.0.1.4</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> <HOME NAME="OraDB12betaHome1" LOC="/u01/app/oracle/product/12.2.0/dbhome_1" TYPE="O" IDX="1"/> <HOME NAME="OraDb11g_home1" LOC="/u02/app/oracle/product/11.2.0.4/dbhome" TYPE="O" IDX="2"/> <HOME NAME="OraDb122g_home1" LOC="/u03/app/oracle/product/12.2.0.1/dbhome" TYPE="O" IDX="3"/> </HOME_LIST> <COMPOSITEHOME_LIST> </COMPOSITEHOME_LIST> </INVENTORY>
验证opatch lsinventory
[oracle@xifenfei bin]$ opatch lsinv Oracle Interim Patch Installer version 12.2.0.1.6 Copyright (c) 2018, Oracle Corporation. All rights reserved. Oracle Home : /u03/app/oracle/product/12.2.0.1/dbhome Central Inventory : /u01/app/oraInventory from : /u03/app/oracle/product/12.2.0.1/dbhome/oraInst.loc OPatch version : 12.2.0.1.6 OUI version : 12.2.0.1.4 Log file location : /u03/app/oracle/product/12.2.0.1/dbhome/cfgtoollogs/opatch/opatch2018-01-24_00-19-55AM_1.log Lsinventory Output file location : /u03/app/oracle/product/12.2.0.1/dbhome/cfgtoollogs/opatch/lsinv/lsinventory2018-01-24_00-19-55AM.txt -------------------------------------------------------------------------------- Local Machine Information:: Hostname: xifenfei ARU platform id: 226 ARU platform description:: Linux x86-64 Installed Top-level Products (1): Oracle Database 12c 12.2.0.1.0 There are 1 products installed in this Oracle Home. There are no Interim patches installed in this Oracle Home. -------------------------------------------------------------------------------- OPatch succeeded.
验证dbms_qopatch工作正常
[oracle@xifenfei ContentsXML]$ $ORACLE_HOME/OPatch/datapatch -prereq SQL Patching tool version 12.2.0.1.0 Production on Wed Jan 24 00:21:48 2018 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 Nothing to roll back Nothing to apply SQL Patching tool complete on Wed Jan 24 00:21:55 2018 SYS@xffdb>select dbms_sqlpatch.verify_queryable_inventory from dual; VERIFY_QUERYABLE_INVENTORY -------------------------------------------------------------------------------------------------- OK Elapsed: 00:00:01.03 SYS@xffdb>select xmltransform(dbms_qopatch.get_opatch_lsinventory(), dbms_qopatch.GET_OPATCH_XSLT()) from dual ; XMLTRANSFORM(DBMS_QOPATCH.GET_OPATCH_LSINVENTORY(),DBMS_QOPATCH.GET_OPATCH_XSLT()) ---------------------------------------------------------------------------------------------------------- Oracle Querayable Patch Interface 1.0 ----------------------------------------- Elapsed: 00:00:01.09 SYS@xffdb>
通过修复错误的oraInventory解决ORA-20001问题