(oracle) block corruption
Hi Everybody,
Recently, my site has a development database that encountered block corruption in the system tablespace. I have verified this by using Oracle utility DBVERIFY on the system datafile.
We have no backup at all for this development database. So database recovery from backup is impossible for us.
I understand that there's a package called DBMS_REPAIR that can be used to repair corrupted blocks. I tried using this, but the process failed because it could not access the system tablespace (which is corrupted) to create a table used by the package.
Does anyone know if I could overcome this problem and repair the corrupted blocks on the system tablespace?
Also, I would like to understand what are the possible causes of block corruption. My site's Oracle Server and databases are installed on Windows 2000 platform.
Please help answer my queries if you can. Thank you!
null
Iam sorry that I have not seen this posting until today .
When there is a block corruption export will fail with error.
The best method is to replace this file with a backup file and roll forward.
null
Similar Messages
-
Oracle 11g: Block Corruption in SYSAUX File
Hello All,
I am facing Data corruption issue in the SYSAUX file.
We are using Oracle 11G (Microsoft 32 bit) and our system is running in noarchivelog mode.
Following are the errors in the alert log.
e:\sc\sc15.2\databases\oracleconfig\diag\rdbms\enmscsdb\nm45\trace\nm45_p000_5944.trc
Corrupt block relative dba: 0x0088a9f8 (file 2, block 567800)
Fractured block found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x0088a9f8
last change scn: 0x0000.0b3bb7c7 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xc7000601
check value in block header: 0xee6b
computed block checksum: 0x72c6
Reread of rdba: 0x0088a9f8 (file 2, block 567800) found same corrupted data
Thu Jan 22 16:46:44 2009
SMON: Restarting fast_start parallel rollback
SMON: ignoring slave err,downgrading to serial rollback
ORACLE Instance nm45 (pid = 12) - Error 1578 encountered while recovering transaction (9, 11) on object 458.
Errors in file e:\sc\sc15.2\databases\oracleconfig\diag\rdbms\enmscsdb\nm45\trace\nm45_smon_6492.trc:
ORA-01578: ORACLE data block corrupted (file # 2, block # 567800)
ORA-01110: data file 2: 'E:\SC\SC15.2\DATABASES\ORACLECONFIG\SYSAUXNM45.ORA'
Thu Jan 22 16:46:45 2009
Trace dumping is performing id=[cdmp_20090122164645]
Corrupt Block Found
TSN = 1, TSNAME = SYSAUX
RFN = 2, BLK = 567800, RDBA = 8956408
OBJN = 458, OBJD = 458, OBJECT = I_WRI$_OPTSTAT_HH_OBJ_ICOL_ST, SUBOBJECT =
SEGMENT OWNER = SYS, SEGMENT TYPE = Index Segment
Following query indicates the corruption is in index.
SQL> SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents
WHERE file_id = 2 and 567800 between block_id AND block_id + blocks - 1;
TABLESPACE_NAME SEGMENT_TYPE OWNER
SEGMENT_NAME
SYSAUX INDEX SYS
I_WRI$_OPTSTAT_HH_OBJ_ICOL_ST
==============
DBverify output:
==============
E:\SC\SC15.2\Databases\OracleConfig>dbv file=SYSAUXNM45.ORA blocksize=8192
DBVERIFY: Release 11.1.0.7.0 - Production on Thu Jan 22 16:59:11 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = E:\SC\SC15.2\Databases\OracleConfig/SY
SAUXNM45.ORA
DBV-00200: Block, DBA 8956312, already marked corrupt
Page 567800 is influx - most likely media corrupt
Corrupt block relative dba: 0x0088a9f8 (file 2, block 567800)
Fractured block found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0088a9f8
last change scn: 0x0000.0b3bb7c7 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xc7000601
check value in block header: 0xee6b
computed block checksum: 0x72c6
DBVERIFY - Verification complete
Total Pages Examined : 1623864
Total Pages Processed (Data) : 540984
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 964944
Total Pages Failing (Index): 0
Total Pages Processed (Other): 17849
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 100086
Total Pages Marked Corrupt : 2
Total Pages Influx : 1
Total Pages Encrypted : 0
Highest block SCN : 190789648 (0.190789648)
SQL> select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
2 567800 1 0 FRACTURED
2 567704 1 0 FRACTURED
How to resolve this issue.
Thanks
With Regards
Hemant Joshi.Drop and re-creating the index would be better than re-building the index.
Check the metalink note: Identify the corruption extension using RMAN/DBV/ANALYZE etc - 836658.1
Note 28814.1 - Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g
Note 472231.1 - How to identify all the Corrupted Objects in the Database reported by RMAN
ORA-1578 Main Reference Index for Solutions -830997.1 -
DATA BLOCK CORRUPTION : ORA-1578 해결 방법
제품 : ORACLE SERVER
작성날짜 : 2005-08-18
DATA BLOCK CORRUPTION : ORA-1578 해결 방법
=========================================
모든 오라클 데이타 블럭은 sequence 번호(seq)와 incarnation 번호(inc)를
갖고 있다. ORA-1578 에러는 seq=0 이고 inc <> 0 (새로운 블럭이 아님)일 때
발생한다. ORA-1578 에러는 ORA-600[3339] 에러와 함께 발생하곤 한다.
ORA-1578 에러가 발생하면 corruption이 발생한 화일 번호와 블럭 번호를
알려준다. 여기서는 이 때의 화일번호를 f, 블럭번호를 b 라고 부르기로 한다.
<해결 방법>
1) 우선 해야 할 일은 어떠한 오브젝트가 corrupt 되었는가를 알아내는 것이다.
다음의 스크립트를 이용하면 알 수 있다.
SQL>select segment_name, segment_type
from dba_extents
where file_id = f and
b between block_id and block_id + blocks - 1;
2) 만약 해당 세그먼트가 인덱스이면 drop 시키고 다시 생성하면 된다.
3) 만약 해당 세그먼트가 테이블이면 corrupt된 블럭의 데이타는 손상된 것이다.
4) 만약 해당 테이블이 들어있는 export 화일이 있다면 손상된 테이블을 drop
시키고 import 받는 것이 제일 간단한 방법이다. 하지만, 만약 export 받은
화일이 없거나 backup해 놓은 화일도 없다면 해당 테이블에 인덱스가 생성되어
있는 경우에 한해서 다음의 방법을 사용해서 복구를 하도록 한다.
5) 해당 테이블에 대한 인덱스가 생성되어 있다면 이를 이용해서 corrupt된
블럭을 피해갈 수 있다. 이 방법은 다음과 같다.
- empno, ename, deptno 를 컬럼으로 가지는 emp 테이블이 corrupt 되었다고
가정하자. 그리고, empno 컬럼에 인덱스가 생성되어 있다고 하자. 클러스터화
되지 않은 모든 테이블은 Unique한 rowid를 가진다.
rowid를 varchar2/hexadecimal 형식으로 표현하려면 rowidtochar 함수를 이용
한다.
SQL> select rowidtochar(rowid) from emp;
rowid는 총 18자로 block address(8자), dot(1자), row address(4자),
dot(1자), file address(4자)로 구성되어 있다.
SQL> select empno, rowid
from emp
where empno > 0
위의 스크립트를 실행시키면 다음과 같은 결과를 얻게 된다.
EMPNO ROWID
100 00000003.0000.0006
101 00000003.0001.0006
102 00000003.0002.0006
103 00000003.0003.0006
500 00000004.0000.000A
501 00000004.0001.000A
755 0000001A.0005.000A
756 0000001A.000C.000A
만약 인덱스가 character 컬럼에 대한 것이었다면 위의 query 문장을 다음과 같
이 바꿀 수 있다.
SQL> select empno, rowid
from emp
where empno > '';
예를 들어 다음과 같은 에러 메시지가 떨어졌다고 하자.
01578, 00000, "ORACLE data block corrupted (file # 10, block # 4)
그러면, 다음의 스크립트를 사용하여 손상된 블럭에 있는 employee 에 대한
empno를 구할 수 있다.
SQL> select empno from emp
where empno > 0
and rowidtochar(rowid) like '00000004.%.000A';
EMPNO ROWID
500 00000004.0000.000A
501 00000004.0001.000A
이제 emp 테이블과 같은 구조를 갖는 새로운 테이블을 만든다.
SQL> create table temp
as select * from emp
where 1 = 2;
그런 다음 손상된 부분을 피해서 새로운 테이블에 손상된 테이블의 데이타를
추가한다.
SQL> insert into temp select * from emp where empno < 500;
SQL> insert into temp select * from emp where empno > 501;
손상된 테이블을 drop 시키고 temp 테이블의 이름을 emp로 변경한다.
그리고, 백업된 자료나 문서 자료를 통하여 손상된 부분에 대한 정보를 추가한다.
6) 손상된 블럭에 여러 개의 row가 존재하고 있다면 다음의 방법을 이용한다.
SQL> create table empnos as
select empno from emp
where empno > 0
and rowidtochar(rowid) not like '00000004.%.000A';
이 스크립트를 이용하면 손상된 block에 포함되지 않는 empno들을 알 수 있다.
다음의 스크립트를 계속 실행시켜 복구를 한다.
SQL> create table temp as select * from emp where 1 = 2;
SQL> insert into temp
select emp.empno, emp.ename, emp.deptno
from emp, empnos
where emp.empno > 0
and emp.empno = empnos.empno;
7) 만약 Data Dictionary의 table이나 index에서 손상된 block이 발생했다면
지원을 요청해야 한다.Hi,
Take a look in the following Metalink Notes:
- DBMS_REPAIR example - Doc ID: NOTE:68013.1
- Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g - Doc ID: NOTE:28814.
- Prevention, Detection and Repair of Database Corruption - Doc ID: NOTE:76375.1
Cheers,
Francisco Munoz Alvarez
http://www.oraclenz.com -
Block Corruption in the SYSAUX tablespace
Problem Description: Block Corruption in the SYSAUX tablespace :
==================================
We are facing block corruption issue in the SYSAUX tablespace during rman backup..
So currently we are using SET MAXCORRUPT FOR DATAFILE 3 TO 2; parameter to take the backup and it is running fine.. Now we have to fix the issue..
Please let us know the steps to fix the issue..
Please find the details below.
Dbv output:
sesoxpro33.p51x1> dbv file=/oradata/p51x/data/p51x_sysaux_01.dbf blocksize=32768 end=64000
DBVERIFY: Release 10.2.0.3.0 - Production on Fri Aug 26 20:47:29 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = /oradata/p51x/data/p51x_sysaux_01.dbf
Page 64 is influx - most likely media corrupt
Corrupt block relative dba: 0x00c00040 (file 3, block 64)
Fractured block found during dbv:
Data in bad block:
type: 0 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00000001
check value in block header: 0x0
block checksum disabled
DBVERIFY - Verification complete
Total Pages Examined : 64000
Total Pages Processed (Data) : 22547
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 23859
Total Pages Failing (Index): 0
Total Pages Processed (Other): 14586
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 3007
Total Pages Marked Corrupt : 1
Total Pages Influx : 1
Highest block SCN : 281617057 (2054.281617057)
SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents
WHERE file_id = 3 and 64 between block_id AND block_id + blocks - 1;
TABLESPACE_NAME SEGMENT_TYPE OWNER
SEGMENT_NAME
SYSAUX SYS_LOB0000000594C00007$$
OS & database Details :
==========
Oracle Solaris on x86-64 (64-bit)
Oracle Server - Enterprise Edition -- 10.2.0.3
If any more informatin is needed, Please let me know..
Thanks & Regards,
Suresh Bommalata.refer:
logical corruption found in the sysaux tablespace
Check the metalink note: Identify the corruption extension using RMAN/DBV/ANALYZE etc - 836658.1
Note 28814.1 - Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g
Note 472231.1 - How to identify all the Corrupted Objects in the Database reported by RMAN
http://download.oracle.com/docs/cd/B12037_01/server.101/b10734/rcmrecov.htm
http://oracleinstance.blogspot.com/2010/05/block-recovery-using-rman-backup.html -
Hi,
we have 805 database. We have a table which contiants corrupted blocks.
So I went to export dump (backup) and imported to a new temp instance. But strage thing is when I select on new instance, it giving again block corruption error for this table, (new database, new datafile)
so any idea what can cause for this ? and any suggestion plz ???
Thanks in advance.refer:
logical corruption found in the sysaux tablespace
Check the metalink note: Identify the corruption extension using RMAN/DBV/ANALYZE etc - 836658.1
Note 28814.1 - Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g
Note 472231.1 - How to identify all the Corrupted Objects in the Database reported by RMAN
http://download.oracle.com/docs/cd/B12037_01/server.101/b10734/rcmrecov.htm
http://oracleinstance.blogspot.com/2010/05/block-recovery-using-rman-backup.html -
Need advice on ORA-01578: ORACLE data block corrupted
We have a development database server version- 10.2.0.3 with materialized views refresh as complete every morning. Yesterday we had a power failure and the server went down and database was shutdown unexpectedly.
When we restarted the database after the server restarted, we found some of the datablocks got corrupted . Following were the exceptions that we saw in the alert.log.
Errors in file /i01_01/app/oracle/product/10.2.0/db_1/admin/orcl9/bdump/orcl9_smon_7547.trc:
ORA-01578: ORACLE data block corrupted (file # 11, block # 257712)
ORA-01110: data file 11: '/i01_01/app/oracle/product/10.2.0/oradata/orcl9/ts_gen_data_02.dbf'
ORACLE Instance orcl9 (pid = 8) - Error 1578 encountered while recovering transaction (9, 38) on object 54463
I tried the following query to see the segment type.
select owner, segment_name, segment_type from dba_extents where file_id =11 and 257712 between block_id and block_id + blocks - 1;
OWNER
SEGMENT_NAME
SEGMENT_TYPE
VISH
INVENTORY_TXN
TABLE
where " INVENTORY_TXN " is a materialized view that was using the block that got corrupted. I can always recreate the MV by dropping and recreating it. Will it solve the problem???
If not, how can I recover/repair the block.???
Can anyone advice on this. Thanks very much in advance.To recover a corrupted block,the best way out is to use Blockrecover command of RMAN. So you would need RmAN backup to perform the operation.But first ypu you need to ensure that this is a persistent error or not? Is this error is coming repeatedly or just once it happened?
About Blockrecover command,read here,
http://download.oracle.com/docs/cd/B19306_01/backup.102/b14191/rcmrecov005.htm#BRADV157
HTH
Aman.... -
BLOCK CORRUPTION (ORA-1578) 처리 (ORACLE 8I NEW FEATURE)
제품 : ORACLE SERVER
작성날짜 : 2002-05-31
BLOCK CORRUPTION (ORA-1578) 처리 (ORACLE 8I NEW FEATURE)
========================================================
PURPOSE
Block Corruption의 처리 방안에 대해 알아본다.
Problem Description
block corruption 시 10210, 10211,10231 의 event 를 사용해서
해당 block 을 skip 할 수도 있지만 V8.1 이상에서는
dbms_repair.fix_corrupt_blocks ,
dbms_repair.skip_corrupt_block 를 이용하여
corrupt가 발생한 block을 detect하고 skip, 또는 repair해주는 방안이
제시되고 있다.
Workaround
Solution Description
- 먼저 detecting 을 위해 db_block_checking =true 를 init.ora 에 set
- dbms_repair 의 package 를 사용하는데 이 package 는 dbmsrpr.sql,
prvtrpr.plb를 수행한다 .
- sys 로 접속하여 package 를 실행한다.
다음의 예제를 살펴보자
T1 테이블에 corrupt 된 block 이 있다고 가정한다.
SQL> desc t1
Name Null? Type
COL1 NOT NULL NUMBER(38)
COL2 CHAR(512)
SQL> analyze table t1 validate structure;
analyze table t1 validate structure
ERROR at line 1:
ORA-01498: block check failure - see trace file
이때 ANALYZE로 부터 발생된 trace file 에 corrupt 된 block 에 3 row 의
(nrows = 3) data 가 있음을 알수 있다고 가정하자.
DBMS_REPAIR.ADMIN_TABLES (repair and orphan key)
================================================
ADMIN_TABLES 은 table 을 위한 repair table과,인덱스를 위한 orphan key
tables을 제공한다.
SQL> @adminCreate
SQL> connect sys/change_on_install
Connected.
SQL>
SQL> -- Repair Table
SQL>
SQL> declare
2 begin
3 -- Create repair table
4 dbms_repair.admin_tables (
5 -- table_name => 'REPAIR_TABLE',
6 table_type => dbms_repair.repair_table,
7 action => dbms_repair.create_action,
8 tablespace => 'USERS'); -- default TS of SYS if not specified
9 end;
10 /
PL/SQL procedure successfully completed.
SQL> select owner, object_name, object_type
2 from dba_objects
3 where object_name like '%REPAIR_TABLE';
OWNER OBJECT_NAME OBJECT_TYPE
SYS DBA_REPAIR_TABLE VIEW
SYS REPAIR_TABLE TABLE
SQL>
SQL> -- Orphan Key Table
SQL>
SQL> declare
2 begin
3 -- Create orphan key table
4 dbms_repair.admin_tables (
5 table_type => dbms_repair.orphan_table,
6 action => dbms_repair.create_action,
7 tablespace => 'USERS'); -- default TS of SYS if not specified
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> select owner, object_name, object_type
2 from dba_objects
3 where object_name like '%ORPHAN_KEY_TABLE';
OWNER OBJECT_NAME OBJECT_TYPE
SYS DBA_ORPHAN_KEY_TABLE VIEW
SYS ORPHAN_KEY_TABLE TABLE
DBMS_REPAIR.CHECK_OBJECT
=========================
CHECK_OBJECT procedure 는 기술된 object를 check 하고, repair 를 위한 정보를 수집하기 위함이다.
SQL> @checkObject
SQL> set serveroutput on
SQL>
SQL> declare
2 rpr_count int;
3 begin
4 rpr_count := 0;
5 dbms_repair.check_object (
6 schema_name => 'SYSTEM',
7 object_name => 'T1',
8 repair_table_name => 'REPAIR_TABLE',
9 corrupt_count => rpr_count);
10 dbms_output.put_line('repair count: ' || to_char(rpr_count));
11 end;
12 /
repair count: 1
PL/SQL procedure successfully completed.
SQL> desc repair_table
Name Null? Type
OBJECT_ID NOT NULL NUMBER
TABLESPACE_ID NOT NULL NUMBER
RELATIVE_FILE_ID NOT NULL NUMBER
BLOCK_ID NOT NULL NUMBER
CORRUPT_TYPE NOT NULL NUMBER
SCHEMA_NAME NOT NULL VARCHAR2(30)
OBJECT_NAME NOT NULL VARCHAR2(30)
BASEOBJECT_NAME VARCHAR2(30)
PARTITION_NAME VARCHAR2(30)
CORRUPT_DESCRIPTION VARCHAR2(2000)
REPAIR_DESCRIPTION VARCHAR2(200)
MARKED_CORRUPT NOT NULL VARCHAR2(10)
CHECK_TIMESTAMP NOT NULL DATE
FIX_TIMESTAMP DATE
REFORMAT_TIMESTAMP DATE
SQL> select object_name, block_id, corrupt_type, marked_corrupt,
2 corrupt_description, repair_description
3 from repair_table;
OBJECT_NAME BLOCK_ID CORRUPT_TYPE MARKED_COR
CORRUPT_DESCRIPTION
REPAIR_DESCRIPTION
T1 3 1 FALSE
kdbchk: row locked by non-existent transaction
table=0 slot=0
lockid=32 ktbbhitc=1
mark block software corrupt
Data Extraction
===============
repair table에 의하면 file 6 ,block 3 에 corrupt 이 났음을 알수 있다
그러나 아직 이 block 은 corrupt 로 mark 되어 있지 않으므로 필요 data 를
추출하여야 한다.
1. ALTER SYSTEM DUMP (nrows = 3) 에 의해 block안에 있는 row수를 결정한다.
2. corrupt object를 select 하여 가능한 정보를 추출한다.
SQL> -- The following query can be used to salvage data from a corrupt block.
SQL> -- Creating a temporary table facilitates data insertion.
SQL> create table temp_t1 as
2 select * from system.t1
3 where dbms_rowid.rowid_block_number(rowid) = 3
4 and dbms_rowid.rowid_to_absolute_fno (rowid, 'SYSTEM','T1') = 6;
Table created.
SQL> select col1 from temp_t1;
COL1
2
3
DBMS_REPAIR.FIX_CORRUPT_BLOCKS (ORA-1578)
============================================
FIX_CORRUPT_BLOCKS procedure는 repair table 의 정보를 이용하여 corrupt
blocks 을 fix 한다
그러나 아직 full table scan 시 여전히 error 가 발생한다
SQL> declare
2 fix_count int;
3 begin
4 fix_count := 0;
5 dbms_repair.fix_corrupt_blocks (
6 schema_name => 'SYSTEM',
7 object_name => 'T1',
8 object_type => dbms_repair.table_object,
9 repair_table_name => 'REPAIR_TABLE',
10 fix_count => fix_count);
11 dbms_output.put_line('fix count: ' || to_char(fix_count));
12 end;
13 /
fix count: 1
PL/SQL procedure successfully completed.
SQL> select object_name, block_id, marked_corrupt
2 from repair_table;
OBJECT_NAME BLOCK_ID MARKED_COR
T1 3 TRUE
SQL> select * from system.t1;
select * from system.t1
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 6, block # 3)
ORA-01110: data file 6: '/tmp/ts_corrupt.dbf'
DBMS_REPAIR.DUMP_ORPHAN_KEYS
==============================
DUMP_ORPHAN_KEYS는 corrupt data 에 해당하는 index 를 나타내 준다
SQL> select index_name from dba_indexes
2 where table_name in (select distinct object_name from repair_table);
INDEX_NAME
T1_PK
SQL> @dumpOrphanKeys
SQL> set serveroutput on
SQL>
SQL> declare
2 key_count int;
3 begin
4 key_count := 0;
5 dbms_repair.dump_orphan_keys (
6 schema_name => 'SYSTEM',
7 object_name => 'T1_PK',
8 object_type => dbms_repair.index_object,
9 repair_table_name => 'REPAIR_TABLE',
10 orphan_table_name => 'ORPHAN_KEY_TABLE',
11 key_count => key_count);
12 dbms_output.put_line('orphan key count: ' || to_char(key_count));
13 end;
14 /
orphan key count: 3
PL/SQL procedure successfully completed.
SQL> desc orphan_key_table
Name Null? Type
SCHEMA_NAME NOT NULL VARCHAR2(30)
INDEX_NAME NOT NULL VARCHAR2(30)
IPART_NAME VARCHAR2(30)
INDEX_ID NOT NULL NUMBER
TABLE_NAME NOT NULL VARCHAR2(30)
PART_NAME VARCHAR2(30)
TABLE_ID NOT NULL NUMBER
KEYROWID NOT NULL ROWID
KEY NOT NULL ROWID
DUMP_TIMESTAMP NOT NULL DATE
SQL> select index_name, count(*) from orphan_key_table
2 group by index_name;
INDEX_NAME COUNT(*)
T1_PK 3
Note: orphan key table의 index 는 다시 rebuild 되어야 한다.
DBMS_REPAIR.SKIP_CORRUPT_BLOCKS
===============================
SKIP_CORRUPT_BLOCKS 은 table 과 index 의 corrupt block 을 skip 하는 것을 enable/disable 을 실시한다.
Suggestion: SKIP_CORRUPT_BLOCKS 가 enabled되면 orphan key table의 모든
index 는 모두 rebuild 되어야 한다. ( all index associated with object
if DUMP_ORPHAN_KEYS was omitted).
SQL> @skipCorruptBlocks
SQL> declare
2 begin
3 dbms_repair.skip_corrupt_blocks (
4 schema_name => 'SYSTEM',
5 object_name => 'T1',
6 object_type => dbms_repair.table_object,
7 flags => dbms_repair.skip_flag);
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> select table_name, skip_corrupt from dba_tables
2 where table_name = 'T1';
TABLE_NAME SKIP_COR
T1 ENABLED
SQL> -- rows in corrupt block skipped, no errors on full table scan
SQL> select * from system.t1;
COL1 COL2
4 dddd
5 eeee
--> Notice the pk index has not yet been corrected.
SQL> insert into system.t1 values (1,'aaaa');
insert into system.t1 values (1,'aaaa')
SQL> select * from system.t1 where col1 = 1;
no rows selected
DBMS_REPAIR.REBUILD_FREELISTS
===============================
REBUILD_FREELISTS rebuilds freelists for the specified object.
SQL> declare
2 begin
3 dbms_repair.rebuild_freelists (
4 schema_name => 'SYSTEM',
5 object_name => 'T1',
6 object_type => dbms_repair.table_object);
7 end;
8 /
PL/SQL procedure successfully completed.
Rebuild Index
=============
Note: Every index identified in the orphan key table should be rebuilt to
ensure consistent results.
SQL> alter index system.t1_pk rebuild online;
Index altered.
SQL> insert into system.t1 values (1, 'aaaa');
1 row created.
SQL> select * from system.t1;
COL1 COL2
4 dddd
5 eeee
1 aaaa
Reference Document
------------------Try look to alert<SID>.log file for full error report (you could paste it here).
Also from alert log you could get real values for db_block_buffers and shared_pool_size parameters that used during instance startup. -
Oracle 11g - How to repair block corruption(on free space) in datafile
Hi,
I have a tablesopace with 3 datafiles, out of which one datafile has corrupted block. But no objects or data is affected as the corrupted block os in free space. This was shown in the alert logs.
Please see below the details:
Wed Apr 06 15:30:04 2011
SMON: Restarting fast_start parallel rollback
SMON: ignoring slave err,downgrading to serial rollback
ORACLE Instance geooap (pid = 12) - Error 1578 encountered while recovering transaction (10, 6) on object 149755.
Errors in file f:\oracle11g\diag\rdbms\geooap\geooap\trace\geooap_smon_5540.trc:
ORA-01578: ORACLE data block corrupted (file # 7, block # 54053)
ORA-01110: data file 7: 'F:\ORACLE11G\ORADATA\GEOOAP\ORDER_DATA_01.DBF'
GEOAP:
Fri Apr 01 14:57:48 2011
Errors in file f:\oracle11g\diag\rdbms\geop\geop\trace\geop_arc1_2156.trc:
ORA-00235: control file read without a lock inconsistent due to concurrent update
Fri Apr 01 14:57:58 2011
================================================================
The corruption is being reported in a free space block of the ORDER_DATA_01.DBF.
I’ve checked all the tables (and indexes) in this tablespace and none report corruption.
=====================================================Is there any action I need to take to remove corruption at this point?It is not affected any operation on the database yet.
What is the best way to do get rid of the corrupt block, without dropping and rebuillding the full tablespace(which is around 6 GB -total of 3 datafiles)
Thanks a lotCan RMAN recover the datablock from this cold backup(which is a week old, the data file was not corrupted then) ?Please note that to do the recovery, you would need the backup and the archivelog files since the backup. Think about what you are asking to do. Its a single block whose recovery you are asking from a week old backup which obviously would be on an much older SCN compared to the rest of the database. How would you make that block consistent with the rest of the datafile. If you don't have archivelog in that db whose block is corrupted, you may forget that block and any data that it might ever had. Also, please read the documentation about the block recovery which explains the requirements very clearly,
http://download.oracle.com/docs/cd/E11882_01/backup.112/e10642/rcmblock.htm#BRADV89784
From the above link, 1st point,
The target database must run in ARCHIVELOG mode and be open or mounted with a current control file.HTH
Aman.... -
Finding and fixing block corruption in oracle 10g
10.2.0.5.6
OS: Hp-unix
databases files on RAW.
DB Size: 10 TBs+
We had a SAN outage recently. The DB is back online. We want to check for block corruption to be on the safe side. We are planning to take a SAN EMC BCV copy of prod to run this. Looking for opinioms on the best way.Production is up and running. This is just a sanity check.
We are NOT using RMAN for backups. We do a BCV copy and then back that up and archive logs to tape.
RMAN: Can we do this from the control files? Do we have to set anything up? Is this the best way?
DBMS_REPAIR: I have not used this. We don't even have the package installed. I can install it.
DB_VERIFY: not sure if this is a good option or not. Is this current? I know I'll have to do it file by file and grep the logs. I have used this in the past, but its been a while.
Performance issues, CPU, I/O don't matter. We are doing a BCV copy and then mounting the DB on a new server.Guess2 wrote:
10.2.0.5.6
OS: Hp-unix
databases files on RAW.
DB Size: 10 TBs+
We had a SAN outage recently. The DB is back online. We want to check for block corruption to be on the safe side. We are planning to take a SAN EMC BCV copy of prod to run this. Looking for opinioms on the best way.Production is up and running. This is just a sanity check.
We are NOT using RMAN for backups. We do a BCV copy and then back that up and archive logs to tape.
RMAN: Can we do this from the control files? Do we have to set anything up? Is this the best way?
DBMS_REPAIR: I have not used this. We don't even have the package installed. I can install it.
DB_VERIFY: not sure if this is a good option or not. Is this current? I know I'll have to do it file by file and grep the logs. I have used this in the past, but its been a while.
Performance issues, CPU, I/O don't matter. We are doing a BCV copy and then mounting the DB on a new server.
bcm@bcm-laptop:~$ dbv -help
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 21 07:29:42 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Keyword Description (Default)
FILE File to Verify (NONE)
START Start Block (First Block of File)
END End Block (Last Block of File)
BLOCKSIZE Logical Block Size (8192)
LOGFILE Output Log (NONE)
FEEDBACK Display Progress (0)
PARFILE Parameter File (NONE)
USERID Username/Password (NONE)
SEGMENT_ID Segment ID (tsn.relfile.block) (NONE)
HIGH_SCN Highest Block SCN To Verify (NONE)
(scn_wrap.scn_base OR scn) can be done against any datafile; open or closed, production or clone
Handle: Guess2
Status Level: Newbie
Registered: Aug 5, 2000
Total Posts: 454
Total Questions: 212 (201 unresolved)
WHY so MANY unanswered questions?
Edited by: sb92075 on May 21, 2012 7:31 AM -
Hi,
I am running into a data corruption issue.
My database is:
SQL> select banner from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
The following information is written to the alert.log File
alert.log File
Mon Nov 07 17:24:12 2011
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 2
Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
IMODE=BR
ILAT =27
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production.
ORACLE_HOME = /home/oracle/dbhome
System name: Linux
Node name: dbl-ora
Release: 2.6.18-274.3.1.el5 (This is rhel5.7 or CentOs5.7)
Version: #1 SMP Tue Sep 6 20:14:03 EDT 2011
Machine: i686 / vm
Mon Nov 07 19:42:14 2011
Corrupt Block Found
TSN = 0, TSNAME = SYSTEM
RFN = 1, BLK = 52346, RDBA = 4246650
OBJN = 225, OBJD = 225, OBJECT = IDL_UB1$, SUBOBJECT =
SEGMENT OWNER = SYS, SEGMENT TYPE = Table Segment
Errors in file /home/oracle/diag/rdbms/ora11/K/trace/K_ora_5425.trc (incident=11053):
ORA-01578: ORACLE data block corrupted (file # 1, block # 52346)
ORA-01110: data file 1: '/home/oracle/oradata/ora11/system01.dbf'
Incident details in: /home/oracle/diag/rdbms/ora11/K/incident/incdir_11053/K_ora_5425_i11053.trc
I was even able to detect the row that is generating the issue.
In my case the obj# 33573 until 33577 are causing the issue,
though I have no idea what sort of objects are affected.
SQL> select * from idl_ub1$ where obj#=33572;
OBJ# PART VERSION PIECE# LENGTH P
33572 1 0 0 9032 F
SQL> select * from idl_ub1$ where obj#=33573;
ERROR:
ORA-01578: ORACLE data block corrupted (file # 1, block # 52346)
ORA-01110: data file 1: '/home/oracle/oradata/ora11/system01.dbf'
no rows selected
SQL> select * from idl_ub1$ where obj#=33577;
ERROR:
ORA-01578: ORACLE data block corrupted (file # 1, block # 52358)
ORA-01110: data file 1: '/home/oracle/oradata/ora11/system01.dbf'
no rows selected
SQL> select * from idl_ub1$ where obj#=33578;
OBJ# PART VERSION PIECE# LENGTH P
33578 1 0 0 9032 F
Any idea, how to fix this problem without recreating the whole database?
Thanks in advance.
wmager
Edited by: magerxr on Nov 7, 2011 8:27 AMmagerxr wrote:
Thanks again for your quick advise.
Here comes the result of dbv against my system tablespace.
[oracle@dbl-ora ~]$ dbv FILE=/home/oracle/oradata/ora11/system01.dbf
DBVERIFY: Release 11.2.0.3.0 - Production on Mon Nov 7 22:39:11 2011
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /home/oracle/oradata/ora11/system01.dbf
Page 52346 is influx - most likely media corrupt
Corrupt block relative dba: 0x0040cc7a (file 1, block 52346)
Fractured block found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0040cc7a
last change scn: 0x0000.0010acfa seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00000000
check value in block header: 0x8fda
computed block checksum: 0xaafbselect owner, segment_type, segment_name from dba_extents
where file_id = 1 and 52346 between block_id and block_id+blocks-1;
>
Page 52347 is marked corrupt
Corrupt block relative dba: 0x0040cc7b (file 1, block 52347)
Bad header found during dbv:
Data in bad block:
type: 1 format: 6 rdba: 0x0000a206
last change scn: 0xacfa.0040cc7b seq: 0x10 flg: 0x00
spare1: 0xfa spare2: 0xac spare3: 0x401
consistency value in tail: 0x00000000
check value in block header: 0x0
block checksum disabled
select owner, segment_type, segment_name from dba_extents
where file_id = 1 and 52347 between block_id and block_id+blocks-1;
Page 52361 is marked corrupt
Corrupt block relative dba: 0x0040cc89 (file 1, block 52361)
Bad header found during dbv:
Data in bad block:
type: 1 format: 6 rdba: 0x0000a206
last change scn: 0xacfb.0040cc89 seq: 0x10 flg: 0x00
spare1: 0xfb spare2: 0xac spare3: 0x401
consistency value in tail: 0x32298500
check value in block header: 0x0
block checksum disabled
select owner, segment_type, segment_name from dba_extents
where file_id = 1 and 52361 between block_id and block_id+blocks-1;
>
>
DBVERIFY - Verification complete
Total Pages Examined : 122880
Total Pages Processed (Data) : 81298
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 22307
Total Pages Failing (Index): 0
Total Pages Processed (Other): 3349
Total Pages Processed (Seg) : 1
Total Pages Failing (Seg) : 0
Total Pages Empty : 15910
Total Pages Marked Corrupt : 16
Total Pages Influx : 1
Total Pages Encrypted : 0
Highest block SCN : 4064615 (0.4064615)post results from 3 SQL above -
Oracle giving Block corruption errors when using CDC for sending the data to SQL Server 2012
Hello Friends,
We are facing an error while using CDC with Oracle. It is a "Block corruption" error, which indicates at some level of data corruption. We ran RMAN validate command to scan the database for corruption but it returned with no errors, however he
Alert Log in Oracle is still coming up with the following error. Has anyone experienced this error when using Oracle Standard Edition and SQL 2012 ?
Trace file e:\app\pulse-ad\diag\rdbms\orcl\orcl\trace\orcl_ora_5992.trc
Oracle Database 11g Release 11.1.0.7.0 - 64bit Production
Windows Server 2003 Version V5.2 Service Pack 2
CPU : 4 - type 8664, 4 Physical Cores
Process Affinity : 0x0000000000000000
Memory (Avail/Total): Ph:6782M/24575M, Ph+PgF:12203M/30844M
Instance name: orcl
Redo thread mounted by this instance: 1
Oracle process number: 151
Windows thread id: 5992, image: ORACLE.EXE (SHAD)
*** 2013-12-12 03:04:33.655
*** SESSION ID:(1281.3832) 2013-12-12 03:04:33.655
*** CLIENT ID:() 2013-12-12 03:04:33.655
*** SERVICE NAME:(orcl) 2013-12-12 03:04:33.655
*** MODULE NAME:(xdbcdcsvc.exe) 2013-12-12 03:04:33.655
*** ACTION NAME:() 2013-12-12 03:04:33.655
Lost-write detected for sequence 70856. The lost-write starts occurring in block 11193. The current block being validating is 12930.
Block dump of the first lost-write block:
Flag: 0x1 Format: 0x22 Block: 0x00002bb9 Seq: 0x000114bf Beg: 0x94 Cks:0x68ee
Dump of memory from 0x0000000598D06C00 to 0x0000000598D06E00
598D06C00 00002201 00002BB9 000114BF 68EE8094 [."...+.........h]
598D06C10 00085BF1 0023BDA1 000DE19C 000DE19C [.[....#.........]
598D06C20 0000000C 00000000 2209160A 5BF10000 [..........."...[]
598D06C30 3EB10502 00C0F5CA 0031BDA1 00010205 [...>......1.....]
598D06C40 02B22C6A 038A6D69 00000001 00000000 [j,..im..........]
598D06C50 4D554407 30373230 35BB0206 001100AE [.DUM0270...5....]
598D06C60 0001040A 000D000E 038A6D69 56B25735 [........im..5W.V]
598D06C70 729C0003 E19C0001 000C0006 000D0006 [...r............]
598D06C80 02BB0502 00C0F5CD 0023BDA1 000A0002 [..........#.....]
598D06C90 00C00013 000000D0 00030201 56B25736 [............6W.V]
598D06CA0 03890001 00000000 00000000 002E0105 [................]
598D06CB0 FFFF0003 00C0F5CD 56B25736 3EB10003 [........6W.V...>]
598D06CC0 FFFF0024 0014000C 000C0018 00120014 [$...............]
598D06CD0 09CC0058 E75B0022 0009000F 00085BF1 [X...".[......[..]
598D06CE0 0024BDA1 000DE19D 000DE19D 0000000C [..$.............]
598D06CF0 00000000 2309160A 5BF10000 3EB10502 [.......#...[...>]
598D06D00 00C0F5CD 0020BDA1 00010205 02B22C72 [...... .....r,..]
598D06D10 03900974 00000019 00000000 3030300A [t............000]
598D06D20 33303030 06323132 AE35BB02 0B441100 [0003212...5...D.]
598D06D30 0001040A 000D000E 03900974 56B25736 [........t...6W.V]
598D06D40 729C0003 E19D0011 000C0006 000D0006 [...r............]
598D06D50 02BB0502 00C0F5CD 0024BDA1 00EA0002 [..........$.....]
598D06D60 00270016 000001FC 00032C01 56B25736 [..'......,..6W.V]
598D06D70 00000001 00000000 30393007 002E0105 [.........090....]
598D06D80 FFFF0003 00C0F5CD 56B25736 00000003 [........6W.V....]
598D06D90 FFFF0025 00140052 000C0018 00070035 [%...R.......5...]
598D06DA0 0003000A 00070003 0001001D 00030001 [................]
598D06DB0 00010001 00010001 00010001 00010001 [................]
598D06DC0 00010001 00010001 00010001 00010001 [................]
598D06DD0 00010001 00000001 00010001 00010001 [................]
598D06DE0 00010001 00000014 09720174 00000022 [........t.r."...]
598D06DF0 0009000F 00085BF1 0025BDA1 000DE19A [.....[....%.....]
Block dump of the current block being validating:
Flag: 0x1 Format: 0x22 Block: 0x00003282 Seq: 0x000114c8 Beg: 0x0 Cks:0x312a
Dump of memory from 0x0000000598DDFE00 to 0x0000000598DE0000
598DDFE00 00002201 00003282 000114C8 312A8000 [."...2........*1]
598DDFE10 50424703 31303607 34353335 69745319 [.GBP.6015354.Sti]
598DDFE20 6E696C72 72502067 6375646F 4C207374 [rling Products L]
598DDFE30 4E206474 C3025650 0380013D 0457454E [td NPV..=...NEW.]
598DDFE40 4E1E09C2 1E09C204 10C2024E 1E09C204 [...N....N.......]
598DDFE50 09C2044E C2024E1E 03C30510 021B0929 [N....N......)...]
598DDFE60 C3053DC3 0F192602 2602C305 C3050F19 [.=...&.....&....]
598DDFE70 0C1A6203 5102C105 C2041F4E 044E1E09 [.b.....QN.....N.]
598DDFE80 4E1E09C2 0410C202 4E1E09C2 1E09C204 [...N.......N....]
598DDFE90 10C2024E 2903C305 78071B09 011D0B71 [N......)...xq...]
598DDFEA0 BF020101 1FBF0215 4E018001 53014E01 [...........N.N.S]
598DDFEB0 0723002C 0B0C7178 0A3C3C18 30303030 [,.#.xq...<<.0000]
598DDFEC0 33373030 4D033337 47034255 36075042 [007373.MUB.GBP.6]
598DDFED0 38333936 4E113331 2065776B 74616C50 [693813.Nkwe Plat]
598DDFEE0 6D756E69 56504E20 0B0AC303 4E038001 [inum NPV.......N]
598DDFEF0 C2045745 0459512E 59512EC2 5253C203 [EW...QY...QY..SR]
598DDFF00 512EC204 2EC20459 C2035951 C3055253 [...QY...QY..SR..]
598DDFF10 1B092903 0B0AC303 3C04C305 C3053239 [.).........<92..]
598DDFF20 32393C04 4F08C305 C105114F 1F4E5102 [.<92...OO....QN.]
598DDFF30 512EC204 2EC20459 C2035951 C2045253 [...QY...QY..SR..]
598DDFF40 0459512E 59512EC2 5253C203 2903C305 [.QY...QY..SR...)]
598DDFF50 78071B09 01190A71 C0030101 C0034709 [...xq........G..]
598DDFF60 8001330A 4E014E01 002C5301 71780723 [.3...N.N.S,.#.xq]
598DDFF70 3C180B0C 30300A3C 30303030 33373337 [...<<.0000007373]
598DDFF80 42554D03 50424703 31304207 344C5131 [.MUB.GBP.B011QL4]
598DDFF90 6F725020 63657073 614A2074 206E6170 [ Prospect Japan ]
598DDFFA0 646E7546 64724F20 44535520 30302E30 [Fund Ord USD0.00]
598DDFFB0 04C30331 03800133 0557454E 5B1603C3 [1...3...NEW....[]
598DDFFC0 03C30521 04215B16 1F4004C3 1603C305 [!....[!...@.....]
598DDFFD0 C305215B 215B1603 4004C304 03C3051F [[!....[!...@....]
598DDFFE0 031B0929 043304C3 4D245AC2 245AC204 [).....3..Z$M..Z$]
598DDFFF0 02C3054D 040A1A18 494002C1 1603C305 [M.........@I....]
*** 2013-12-12 03:05:07.984
** LOGMINER WARNING - Invalidated 6 LCRs **
Complete dump of first invalid START LCR follows:
++ LCR Dump Begin: 0x0000000532C004E0 - CANNOT_SUPPORT
op: 255, Original op: 3, baseobjn: 0, objn: 233316, objv: 1
DF: 0x00000002, DF2: 0x00000000, MF: 0x00000000, MF2: 0x00000000
PF: 0x40000001, PF2: 0x00002000
MergeFlag: 0x00, FilterFlag: 0x00
Id: 0, iotPrimaryKeyCount: 3, numChgRec: 4
NumCrSpilled: 0
RedoThread#: 1, rba: 0x0114c8.0001c6ce.00d4
scn: 0x0003.56b593be, xid: 0x0008.00c.00100d85, pxid: 0x0008.00c.00100d85
ncol: 0newcount: 0, oldcount: 0
LUBA: 0x3.c109c0.c.15.38f64
Thanks
DeeHi Dee,
Thank you for your question.
I am trying to involve someone more familiar with this topic for a further look at this issue. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated.
Thank you for your understanding and support.
Regards,
Mike Yin
TechNet Community Support -
Block Corruption in empty pages in Oracle 11g
I am using Oracle 11.1.0.7.1 on HP UNIX 11i.
On several occasions, I have been seen that block corruptions are reported by rman. I have never seen this problem in previous release of databases; but I have seen it more than once in Oracle 11g.
However, when I run dbv command; I do not see any corruption in data and index blocks; so my conclusion is block corruption is in empty pages.
Anyone has ideas why block corruption occurs in Oracle 11g. Has Oracle’s algorithm for checking block corruption have changed in 11g; I.e.; these corruptions existed in older Oracle releases but not reported by rman,
Another strange thing I noticed:
1. When doing export backup, export backup reports about corrupted blocks.
2. When I do expdp no errors are reported.
So question is why is exp command checking empty blocks?
Any insights in above will be appreciated.Can some one explain following ooutput from dbv; what is difference in
total pages failing and corrupt pages. I see
total pages marked corrupt as 1345; yet I do not see any data or index
pages marked corrupt; and there is only 1 empty page. So where are
those 1345 corrupt pages.
DBVERIFY - Verification complete
Total Pages Examined : 371200
Total Pages Processed (Data) : 328622
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 38
Total Pages Failing (Index): 0
Total Pages Processed (Other): 41194
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 1
Total Pages Marked Corrupt : 1345
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3430163491 (2476.3430163491)
DBVERIFY: Release 11.1.0.7.0 - Production on Sat Aug 14 00:25:24 2010 -
Block Corruption (BR0398E DBVERIFY detected corrupted blocks in /oracle/TS2
Hello Gurus
I am facing Data Block corruption error for single datafile....
BR0278W Command output of '/oracle/TS2/102_64/bin/dbv file=/oracle/TS2/sapdata3/ts2_73/ts2.data73 blocksize=8192':
DBVERIFY: Release 10.2.0.2.0 - Production on Thu Jul 17 23:31:25 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = /oracle/TS2/sapdata3/ts2_73/ts2.data73
Block Checking: DBA = 528925394, Block Type = KTB-managed data block
row 4: key out of order
end index block validation
Page 443090 failed with check code 6401
DBVERIFY - Verification complete
Total Pages Examined : 1280000
Total Pages Processed (Data) : 248379
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 180541
Total Pages Failing (Index): 1
Total Pages Processed (Other): 13272
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 837808
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 65006255 (0.65006255)
BR0398E DBVERIFY detected corrupted blocks in /oracle/TS2/sapdata3/ts2_73/ts2.data73
appriciated help please..
Regards
Giridhar.Dump file /oracle/TS2/saptrace/usertrace/ts2_ora_23103.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning and Data Mining options
ORACLE_HOME = /oracle/TS2/102_64
System name: SunOS
Node name: sassad25
Release: 5.10
Version: Generic_120011-14
Machine: sun4u
Instance name: TS2
Redo thread mounted by this instance: 1
Oracle process number: 53
Unix process pid: 23103, image: oracle@sassad25 (TNS V1-V3)
2008-07-18 13:48:40.486
SERVICE NAME:(SYS$USERS) 2008-07-18 13:48:40.484
SESSION ID:(925.20292) 2008-07-18 13:48:40.484
Block Checking: DBA = 528925394, Block Type = KTB-managed data block
row 4: key out of order
end index block validation
for block 0x1f86c2d2
Block header dump: 0x1f86c2d2
Object id on Block? Y
seg/obj: 0x2c6f0 csc: 0x00.3f418d9 itc: 2 flg: E typ: 2 - INDEX
brn: 0 bdba: 0x1f86c00b ver: 0x01 opc: 0
inc: 0 exflg: 0
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0000.000.00000000 0x00000000.0000.00 -
0 fsc 0x0000.00000000
0x02 0x0002.008.00002cb6 0x02475283.0359.19 --U- 2 fsc 0x0000.03f418ee
Leaf block dump
===============
header address 17494483044=0x412c0a064
kdxcolev 0
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 7
kdxcosdc 0
kdxconro 174
kdxcofbo 384=0x180
kdxcofeo 967=0x3c7
kdxcoavs 583
kdxlespl 0
kdxlenxt 528925395=0x1f86c2d3
kdxleprv 528925393=0x1f86c2d1
kdxledsz 6
kdxlebksz 8032
row#0[7990] flag: -
, lock: 0, len=42, data:(6): 1b ce 75 c6 00 15
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 9; (9): 48 50 4c 4a 31 31 30 30 69
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#1[7952] flag: -
, lock: 0, len=38, data:(6): 1c 46 88 34 00 0e
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 5; (5): 48 50 4c 4a 34
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#2[7913] flag: -
, lock: 0, len=39, data:(6): 1b 8f 2b bd 00 03
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 6; (6): 48 50 4c 4a 34 30
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#3[7871] flag: -
, lock: 0, len=42, data:(6): 20 03 18 b1 00 0a
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 9; (9): 48 50 4c 4a 34 30 30 30 00
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#4[7830] flag: -
, lock: 0, len=41, data:(6): 1b 4f 19 ef 00 0b
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 8; (8): 48 50 4c 4a 34 30 30 30
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#5[7788] flag: -
, lock: 0, len=42, data:(6): 21 03 15 12 00 02
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 9; (9): 48 50 4c 4a 34 30 30 30 31
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#6[7746] flag: -
, lock: 0, len=42, data:(6): 1c 86 83 6a 00 0c
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 9; (9): 48 50 4c 4a 34 30 30 30 37
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#7[7704] flag: -
, lock: 0, len=42, data:(6): 1b 4f 19 0f 00 02
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 9; (9): 48 50 4c 4a 34 30 30 30 44
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#8[7662] flag: -
, lock: 0, len=42, data:(6): 1f 03 50 f5 00 03
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 9; (9): 48 50 4c 4a 34 30 30 30 44
col 4; len 3; (3): 37 30 30
col 5; len 1; (1): 44
col 6; len 1; (1): 80
row#9[7619] flag: -
, lock: 0, len=43, data:(6): 1f 03 50 f5 00 04
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 9; (9): 48 50 4c 4a 34 30 30 30 44
col 4; len 3; (3): 37 30 30
col 5; len 1; (1): 44
col 6; len 2; (2): c1 02
row#10[7577] flag: -
, lock: 0, len=42, data:(6): 1f 43 21 d1 00 09
col 0; len 3; (3): 30 31 35
col 1; len 2; (2): 58 58
col 2; len 8; (8): 46 4f 4e 54 52 45 50 4c
col 3; len 9; (9): 48 50 4c 4a 34 30 30 30 45
col 4; len 3; (3): 34 36 43
col 5; len 1; (1): 44 -
ORA-01578: ORACLE data block corrupted (file # 1, block # 53713)
When i tried to export data from db (Oracle 11g, 64bit on Linux)
Im getting following error
About to export specified users ...
. exporting pre-schema procedural objects and actions
EXP-00008: ORACLE error 604 encountered
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 53713)
ORA-01110: data file 1: '/u02/oradata/RSDB1/system01.dbf'
EXP-00083: The previous problem occurred when calling EXFSYS.DBMS_EXPFIL_DEPASEX P.schema_info_exp
EXP-00008: ORACLE error 604 encountered
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 55497)
ORA-01110: data file 1: '/u02/oradata/RSDB1/system01.dbf'
EXP-00083: The previous problem occurred when calling SYS.DBMS_CUBE_EXP.schema_i nfo_exp
. exporting foreign function library names for user WB_APP_MANAGER
. exporting PUBLIC type synonyms
EXP-00008: ORACLE error 604 encountered
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 44638)
ORA-01110: data file 1: '/u02/oradata/RSDB1/system01.dbf'
EXP-00000: Export terminated unsuccessfully
I donot understand how to solve this issue Please help me to solve this issue..
Thanks891620 wrote:
When i tried to export data from db (Oracle 11g, 64bit on Linux)
Im getting following error
About to export specified users ...
. exporting pre-schema procedural objects and actions
EXP-00008: ORACLE error 604 encountered
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 53713)
ORA-01110: data file 1: '/u02/oradata/RSDB1/system01.dbf'
EXP-00083: The previous problem occurred when calling EXFSYS.DBMS_EXPFIL_DEPASEX P.schema_info_exp
EXP-00008: ORACLE error 604 encountered
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 55497)
ORA-01110: data file 1: '/u02/oradata/RSDB1/system01.dbf'
EXP-00083: The previous problem occurred when calling SYS.DBMS_CUBE_EXP.schema_i nfo_exp
. exporting foreign function library names for user WB_APP_MANAGER
. exporting PUBLIC type synonyms
EXP-00008: ORACLE error 604 encountered
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 44638)
ORA-01110: data file 1: '/u02/oradata/RSDB1/system01.dbf'
EXP-00000: Export terminated unsuccessfully
I donot understand how to solve this issue Please help me to solve this issue..
Thanksrun dbv against '/u02/oradata/RSDB1/system01.dbf'
& post results back here
dbv
DBVERIFY: Release 11.2.0.1.0 - Production on Fri Oct 14 20:39:11 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Keyword Description (Default)
FILE File to Verify (NONE)
START Start Block (First Block of File)
END End Block (Last Block of File)
BLOCKSIZE Logical Block Size (8192)
LOGFILE Output Log (NONE)
FEEDBACK Display Progress (0)
PARFILE Parameter File (NONE)
USERID Username/Password (NONE)
SEGMENT_ID Segment ID (tsn.relfile.block) (NONE)
HIGH_SCN Highest Block SCN To Verify (NONE)
(scn_wrap.scn_base OR scn) -
ORA-01578: ORACLE data block corrupted on tables in sysaux tablespace
Dear Experts,
From the alert log file we noticed data block corruptions on one of our datafiles. After further investigation, we realized that the corruptions were on 3 of the AWR related tables in the SYSAUX tablespace:
1. WRH$_LIBRARYCACHE
2. WRH$_TEMPSTATXS
3. WRI$_ALERT_OUTSTANDING
The bad news is that we may not have a valid rman backup to do the recovery due to the retention policy - RECOVERY WINDOW OF 2 DAYS. Since this is a development database with limited monitoring, we did not discover the corruption until 6 days later. The issue happened about 6 days ago (about Christmas time).
So, what are our recovery options? Can someone advice? We are thinking about drop and recreate the 3 affected v$WR* tables, but not quite sure about the impact to the system if we drop and recreate the 3 objects. Did someone experience this type of recovery. If you did, what are your approaches?
We are running oracle 10.2.0.3 version.
I greatly appreciate your input and suggestion. Thanks!!!as long as you have a backup of ur database before christmas, you can use the " MAXDAYS " cmd to get ur backup working so long as you have not used delete obsolote....had a same sistuation....where i had a backup and trying to restore it ...kept saying no valid backup...after going thru some stuff...found the MAXDAYS cmd to use my backup...here is an example ...
$ rman target /
Recovery Manager: Release 10.2.0.2.0 - Production on Sun Apr 6 09:05:44 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database (not started)
RMAN> SET DBID=1528894801
executing command: SET DBID
RMAN> startup force nomount;
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/10.2.0/db_1/dbs/initsameera.ora'
starting Oracle instance without parameter file for retrival of spfile
Oracle instance started
Total System Global Area 159383552 bytes
Fixed Size 1259672 bytes
Variable Size 58722152 bytes
Database Buffers 92274688 bytes
Redo Buffers 7127040 bytes
RMAN> set controlfile autobackup format for device type disk to '/u99/backup/sameera/control_spfile_%F';
executing command: SET CONTROLFILE AUTOBACKUP FORMAT
using target database control file instead of recovery catalog
RMAN> run
2> {
3> allocate channel p1 type disk;
4> restore spfile to pfile '/u01/app/oracle/product/10.2.0/db_1/dbs/initsameera.ora' from autobackup;
5> shutdown abort;
6> }
allocated channel: p1
channel p1: sid=36 devtype=DISK
Starting restore at 06-APR-08
channel p1: looking for autobackup on day: 20080406
channel p1: looking for autobackup on day: 20080405
channel p1: looking for autobackup on day: 20080404
channel p1: looking for autobackup on day: 20080403
channel p1: looking for autobackup on day: 20080402
channel p1: looking for autobackup on day: 20080401
channel p1: looking for autobackup on day: 20080331
channel p1: no autobackup in 7 days found
released channel: p1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 04/06/2008 09:09:09
RMAN-06172: no autobackup found or specified handle is not a valid copy or piece
Solution:
RMAN> shutdown abort;
RMAN> EXIT;
$ ps -ef |grep pmon
oracle 2891 2856 0 09:05 pts/1 00:00:00 grep pmon
oracle 7448 1 0 Apr05 ? 00:00:00 ora_pmon_primary
$export ORACLE_SID=sameera
$ rman target /
Recovery Manager: Release 10.2.0.2.0 - Production on Sun Apr 6 09:05:44 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database (not started)
RMAN> SET DBID=1528894801
executing command: SET DBID
RMAN> startup force nomount;
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/10.2.0/db_1/db s/initsameera.ora'
starting Oracle instance without parameter file for retrival of spfile
Oracle instance started
Total System Global Area 159383552 bytes
Fixed Size 1259672 bytes
Variable Size 58722152 bytes
Database Buffers 92274688 bytes
Redo Buffers 7127040 bytes
RMAN> set controlfile autobackup format for device type disk to '/u99/backup/sameera/control_spfile_%F';
executing command: SET CONTROLFILE AUTOBACKUP FORMAT
using target database control file instead of recovery catalog
RMAN> run
2> {
3> allocate channel p1 type disk;
4> restore spfile to pfile '/u01/app/oracle/product/10.2.0/db_1/dbs/initsameera.ora' from autobackup maxdays 15;
5> shutdown abort;
6> }
released channel: ORA_DISK_1
allocated channel: p1
channel p1: sid=36 devtype=DISK
Starting restore at 06-APR-08
channel p1: looking for autobackup on day: 20080406
channel p1: looking for autobackup on day: 20080405
channel p1: looking for autobackup on day: 20080404
channel p1: looking for autobackup on day: 20080403
channel p1: looking for autobackup on day: 20080402
channel p1: looking for autobackup on day: 20080401
channel p1: looking for autobackup on day: 20080331
channel p1: looking for autobackup on day: 20080330
channel p1: looking for autobackup on day: 20080329
channel p1: looking for autobackup on day: 20080328
channel p1: looking for autobackup on day: 20080327
channel p1: looking for autobackup on day: 20080326
channel p1: looking for autobackup on day: 20080325
channel p1: looking for autobackup on day: 20080324
channel p1: looking for autobackup on day: 20080323
channel p1: autobackup found: /u99/backup/sameera/control_spfile_c-1528894801-20080323-00
channel p1: SPFILE restore from autobackup complete
Finished restore at 06-APR-08
Oracle instance shut down
Check to make sure if initsameera.ora exists in $ORACLE_HOME/dbs location.
$ cd $ORACLE_HOME/dbs
$ ls -ltr
total 7052
-rw-r----- 1 oracle oinstall 2560 Apr 5 13:21 spfileprimary.ora
-rw-r----- 1 oracle oinstall 7061504 Apr 5 13:23 snapcf_primary.f
-rw-rw---- 1 oracle oinstall 1544 Apr 5 18:42 hc_sameera.dat
-rw-r--r-- 1 oracle oinstall 1087 Apr 6 09:12 initsameera.ora
$ pwd
/u01/app/oracle/product/10.2.0/db_1/dbs
$
Maybe you are looking for
-
Please I want an answer asap and by the way I live in Egypt.
-
HOW TO RESET SYS PASSWORD after rename of db
Thanks for taking my quesiton! I renamed my database. Everything is working fine except I can not change sys password. If I try I get: ORA-28003 : password verified for the specified password failed. I can change system's password. I can log on just
-
CUMULATIVE& NON CUMULATIVE KF'S
hello all, 1. what is the difference between Cumulative& Non Cumulative Key figures? what is the use & where &when we used these kf's ? 2.what is Virtual kf's ? wt is the use &where , when we used ? pls any body explain ,,,thnks
-
Hi my iphone 5 is on recovery mode and I connect it with the computer but it's failing to restore the device the message is showing iphone restore failed!!!!!
-
Connecting XML files with xMII
Hi, i want to connect xml file (say one.xml having table name and price) with xMII. how can i do it? by using TAG query? what is the simulatorTag.xml? - senthil