标签云
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,762)
- DB2 (22)
- MySQL (76)
- Oracle (1,604)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- 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安装升级 (97)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (85)
- 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)
-
最近发表
- 解决一次硬件恢复之后数据文件0kb的故障恢复case
- Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’问题处理
- ORA-01171: datafile N going offline due to error advancing checkpoint
- linux环境oracle数据库被文件系统勒索加密为.babyk扩展名溯源
- ORA-600 ksvworkmsgalloc: bad reaper
- ORA-600 krccfl_chunk故障处理
- 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字符集库
分类目录归档:Oracle备份恢复
记录一次oer 8102.2处理
1.alert日志
Tue Dec 20 22:09:45 2011 Errors in file /opt/app/oracle/admin/BAS/bdump/bas_m000_27442.trc: Wed Dec 21 22:10:45 2011 Errors in file /opt/app/oracle/admin/BAS/bdump/bas_m000_32761.trc: Thu Dec 22 22:11:46 2011 Errors in file /opt/app/oracle/admin/BAS/bdump/bas_m000_5935.trc: Fri Dec 23 22:12:47 2011 Errors in file /opt/app/oracle/admin/BAS/bdump/bas_m000_11382.trc:
Mnnn performs manageability tasks dispatched to them by MMON. Tasks performed include taking Automatic Workload Repository snapshots and Automatic Database Diagnostic Monitor analysis.
从这个时间点来看,应该是数据库启动GATHER_STATS_JOB收集统计信息时发现这个错误。
2.bas_m000_11382.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options ORACLE_HOME = /opt/app/oracle/product/10.2.0/db_1 System name: Linux Node name: bas Release: 2.6.9-78.ELsmp Version: #1 SMP Wed Jul 9 15:46:26 EDT 2008 Machine: x86_64 Instance name: BAS Redo thread mounted by this instance: 1 Oracle process number: 24 Unix process pid: 11382, image: oracle@bas (m000) *** ACTION NAME:(Auto-Purge Slave Action) 2011-12-23 22:12:47.074 *** MODULE NAME:(MMON_SLAVE) 2011-12-23 22:12:47.074 *** SERVICE NAME:(SYS$BACKGROUND) 2011-12-23 22:12:47.074 *** SESSION ID:(5465.2033) 2011-12-23 22:12:47.074 oer 8102.2 - obj# 4152, rdba: 0x00401f7c(afn 1, blk# 8060) kdk key 8102.2: ncol: 2, len: 10 key: (10): 02 c1 0a 06 00 c0 04 dc 00 00 mask: (4096): 09 00 00 00 00 fb d1 c0 00 00 00 00 00 70 f8 fe bf 7f 00 00 00 cd 7d 5d 01
oer 8102.<code> - obj# <object id>, rdba: <rdba value>(afn <file#>, blk# <block#>) kdk key 8102.2: ncol: <number of columns in the key including the rowid>, len: <key length> key: (<length>):<hexadecimal value> obj#: object_id for the affected index in dba_objects. rdba: relative data block address where the key is supposed to be stored in the index. afn: absolute file number where the affected index block is stored. (file_id in dba_data_files, file# in v$datafile). blk#: Index block number where the key is supposed to be stored.
出现oer 8102.2的错误,有两种可能:1.坏块,2.表和索引数据不一致
3.找出相关对象
SQL> col object_name for a30 SQL> col owner for a10 SQL> select object_name,owner,object_type 2 from dba_objects where object_id=4152; OBJECT_NAME OWNER OBJECT_TYPE ------------------------------ ---------- ------------------- WRI$_SEGADV_OBJLIST_IDX_TS SYS INDEX SQL> select OWNER,TABLE_NAME from dba_indexes 2 where index_name='WRI$_SEGADV_OBJLIST_IDX_TS'; OWNER TABLE_NAME ---------- ------------------------------ SYS WRI$_SEGADV_OBJLIST SQL> ANALYZE TABLE sys.WRI$_SEGADV_OBJLIST VALIDATE STRUCTURE CASCADE; ANALYZE TABLE sys.WRI$_SEGADV_OBJLIST VALIDATE STRUCTURE CASCADE * ERROR at line 1: ORA-01499: table/index cross reference failure - see trace file
4.分析坏块(逻辑/物理)
SQL> ANALYZE INDEX WRI$_SEGADV_OBJLIST_IDX_TS VALIDATE STRUCTURE; Index analyzed. SQL> ANALYZE TABLE WRI$_SEGADV_OBJLIST VALIDATE STRUCTURE; Table analyzed. [oracle@bas bdump]$ dbv file=/opt/app/oracle/oradata/BAS/system01.dbf DBVERIFY: Release 10.2.0.1.0 - Production on Sat Dec 24 21:14:38 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. DBVERIFY - Verification starting : FILE = /opt/app/oracle/oradata/BAS/system01.dbf DBVERIFY - Verification complete Total Pages Examined : 552960 Total Pages Processed (Data) : 360156 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 167596 Total Pages Failing (Index): 0 Total Pages Processed (Other): 1961 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 23247 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Highest block SCN : 2890198330 (2750.2890198330)
检测证明,对象以及对象所属的数据文件,无坏块现象
5.分析表和index不一致
--找出index对应列 SQL> SELECT table_name , column_name from dba_ind_columns 2 WHERE index_name='WRI$_SEGADV_OBJLIST_IDX_TS' order by table_name; TABLE_NAME COLUMN_NAME ------------------------------ -------------------- WRI$_SEGADV_OBJLIST TS_ID --确定对应列是否允许为null SQL> desc WRI$_SEGADV_OBJLIST Name Null? Type ----------------------------------------- -------- ---------------------------- AUTO_TASKID NUMBER TS_ID NUMBER OBJN NUMBER OBJD NUMBER STATUS VARCHAR2(40) TASK_ID NUMBER REASON VARCHAR2(40) REASON_VALUE NUMBER CREATION_TIME TIMESTAMP(6) PROC_TASKID NUMBER END_TIME TIMESTAMP(6) SEGMENT_OWNER VARCHAR2(30) SEGMENT_NAME VARCHAR2(81) PARTITION_NAME VARCHAR2(30) SEGMENT_TYPE VARCHAR2(18) TABLESPACE_NAME VARCHAR2(30) --确认在表中对应列是否有空值 SQL> SELECT /*+ FULL(t1) */ count(TS_ID) 2 FROM WRI$_SEGADV_OBJLIST t1 3 WHERE t1.TS_ID IS NULL; COUNT(TS_ID) ------------ 0 --表比index多数据 SQL> SELECT /*+ FULL(t1) */ TS_ID 2 FROM WRI$_SEGADV_OBJLIST t1 3 MINUS 4 SELECT /*+ index(t WRI$_SEGADV_OBJLIST_IDX_TS) */ TS_ID 5 FROM WRI$_SEGADV_OBJLIST t where ts_id is not null; no rows selected --index中数据条数 SQL> SELECT /*+ index(t WRI$_SEGADV_OBJLIST_IDX_TS) */ count(TS_ID) 2 FROM WRI$_SEGADV_OBJLIST t 3 where ts_id is not null; COUNT(TS_ID) ------------ 901 --表中数据条数 SQL> SELECT /*+ FULL(t1) */ count(TS_ID) 2 FROM WRI$_SEGADV_OBJLIST t1 ; COUNT(TS_ID) ------------ 937 --index中不同值数量 SQL> SELECT /*+ index(t WRI$_SEGADV_OBJLIST_IDX_TS) */ 2 COUNT(DISTINCT TS_ID) 3 FROM WRI$_SEGADV_OBJLIST t WHERE TS_ID IS NOT NULL; COUNT(DISTINCTTS_ID) -------------------- 5 --表中不同值数量 SQL> SELECT /*+ index(t WRI$_SEGADV_OBJLIST_IDX_TS) */ TS_ID 2 FROM WRI$_SEGADV_OBJLIST t WHERE ts_id IS NOT NULL 3 MINUS 4 SELECT /*+ FULL(t1) */ TS_ID 5 FROM WRI$_SEGADV_OBJLIST t1 ; TS_ID ---------- 4 --对比可以知道index中的唯一值比表中,这个也就解释了,为什么表中总条数多, --但是他们两做减法的时候,记录为空 --索引表比表多数据 SQL> SELECT /*+ index(t WRI$_SEGADV_OBJLIST_IDX_TS) */ TS_ID 2 FROM WRI$_SEGADV_OBJLIST t WHERE ts_id IS NOT NULL 3 MINUS 4 SELECT /*+ FULL(t1) */ TS_ID 5 FROM WRI$_SEGADV_OBJLIST t1 ; TS_ID ---------- 4
上面的检测证明:1.表中有索引中无的数据,2.索引中有表中不存在数据
6.解决问题
SQL> alter index WRI$_SEGADV_OBJLIST_IDX_TS rebuild online; Index altered. --测试index中总条数 SQL> SELECT /*+ index(t WRI$_SEGADV_OBJLIST_IDX_TS) */ count(TS_ID) 2 FROM WRI$_SEGADV_OBJLIST t 3 where ts_id is not null; COUNT(TS_ID) ------------ 937 --无多余index项(以前唯一值为4的记录已经不存在) SQL> SELECT /*+ index(t WRI$_SEGADV_OBJLIST_IDX_TS) */ TS_ID 2 FROM WRI$_SEGADV_OBJLIST t WHERE ts_id IS NOT NULL 3 MINUS 4 SELECT /*+ FULL(t1) */ TS_ID 5 FROM WRI$_SEGADV_OBJLIST t1 ; no rows selected --通过上述测试,证明表和index不一致问题解决
通过ROWID找回坏块数据
一.准备环境
C:\Users\XIFENFEI>sqlplus chf/xifenfei SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 23 10:49:52 2011 Copyright (c) 1982, 2010, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options SQL> create tablespace t_xff datafile 'E:\ORACLE\ORADATA\XFF\t_xff01.dbf' 2 size 10m autoextend on next 10m maxsize 1g; 表空间已创建。 SQL> create table t_xifenfei tablespace t_xff 2 as 3 select * from dba_objects; 表已创建。 SQL> select count(*) from t_xifenfei; COUNT(*) ---------- 73286
二.发现坏块
使用ULtraEdit破坏数据(关闭数据库执行)
SQL> select count(*) from t_xifenfei; select count(*) from t_xifenfei * 第 1 行出现错误: ORA-01578: ORACLE 数据块损坏 (文件号 13, 块号 373) ORA-01110: 数据文件 13: 'E:\ORACLE\ORADATA\XFF\T_XFF01.DBF'
三.查询坏块相关信息
The "LOW_RID" is the lowest rowid INSIDE the corrupt block: SELECT dbms_rowid.rowid_create(1,<DATA_OBJECT_ID>,<RFN>,<BL>,0) LOW_RID from DUAL; The "HI_RID" is the first rowid AFTER the corrupt block: SELECT dbms_rowid.rowid_create(1,<DATA_OBJECT_ID>,<RFN>,<BL>+1,0) HI_RID from DUAL; SQL> col tablespace_name for a30 SQL> col segment_type for a5 SQL> col owner for a10 SQL> col segment_name for a20 SQL> SELECT tablespace_name, segment_type, owner, segment_name 2 FROM dba_extents 3 WHERE file_id =13 4 AND 373 between block_id AND block_id + blocks - 1 ; TABLESPACE_NAME SEGME OWNER SEGMENT_NAME ------------------------------ ----- ---------- -------------------- T_XFF TABLE CHF T_XIFENFEI SQL> SELECT data_object_id 2 FROM dba_objects 3 WHERE object_name = 'T_XIFENFEI' and owner='CHF'; DATA_OBJECT_ID -------------- 77759 --坏块的最小rowid SQL> select dbms_rowid.rowid_create(1, 77759,13,373,0) from dual; DBMS_ROWID.ROWID_C ------------------ AAAS+/AANAAAAF1AAA 坏块的最大rowid(block+1得到) SQL> select dbms_rowid.rowid_create(1, 77759,13,374,0) from dual; DBMS_ROWID.ROWID_C ------------------ AAAS+/AANAAAAF2AAA
四.根据rowid找回数据
SQL> SELECT /*+ ROWID(A) */ COUNT(*) FROM T_XIFENFEI A 2 WHERE ROWID>='AAAS+/AANAAAAF2AAA'; COUNT(*) ---------- 55858 SQL> SELECT /*+ ROWID(A) */ COUNT(*) FROM T_XIFENFEI A 2 WHERE ROWID<'AAAS+/AANAAAAF1AAA'; COUNT(*) ---------- 17358 SQL> SELECT 77759-55858-17358 from dual; 77759-55858-17358 ----------------- 4543 SQL> CREATE TABLE T_XIFENFEI_BAK TABLESPACE T_XFF 2 AS 3 SELECT /*+ ROWID(A) */ * FROM T_XIFENFEI A 4 WHERE ROWID>='AAAS+/AANAAAAF2AAA'; 表已创建。 SQL> INSERT INTO T_XIFENFEI_BAK 2 SELECT /*+ ROWID(A) */ * FROM T_XIFENFEI A 3 WHERE ROWID<'AAAS+/AANAAAAF1AAA'; 已创建17358行。 SQL> COMMIT; 提交完成。 SQL> SELECT COUNT(*) FROM T_XIFENFEI_BAK; COUNT(*) ---------- 73216
五.和dbms_repair解决坏块对比
SQL> CONN / AS SYSDBA 已连接。 SQL> exec dbms_repair.skip_corrupt_blocks('CHF','T_XIFENFEI'); PL/SQL 过程已成功完成。 SQL> select skip_corrupt from dba_tables where table_name='T_XIFENFEI'; SKIP_COR -------- ENABLED SQL> select count(*) from chf.t_xifenfei; COUNT(*) ---------- 73216
通过跳过坏块和rowid功能对比可以看出,两者丢失的数据是相同的,如果有index,同样利用rowid结合index,可能会找回部分数据。当然dbms_repair也提供了类此的功能。两种方法的使用看个人的爱好与习惯。
使用bbed解决ORA-00600[2662]
一、数据库启动报ORA-00600[2662]
[oracle@node1 ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Dec 22 14:37:00 2011 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 2137886720 bytes Fixed Size 2230072 bytes Variable Size 1493174472 bytes Database Buffers 637534208 bytes Redo Buffers 4947968 bytes Database mounted. ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [2662], [2], [2147510731], [2], [2164287937], [4194432], [], [], [], [], [], [] Process ID: 16829 Session ID: 96 Serial number: 3
二.alert日志错误显示
Thu Dec 22 14:37:09 2011 ALTER DATABASE OPEN LGWR: STARTING ARCH PROCESSES Thu Dec 22 14:37:09 2011 ARC0 started with pid=20, OS id=16831 ARC0: Archival started LGWR: STARTING ARCH PROCESSES COMPLETE ARC0: STARTING ARCH PROCESSES Thu Dec 22 14:37:10 2011 ARC1 started with pid=21, OS id=16833 Thu Dec 22 14:37:10 2011 ARC2 started with pid=22, OS id=16835 Thu Dec 22 14:37:10 2011 ARC3 started with pid=23, OS id=16837 ARC1: Archival started ARC2: Archival started ARC2: Becoming the 'no FAL' ARCH ARC2: Becoming the 'no SRL' ARCH ARC1: Becoming the heartbeat ARCH Thread 1 opened at log sequence 17 Current log# 2 seq# 17 mem# 0: /opt/oracle/oradata/ora11g/redo02.log Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set SMON: enabling cache recovery Errors in file /opt/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_16829.trc (incident=36156): ORA-00600: internal error code, arguments: [2662], [2], [2147510731], [2], [2164287937], [4194432], [], [], [], [], [], [] Incident details in: /opt/oracle/diag/rdbms/ora11g/ora11g/incident/incdir_36156/ora11g_ora_16829_i36156.trc ARC3: Archival started ARC0: STARTING ARCH PROCESSES COMPLETE Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Errors in file /opt/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_16829.trc (incident=36157): ORA-00600: internal error code, arguments: [2662], [2], [2147510731], [2], [2164287937], [4194432], [], [], [], [], [], [] Incident details in: /opt/oracle/diag/rdbms/ora11g/ora11g/incident/incdir_36157/ora11g_ora_16829_i36157.trc Dumping diagnostic data in directory=[cdmp_20111222143713], requested by (instance=1, osid=16829), summary=[incident=36156]. Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Undo initialization errored: err:600 serial:0 start:176607884 end:176611234 diff:3350 (33 seconds) Errors in file /opt/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_16829.trc: ORA-00600: internal error code, arguments: [2662], [2], [2147510731], [2], [2164287937], [4194432], [], [], [], [], [], [] Errors in file /opt/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_16829.trc: ORA-00600: internal error code, arguments: [2662], [2], [2147510731], [2], [2164287937], [4194432], [], [], [], [], [], [] Error 600 happened during db open, shutting down database USER (ospid: 16829): terminating the instance due to error 600 Instance terminated by USER, pid = 16829 ORA-1092 signalled during: ALTER DATABASE OPEN... opiodr aborting process unknown ospid (16829) as a result of ORA-1092 Thu Dec 22 14:37:15 2011 ORA-1092 : opitsk aborting process
三.分析日志
ORA-00600[2662]主要参数说明见:ORA-00600 [2662]
这里补充说明:e表示出现异常问题的数据块的DBA,这里的4194432就是一个数据块的DBA
--通过DBA地址查询数据块和文件号 SQL> select dbms_utility.data_block_address_block(4194432) "blick", 2 dbms_utility.data_block_address_file(4194432) "file" from dual; blick file ---------- ---------- 128 1 --当前数据库SCN SQL> select to_char(2147510731,'xxxxxxxxxxx') from dual; TO_CHAR(2147 ------------ 800069cb --当前数据块SCN SQL> select to_char(2164287937,'xxxxxxxxxxx') from dual; TO_CHAR(2164 ------------ 810069c1
四.bbed查看相关SCN
[oracle@node1 ora11g]$ bbed Password: BBED-00113: Invalid password. Please rerun utility with the correct password. [oracle@node1 ora11g]$ bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Thu Dec 22 14:49:24 2011 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> set filename "/opt/oracle/oradata/ora11g/system01.dbf" FILENAME /opt/oracle/oradata/ora11g/system01.dbf BBED> set block 1 BLOCK# 1 BBED> p kcvfhckp struct kcvfhckp, 36 bytes @484 struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x800069c8 ub2 kscnwrp @488 0x0002 ub4 kcvcptim @492 0x2dedee96 ub2 kcvcpthr @496 0x0001 union u, 12 bytes @500 struct kcvcprba, 12 bytes @500 ub4 kcrbaseq @500 0x00000011 ub4 kcrbabno @504 0x0000210f ub2 kcrbabof @508 0x0010 ub1 kcvcpetb[0] @512 0x02 ub1 kcvcpetb[1] @513 0x00 ub1 kcvcpetb[2] @514 0x00 ub1 kcvcpetb[3] @515 0x00 ub1 kcvcpetb[4] @516 0x00 ub1 kcvcpetb[5] @517 0x00 ub1 kcvcpetb[6] @518 0x00 ub1 kcvcpetb[7] @519 0x00 BBED> set block 128 BLOCK# 128 BBED> p bas_kcbh ub4 bas_kcbh @8 0x810069c1 BBED> p wrp_kcbh ub2 wrp_kcbh @12 0x0002
这里看到的SCN(16进制)和我们在alert日志中看到的有一定的出入原因是在数据库启动的时候,当前SCN增加了,但是因为数据库直接abort,没有写入到数据文件中。导致数据文件头部的SCN比alert中显示的稍微小一点(还有可能,系统当前的scn比system01.dbf的scn大一点)。通过对比数据块和数据文件头部的SCN也可以说明当数据块的SCN>数据块当前SCN导致ORA-00600[2662]
五.bbed修改数据块的SCN
BBED> set offset 8 OFFSET 8 BBED> m /x c8690080 BBED-00215: editing not allowed in BROWSE mode BBED> set mode edit MODE Edit BBED> m /x c8690080 BBED-00209: invalid number (c8690080) --分开修改,曲线救国策略 BBED> m /x c869 Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y File: /opt/oracle/oradata/ora11g/system01.dbf (0) Block: 128 Offsets: 8 to 519 Dba:0x00000000 ------------------------------------------------------------------------ c8690081 02000104 2f8f0000 00000000 00000000 00000000 00000000 06000000 2f000000 20100000 00000000 00000000 07000000 81004000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 06000000 00000000 00000000 00000040 81004000 07000000 88004000 08000000 10024000 08000000 18024000 08000000 20024000 08000000 28024000 08000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 <32 bytes per line> BBED> set offset +2 OFFSET 10 BBED> m /x 0080 File: /opt/oracle/oradata/ora11g/system01.dbf (0) Block: 128 Offsets: 10 to 521 Dba:0x00000000 ------------------------------------------------------------------------ 00800200 01042f8f 00000000 00000000 00000000 00000000 00000600 00002f00 00002010 00000000 00000000 00000700 00008100 40000000 00000000 00000000 00000000 00000000 00000000 00000000 00000600 00000000 00000000 00000000 00408100 40000700 00008800 40000800 00001002 40000800 00001802 40000800 00002002 40000800 00002802 40000800 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 <32 bytes per line> BBED> p tailchk ub4 tailchk @8188 0x69c10e01 BBED> set offset 8188 OFFSET 8188 BBED> m /x 010ec869 File: /opt/oracle/oradata/ora11g/system01.dbf (0) Block: 128 Offsets: 8188 to 8191 Dba:0x00000000 ------------------------------------------------------------------------ 010ec869 <32 bytes per line> BBED> p tailchk ub4 tailchk @8188 0x69c80e01 BBED> p bas_kcbh ub4 bas_kcbh @8 0x800069c8 BBED> sum apply Check value for File 0, Block 128: current = 0x8e2f, required = 0x8e2f BBED> exit
六.启动数据库
[oracle@node1 ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Dec 22 14:58:10 2011 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 2137886720 bytes Fixed Size 2230072 bytes Variable Size 1493174472 bytes Database Buffers 637534208 bytes Redo Buffers 4947968 bytes Database mounted. Database opened.
七.补充说明
一般遇到ORA-00600[2662]都是使用alter session set events ’10015 trace name adjust_scn level N’;方法处理,但是有时候会遇到ORA-01031错误,那就需要请bbed帮忙处理
OS Pid: 30268 executed alter session set events '10051 trace name adjust_scn level 2' Thu Dec 22 12:04:07 2011 Errors in file /ora101/diag/rdbms/ora11/ora11/trace/ora11_ora_30268.trc: ORA-01031: insufficient privileges Thu Dec 22 12:04:43 2011 Errors in file /ora101/diag/rdbms/ora11/ora11/trace/ora11_ora_846.trc: ORA-01031: insufficient privileges