标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 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)
- 操作系统 (103)
- 数据库 (1,756)
- DB2 (22)
- MySQL (76)
- Oracle (1,598)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (163)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (588)
- Oracle安装升级 (96)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (84)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (39)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (22)
-
最近发表
- Oracle Recovery Tools恢复案例总结—202505
- ORA-600 kddummy_blkchk 数据库循环重启
- 记录一次asm disk加入到vg通过恢复直接open库的案例
- CHECKDB 发现了 N 个分配错误和 M 个一致性错误
- 达梦数据库dm.ctl文件异常恢复
- Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
- 可能是 tempdb 空间用尽或某个系统表不一致故障处理
- 11.2.0.4库中遇到ORA-600 kcratr_nab_less_than_odr报错
- [MY-013183] [InnoDB] Assertion failure故障处理
- Oracle 19c 202504补丁(RUs+OJVM)-19.27
- Oracle Recovery Tools修复ORA-600 6101/kdxlin:psno out of range故障
- pdu完美支持金仓数据库恢复(KingbaseES)
- 虚拟机故障引起ORA-00310 ORA-00334故障处理
- pg创建gbk字符集库
- PostgreSQL运行日志管理
- ora-600 kdsgrp1 错误描述
- GAM、SGAM 或 PFS 页上存在页错误处理
- ORA-600 krhpfh_03-1208
- VMware勒索加密恢复(vmdk勒索恢复)
- ORA-39773: parse of metadata stream failed故障处理
分类目录归档:ORA-xxxxx
ORA-00333 故障恢复
数据库启动报错
SQL> startup ORACLE instance started. Total System Global Area 1241513984 bytes Fixed Size 1219136 bytes Variable Size 218105280 bytes Database Buffers 1006632960 bytes Redo Buffers 15556608 bytes Database mounted. ORA-00333: redo log read error block 48641 count 8192
数据库启动报ORA-00333错误,官方解释为读redo log发生错误.
00333, 00000, "redo log read error block %s count %s" // *Cause: An IO error occurred while reading the log described in the // accompanying error. // *Action: Restore accessibility to file, or get another copy of the file.
alert日志
Sat Apr 14 00:39:13 2018 alter database open Sat Apr 14 00:39:13 2018 Beginning crash recovery of 1 threads parallel recovery started with 7 processes Sat Apr 14 00:39:13 2018 Started redo scan Sat Apr 14 00:39:14 2018 Errors in file /oracle/admin/oa/udump/oa_ora_5659.trc: ORA-00333: redo log read error block 54785 count 2048 ORA-00312: online log 1 thread 1: '/oracle/oradata/oa/redo01.log' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 54785 Additional information: 957952 Sat Apr 14 00:39:14 2018 Errors in file /oracle/admin/oa/udump/oa_ora_5659.trc: ORA-00333: redo log read error block 48641 count 8192 ORA-00312: online log 1 thread 1: '/oracle/oradata/oa/redo01.log' ORA-27091: unable to queue I/O ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 54785 Additional information: 957952 Sat Apr 14 00:39:14 2018 Aborting crash recovery due to error 333 Sat Apr 14 00:39:14 2018 Errors in file /oracle/admin/oa/udump/oa_ora_5659.trc: ORA-00333: redo log read error block 48641 count 8192 ORA-333 signalled during: alter database open...
由于硬件异常,数据库在启动的时候读取redo异常,从而使得数据库无法正常启动
检查系统日志
Apr 14 11:14:58 oa kernel: Info fld=0x0, Current sda: sense key Hardware Error Apr 14 11:14:59 oa kernel: Additional sense: Internal target failure Apr 14 11:14:59 oa kernel: end_request: I/O error, dev sda, sector 190500041 Apr 14 11:14:59 oa kernel: SCSI error : <0 0 0 0> return code = 0x8000002 Apr 14 11:14:59 oa kernel: Info fld=0x0, Current sda: sense key Hardware Error Apr 14 11:14:59 oa kernel: Additional sense: Internal target failure Apr 14 11:14:59 oa kernel: end_request: I/O error, dev sda, sector 190500049 Apr 14 11:14:59 oa kernel: SCSI error : <0 0 0 0> return code = 0x8000002 Apr 14 11:14:59 oa kernel: Info fld=0x0, Current sda: sense key Hardware Error Apr 14 11:14:59 oa kernel: Additional sense: Internal target failure Apr 14 11:14:59 oa kernel: end_request: I/O error, dev sda, sector 190500057 Apr 14 11:14:59 oa kernel: SCSI error : <0 0 0 0> return code = 0x8000002 Apr 14 11:14:59 oa kernel: Info fld=0x0, Current sda: sense key Hardware Error Apr 14 11:14:59 oa kernel: Additional sense: Internal target failure Apr 14 11:14:59 oa kernel: end_request: I/O error, dev sda, sector 190500065 Apr 14 11:14:59 oa kernel: SCSI error : <0 0 0 0> return code = 0x8000002
大量类似I/O error, dev sda, sector错误,很可能是由于硬件方面异常导致.
损坏redo为当前redo
针对这样的情况,由于是硬件故障,先要通过dbv或者rman检查其他数据文件是否正常,如果有数据文件不能读,那需要对数据文件进行特殊处理.本次恢复的中,客户相对比较幸运,所有数据文件全部可以正常访问,只是当前redo异常,通过隐含参数强制拉库,然后导出数据,重建库解决.类似文章:又一起存储故障导致ORA-00333 ORA-00312恢复
重建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问题