标签云
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,674)
- DB2 (22)
- MySQL (73)
- Oracle (1,536)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (22)
- ORA-xxxxx (159)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (14)
- ORACLE 21C (3)
- Oracle 23ai (7)
- Oracle ASM (67)
- Oracle Bug (8)
- Oracle RAC (52)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (562)
- Oracle安装升级 (92)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (78)
- 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)
-
最近发表
- 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日志分析客户自行对一个数据库恢复的来龙去脉和点评
- ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME
- ORA-01092 ORA-00604 ORA-01558故障处理
- ORA-65088: database open should be retried
- Oracle 19c异常恢复—ORA-01209/ORA-65088
- ORA-600 16703故障再现
- 数据库启动报ORA-27102 OSD-00026 O/S-Error: (OS 1455)
- .[metro777@cock.li].Elbie勒索病毒加密数据库恢复
- 应用连接错误,初始化mysql数据库恢复
- RAC默认服务配置优先节点
标签归档:ORA-600 kdsgrp1
解决CON$ ORA-600 kdsgrp1错误
数据库报ORA 600 kdsgrp1错误
数据库报ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []错
Thread 1 advanced to log sequence 23861 (LGWR switch) Current log# 7 seq# 23861 mem# 0: /oradata/easdb/redo07.log Tue Nov 15 10:00:42 2016 Errors in file /u01/oracle/diag/rdbms/easdb/easdb/trace/easdb_dw00_3165.trc (incident=908262): ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], [] Incident details in: /u01/oracle/diag/rdbms/easdb/easdb/incident/incdir_908262/easdb_dw00_3165_i908262.trc Tue Nov 15 10:00:55 2016 Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Tue Nov 15 10:00:56 2016 Errors in file /u01/oracle/diag/rdbms/easdb/easdb/trace/easdb_dw00_3165.trc (incident=908263): ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], [] ORA-06512: at "SYS.KUPW$WORKER", line 1751 ORA-06512: at line 2 Incident details in: /u01/oracle/diag/rdbms/easdb/easdb/incident/incdir_908263/easdb_dw00_3165_i908263.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. DW00 terminating with fatal err=600, pid=40, wid=1, job SYSTEM. Tue Nov 15 10:01:01 2016 Thread 1 advanced to log sequence 23862 (LGWR switch) Current log# 2 seq# 23862 mem# 0: /oradata/easdb/redo02.log Tue Nov 15 10:01:23 2016 Errors in file /u01/oracle/diag/rdbms/easdb/easdb/trace/easdb_dm00_3163.trc (incident=908254): ORA-31671: Worker process DW00 had an unhandled exception. ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], [] ORA-06512: at "SYS.KUPW$WORKER", line 1751 ORA-06512: at line 2 Incident details in: /u01/oracle/diag/rdbms/easdb/easdb/incident/incdir_908254/easdb_dm00_3163_i908254.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Tue Nov 15 10:01:26 2016 Tue Nov 15 10:01:28 2016 Thread 1 advanced to log sequence 23863 (LGWR switch) Current log# 4 seq# 23863 mem# 0: /oradata/easdb/redo04.log
trace文件中信息
*** 2016-11-15 10:00:35.977 * kdsgrp1-1: ************************************************* row 0x004459e6.26 continuation at 0x004459e6.26 file# 1 block# 285158 slot 38 not found KDSTABN_GET: 0 ..... ntab: 1 curSlot: 38 ..... nrows: 208 kdsgrp - dump CR block dba=0x004459e6 Block header dump: 0x004459e6 Object id on Block? Y seg/obj: 0x1c csc: 0x01.c712f743 itc: 3 flg: - typ: 1 - DATA fsl: 0 fnx: 0x0 ver: 0x01 Itl Xid Uba Flag Lck Scn/Fsc 0x01 0x000b.015.0036d715 0x00c01bba.0fbd.02 C--- 0 scn 0x0001.c6b4cb1a 0x02 0x000c.004.00044d36 0x04c0dd93.3eec.33 C--- 0 scn 0x0001.c6d2c65b 0x03 0x000d.008.00008eb9 0x04c0777a.10e3.02 --U- 2 fsc 0x0056.c7346f21
确定报错对象和确认异常
SQL> select object_name from dba_objects where object_id=28; OBJECT_NAME --------------------------------------------------------- CON$ SQL> ANALYZE TABLE sys.CON$ VALIDATE STRUCTURE CASCADE online; ANALYZE TABLE sys.CON$ VALIDATE STRUCTURE CASCADE online * ERROR at line 1: ORA-01499: table/index cross reference failure - see trace file SQL> SET LINES 122 SQL> COL INDEX_OWNER FOR A20 SQL> COL INDEX_NAME FOR A30 SQL> COL TABLE_OWNER FOR A20 SQL> COL COLUMN_NAME FOR A25 SQL> SELECT TABLE_OWNER,INDEX_NAME,COLUMN_NAME,COLUMN_POSITION 2 FROM Dba_Ind_Columns 3 WHERE table_name = upper('&TABLE_NAME') order by TABLE_OWNER,INDEX_OWNER,INDEX_NAME,COLUMN_POSITION; Enter value for table_name: CON$ old 3: WHERE table_name = upper('&TABLE_NAME') order by TABLE_OWNER,INDEX_OWNER,INDEX_NAME,COLUMN_POSITION new 3: WHERE table_name = upper('CON$') order by TABLE_OWNER,INDEX_OWNER,INDEX_NAME,COLUMN_POSITION TABLE_OWNER INDEX_NAME COLUMN_NAME COLUMN_POSITION -------------------- ------------------------------ ------------------------- --------------- SYS I_CON1 OWNER# 1 SYS I_CON1 NAME 2 SYS I_CON2 CON# 1 SQL> select owner#,name from con$ 2 minus 3 select /*+ full(t) */owner#,name from con$ t; no rows selected SQL> select /*+ full(t) */owner#,name from con$ t 2 minus 3 select owner#,name from con$ ; no rows selected SQL> select /*+ full(t) */ con# from con$ t 2 minus 3 select con# from con$ ; no rows selected SQL> select con# from con$ 2 minus 3 select /*+ full(t) */ con# from con$ t ; CON# ---------- 1037224 1037225 1037386 1037387 1037388 …… 1037846 62 rows selected.
通过上述分析,可以确定是由于CON$和I_CON2数据不一致,而且是index的数据比表中多了62条.针对这样情况,考虑通过重建index来解决.
尝试rebuild index
SQL> alter index I_CON2 rebuild online; alter index I_CON2 rebuild online * ERROR at line 1: ORA-00701: object necessary for warmstarting database cannot be altered SQL> SQL> SQL> SQL> SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup upgrade ORACLE instance started. Total System Global Area 2421825536 bytes Fixed Size 2215744 bytes Variable Size 1828716736 bytes Database Buffers 570425344 bytes Redo Buffers 20467712 bytes Database mounted. Database opened. SQL> alter index I_CON2 rebuild; alter index I_CON2 rebuild * ERROR at line 1: ORA-00701: object necessary for warmstarting database cannot be altered
因为是数据库核心index,无法直接rebuild解决,只能通过bootstrap$核心index(I_OBJ1,I_USER1,I_FILE#_BLOCK#,I_IND1,I_TS#,I_CDEF1等)异常恢复—ORA-00701错误解决 方式解决
ORA-600 kdsgrp1
在硬件恢复,断电,redo异常等恢复case中ORA-600 [kdsgrp1]是一个比较常见的错误,这里该出来官方关于该错误的解释说明和处理方法
RROR: Format: ORA-600 [kdsgrp1] VERSIONS: versions 10.1 and above DESCRIPTION: This error was introduced in 10g with the fix to Bug 2442351, it provides for an extra health check on a block, we detected a null row header, see Note:2442351.9 for more information. Error may be caused by: Case 1. A row referenced in an index that does not exist in the table. Case 2. An non-existent rowid pointed to by a chained row. Trace Examples: Case 1. Mismatch between table and index: ==================================================== Trace file has: row 02433566.13 continuation at file# 9 block# 210278 slot 20 not found The file=9 block=210278 is rdba=0x02433566 which was taken from an index: row#3[7549] flag: ------, lock: 0, len=85, data:(6): 02 43 35 66 00 14 But the slot 20 does not exist in the table block: tab 0, row 1, @0x1e62 tl: 2 fb: --HDFL-- lb: 0x3 tab 0, row 12, @0x191a tl: 2 fb: --HDFL-- lb: 0x1 tab 0, row 17, @0x1675 tl: 2 fb: --HDFL-- lb: 0x2 tab 0, row 21, @0x1459 tl: 2 fb: --HDFL-- lb: 0x4 ORA-1499 may be produced by analyze: analyze table <table name> validate structure cascade; Case 2. A row points to another rowid which does not exist (Chained row does not exist). ============================================================================================ Trace file has: row 1186b11a.ffffffff continuation at file# 70 block# 441621 slot 1 not found It means that row with rdba 0x1186b11a continues in file# 70 block# 441621 slot 1. But the information in file# 70 block# 441621 slot 1 does not exist. It is: tab 0, row 16, @0xd7f ---> This is the slot with the problem. tl: 29 fb: -------- lb: 0x0 cc: 11 nrid: 0x1186bd15.1 ---> It points to rdba=0x1186bd15 slot 1 (file# 70 block# 441621 slot 1) but that row does not exist in that block. For this case ANALYZE TABLE .. VALIDATE STRUCTURE is not detecting this logical corruption Referece Bug 6858313 Run an export (exp) or Full Table Scan to identify if there is a permanent invalid chained row. Workaround for Case 2: The row producing the ORA-600 [kdsgrp1] can be skipped by setting the Event 10231 Note that a testcase has concluded that event 10231 does not skip rows in an Index Organized Table (IOT) when there is an invalid nrid as explained in Case 2. It only works for regular tables. Event 43810 skip corrupt block in IOT?s (10.2.0.4) nor parameter _index_scan_check_skip_corrupt (11g) work for this case 2 on IOTs either. FUNCTIONALITY: Kernel Data layer Seek/Scan IMPACT: PROCESS FAILURE POSSIBLE PHYSICAL CORRUPTION
ORA-01555 ORA-600 kdiulk:kcbz_objdchk ORA-600 kdBlkCheckError等错误恢复
数据库启动ORA-00704,0RA-00604,ORA-01555导致数据库无法启动
Tue May 31 17:32:42 2016 SMON: enabling cache recovery SUCCESS: diskgroup RECOVERY was mounted ARC3: Archival started ARC0: STARTING ARCH PROCESSES COMPLETE ORA-01555 caused by SQL statement below (SQL ID: 4krwuz0ctqxdt, SCN: 0x0004.3af84bee): select ctime, mtime, stime from obj$ where obj# = :1 Archived Log entry 5 added for thread 1 sequence 10 ID 0x86a261e7 dest 1: Errors in file /opt/app/oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_ora_12779.trc: ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-01555: snapshot too old: rollback segment number 7 with name "_SYSSMU7_1592079335$" too small Errors in file /opt/app/oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_ora_12779.trc: ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-01555: snapshot too old: rollback segment number 7 with name "_SYSSMU7_1592079335$" too small Error 704 happened during db open, shutting down database USER (ospid: 12779): terminating the instance due to error 704
通过bbed修改事务之后启动数据库
Tue May 31 17:35:49 2016 SMON: enabling tx recovery ********************************************************************* WARNING: The following temporary tablespaces contain no files. This condition can occur when a backup controlfile has been restored. It may be necessary to add files to these tablespaces. That can be done using the SQL statement: ALTER TABLESPACE <tablespace_name> ADD TEMPFILE Alternatively, if these temporary tablespaces are no longer needed, then they can be dropped. Empty temporary tablespace: TEMP ********************************************************************* Updating character set in controlfile to AL32UTF8 Tue May 31 17:35:50 2016 Errors in file /opt/app/oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_p021_13862.trc (incident=166002): ORA-00600: 内部错误代码, 参数: [kdiulk:kcbz_objdchk], [0], [0], [1], [], [], [], [], [], [], [], [] Tue May 31 17:35:50 2016 Errors in file /opt/app/oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_p010_13818.trc (incident=165914): ORA-00600: 内部错误代码, 参数: [kdiulk:kcbz_objdchk], [0], [0], [1], [], [], [], [], [], [], [], [] Tue May 31 17:35:50 2016 Errors in file /opt/app/oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_p004_13794.trc (incident=165866): ORA-00600: 内部错误代码, 参数: [kdiulk:kcbz_objdchk], [0], [0], [1], [], [], [], [], [], [], [], [] Tue May 31 17:35:50 2016 Errors in file /opt/app/oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_p011_13822.trc (incident=165922): ORA-00600: 内部错误代码, 参数: [kdiulk:kcbz_objdchk], [0], [0], [1], [], [], [], [], [], [], [], [] Tue May 31 17:35:50 2016 Errors in file /opt/app/oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_p016_13842.trc (incident=165962): ORA-00600: 内部错误代码, 参数: [kdiulk:kcbz_objdchk], [0], [0], [1], [], [], [], [], [], [], [], []
ORA-600 [kdiulk:kcbz_objdchk] trace文件
*** SESSION ID:(3.5) 2016-05-31 17:35:50.068 OBJD MISMATCH typ=6, seg.obj=-2, diskobj=222225, dsflg=0, dsobj=285890, tid=285890, cls=1 ORA-00600: 内部错误代码, 参数: [kdiulk:kcbz_objdchk], [0], [0], [1], [], [], [], [], [], [], [], [] Parallel Transaction recovery server caught exception 600 begin Parallel Recovery Context Dump nsi: 48, nsactive: 48 , nirsi: 1, nidti: 1, ndt: 1, rescan: 0, ptrs: 48 [ktprsi] wdone: 50 [ktpritp 378651b8] ktprsi: 37903b60 37903b78 37903b90 37903ba8 37903bc0 37903bd8 37903bf0 37903c08 37903c20 37903c38 37903c50 37903c68 37903c80 37903c98 37903cb0 37903cc8 37903ce0 37903cf8 37903d10 37903d28 37903d40 37903d58 37903d70 37903d88 37903da0 37903db8 37903dd0 37903de8 37903e00 37903e18 37903e30 37903e48 37903e60 37903e78 37903e90 37903ea8 37903ec0 37903ed8 37903ef0 37903f08 37903f20 37903f38 37903f50 37903f68 37903f80 37903f98 37903fb0 37903fc8 [ktprht] nhb: 47, nfl: 20247, flg: 2 *** 2016-05-31 17:36:08.584 [ktprhb] nfl: 1, nelem: 97, flg: 0, sqn: 1 flist: 37698940 nhe: [ktprhe 32] sqn: -1297235803 [kturur] uoff: -1797708320, sqn: 4 uba: 0x098004cd.07e4.0b *----------------------------- * Rec #0xb slt: 0x07 objn: 123986(0x0001e452) objd: 285891 tblspc: 10(0x0000000a) * Layer: 10 (Index) opc: 22 rci 0x0a Undo type: Regular undo Last buffer split: No Temp Object: No Tablespace Undo: No rdba: 0x00000000
这里基本上可以确定是由于undo index中的dataobj#和block中的dataobj# 不匹配.在数据库undo回滚之时出现该错误.可以通过跳过undo回滚,然后重建对象
Tue May 31 17:36:06 2016 Simulated error on redo application. Block recovery from logseq 12, block 959 to scn 20401094719 Recovery of Online Redo Log: Thread 1 Group 3 Seq 12 Reading mem 0 Mem# 0: +DATA/xifenfei/onlinelog/group_3.263.802446627 Block recovery completed at rba 12.1012.16, scn 4.3221225536 Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Simulated error for redo application done. Errors in file /opt/app/oracle/diag/rdbms/xifenfei/xifenfei/trace/xifenfei_p009_13814.trc (incident=165906): ORA-00600: 内部错误代码, 参数: [kdBlkCheckError], [26], [950417], [18025], [], [], [], [], [], [], [], []
这些错误是由于数据库block逻辑异常导致,错过参数含义
在10g中ORA-600 kddummy_blkchk 在11g中ORA-600 kdBlkCheckError
ARGUMENTS: Arg [a] Absolute file number Arg [b] Bock number Arg 1 Internal error code returned from kcbchk() which indicates the problem encountered. See Note 46389.1 for details of block check codes.
根据QREF kddummy_blkchk / kdBlkCheckError Check Codes Listing (Full) (Doc ID 1264040.1)分析
这里的18025是代码的KCBTEMAP_EC_START + KTS4_EC_SBFREE部分异常,主要表现在Incorrect firstfree or nfree 可以通过设置一些参数进行屏蔽
在恢复过程中还有其他错误
ORA-600 encountered when generating server alert SMG-4128 ORA-00600: internal error code, arguments: [ktcpoptx:!cmt top lvl], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4406], [0x1026B65348], [0x000000000], [2], [6215], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [ktcpoptx:!cmt top lvl], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORACLE Instance xifenfei (pid = 15) - Error 600 encountered while recovering transaction (10, 7) on object 123986. ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [kturbleurec1], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [kewrose_1], [600], [ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] Non-fatal internal error happenned while SMON was doing logging scn->time mapping.
通过整体分析错误主要是由于undo异常导致,通过设置_corrupted_rollback_segments设置db_block_checking等相关参数,清理SMON_SCN_TIME等操作数据库没有其他异常报错,让其通过逻辑方式重建库