Corruption_type=Nologging block corruption in RMAN
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit 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
SQL> select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
41 2620546 126 2.0901E+12 NOLOGGING
41 2620674 126 2.0901E+12 NOLOGGING
41 2620802 126 2.0901E+12 NOLOGGING
41 2620930 126 2.0901E+12 NOLOGGING
41 2621058 126 2.0901E+12 NOLOGGING
41 2621186 126 2.0901E+12 NOLOGGING
54 753800 8 2.0901E+12 NOLOGGING
54 753809 15 2.0901E+12 NOLOGGING
54 753841 15 2.0901E+12 NOLOGGING
54 753857 15 2.0901E+12 NOLOGGING
54 753873 15 2.0901E+12 NOLOGGING
I am getting this alert in rman - Can you please help me how to resolve this issue - Please let me know any other information required.
SQL> select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
54 753841 15 2.0901E+12 NOLOGGING
54 753889 15 2.0901E+12 NOLOGGING
54 753905 15 2.0901E+12 NOLOGGING
54 754209 15 2.0901E+12 NOLOGGING
54 754225 15 2.0901E+12 NOLOGGING
54 754273 15 2.0901E+12 NOLOGGING
54 754289 15 2.0901E+12 NOLOGGING
53 1900680 120 2.0901E+12 NOLOGGING
53 1900802 126 2.0901E+12 NOLOGGING
53 1900930 60 2.0901E+12 NOLOGGING
53 1901058 126 2.0901E+12 NOLOGGING
53 1901186 126 2.0901E+12 NOLOGGING
53 1901314 60 2.0901E+12 NOLOGGING
54 753952 32 2.0901E+12 NOLOGGING
54 754016 32 2.0901E+12 NOLOGGING
54 754080 32 2.0901E+12 NOLOGGING
54 754144 32 2.0901E+12 NOLOGGING
54 754336 32 2.0901E+12 NOLOGGING
54 754400 32 2.0901E+12 NOLOGGING
54 754464 32 2.0901E+12 NOLOGGING
54 754528 32 2.0901E+12 NOLOGGING
47 2620934 122 2.0901E+12 NOLOGGING
22 rows selected.
SQL> select unique c.FILE#,c.BLOCK#, s.owner, s.segment_name, s.segment_type, s.partition_name from v$database_block_corruption c, dba_segments s
2 where s.header_file = c.file#
3 and s.header_block = c.block#;
no rows selected
SQL> select
2 unique c.FILE#,c.BLOCK#, e.owner, e.segment_name, e.segment_type, e.partition_name
3 from dba_extents e,v$database_block_corruption c
4 where e.file_id = c.file#
5 and e.block_id = c.block#;
no rows selected
SQL> select *
2 from dba_extents
3 where file_id = &AFN
4 and &BL between block_id AND block_id + blocks - 1;
Enter value for afn: 54
old 3: where file_id = &AFN
new 3: where file_id = 54
Enter value for bl: 754016
old 4: and &BL between block_id AND block_id + blocks - 1
new 4: and 754016 between block_id AND block_id + blocks - 1
OWNER
SEGMENT_NAME
PARTITION_NAME SEGMENT_TYPE TABLESPACE_NAME
EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
SPRTHIST
PIHIST00
TABLE SPRTHISTDATA
289 54 753792 67108864 8192 54
Similar Messages
-
How to overcome Block corruption using RMAN
Hi All,
How to overcome bolck corruption using RMAN. What is the procedure to do so.
Thanks & Regards
J.VenugopalHi all,
I´ve performed the following command on RMAN:
RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;After, I query the V$DATABASE_BLOCK_CORRUPTION table, and the below records
was returned:
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
67 4670 1 1202832866 LOGICAL
68 154131 338 1175601952 LOGICAL
68 155329 60 1174783128 LOGICAL
68 155409 60 1174783132 LOGICAL
68 155471 78 1174783135 LOGICAL
68 155551 78 1174783139 LOGICAL
68 155631 18 1174783143 LOGICAL
68 155651 18 1174783144 LOGICAL
68 155671 18 1174783145 LOGICAL
68 155691 18 1174783146 LOGICAL
68 155711 18 1174783147 LOGICAL
68 155731 18 1174783148 LOGICAL
68 155751 18 1174783149 LOGICAL
68 155771 78 1174783150 LOGICAL
68 155851 78 1174783154 LOGICAL
68 155931 49 1174783158 LOGICAL
73 165758 1 1180191676 LOGICALSo, when I try to recover these blocks by using blockrecover command, I got the error:
RMAN> blockrecover corruption list;
Starting blockrecover at 27-SEP-07
using channel ORA_DISK_1
using channel ORA_DISK_2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 09/27/2007 10:22:10
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 73 found to restore
RMAN-06023: no backup or copy of datafile 68 found to restore
RMAN-06023: no backup or copy of datafile 67 found to restoreWhat can I do in this case?
Thank U very much!
[]´s -
Hi
I know rman detect block corruption but my question is block corruption having two types one is physical block corruption and other is logical block corruption
by default rman enable physical block corruption but by default rman not able to detect logical block corruption.Plz tell how i enable logical block corruption with RMAN?
Please make correction if i m wrong.
Thanks a lot.>> Sorry i am not telling you i am using oracle 9iR2 instead of oracle 10g
It's okay.
That's why; it's been already told that before posting in the forums, better it's better to specify/mention the Oracle Version/OS Details, etc to get the accurate and response.
>> Send me if you have 9i related document.
No need to send you the related documents, when there is a bulk repository available for free of cost for everybody.
All you need to do is, just search in http://tahiti.oracle.com/ with the required word or phrase.
Don't take me wrong, but make a habit of searching related documents from the Oracle Documentations.
Regards,
Sabdar Syed. -
Checking block corruption, why in alert it is saying Error in trace file
Hi,
I am using Oracle 10g 10.2.0.1 with linux 32 bit
I wanted to check block corruption using RMAN by following statement
backup validate check logical database;
when i executed the statement, following was the output
Starting backup at 09-MAY-08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=91 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/u01/app/oracle/oradata/test/users01.dbf
input datafile fno=00008 name=/u01/app/oracle/oradata/test/workflowuser
input datafile fno=00001 name=/u01/app/oracle/oradata/test/system01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/test/sysaux01.dbf
input datafile fno=00010 name=/u01/app/oracle/oradata/test/ifan
input datafile fno=00002 name=/u01/app/oracle/oradata/test/undotbs01.dbf
input datafile fno=00007 name=/u01/app/oracle/oradata/test/taker
input datafile fno=00009 name=/u01/app/oracle/oradata/test/testing1
input datafile fno=00005 name=/u01/app/oracle/oradata/test/brokerdb
input datafile fno=00006 name=/u01/app/oracle/oradata/test/moneio
input datafile fno=00011 name=/u01/app/oracle/oradata/test/web1
input datafile fno=00012 name=/u01/app/oracle/oradata/test/e1
input datafile fno=00013 name=/u01/app/oracle/oradata/test/ind1
channel ORA_DISK_1: backup set complete, elapsed time: 00:06:57
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 09-MAY-08
and when i do the following query
select * from v$database_block_corruption in sqlplus
then there was no row
so it means there is no logical corruption, but when i am looking at alert log file it is giving following lines
Fri May 9 10:14:04 2008
Errors in file /u01/app/oracle/admin/test/udump/test_ora_6606.trc:
Fri May 9 10:14:04 2008
Errors in file /u01/app/oracle/admin/test/udump/test_ora_6606.trc:
Fri May 9 10:14:04 2008
Errors in file /u01/app/oracle/admin/test/udump/test_ora_6606.trc
and in above trace file following contents
/u01/app/oracle/admin/test4/udump/test_ora_6606.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1
System name: Linux
Node name: test
Release: 2.6.18-5-686
Version: #1 SMP Wed Oct 3 00:12:50 UTC 2007
Machine: i686
Instance name: test
Redo thread mounted by this instance: 1
Oracle process number: 61
Unix process pid: 6606, image: oracle@test (TNS V1-V3)
*** 2008-05-09 10:14:04.093
*** ACTION NAME:(0000040 STARTED19) 2008-05-09 10:14:04.071
*** MODULE NAME:(backup full datafile) 2008-05-09 10:14:04.071
*** SERVICE NAME:(SYS$USERS) 2008-05-09 10:14:04.071
*** SESSION ID:(91.40318) 2008-05-09 10:14:04.071
Is it normal, why the in alert file it is saying that Error in.
And it did not create any backupset in folder of flash recovery but in Enterprise manager it is showing last backup on 09-may-2008, why ?
Regards,See logical corruption is normally termed as the internal inconsistancy within the block which is not caused by Oracle but by the user.So if you find internal inconsistancy than the best option is to look at the user and ask him to get the values sorted out.If the internal inconsistancy is some thig like index fragmentation sort of things or index entry pointing to a null rowid than they are termed as the logical corruption and they should not impact your normal as he data is already there and there is no issue in reading the block as such.
The term "corrupted blocks" I would call both in the tables and backup for those data blocks which are unreadable by Oracle which actualy is Physical corruption.
If i am doing the checking at 2:00 am, does it take more than two hours.I didnt understand this.
what can we do for Physical corruptionThis will need the block to be recovered with the Block Recover command of RMAN and a good backup.Read about it here,
http://download.oracle.com/docs/cd/B19306_01/backup.102/b14194/rcmsynta010.htm
About the Logical and Physical corruption checks , check here
http://download-west.oracle.com/docs/cd/B19306_01/backup.102/b14191/rcmconc1012.htm
Aman.... -
Block corruption in Free Space
Hi,
Environment:-
Oralce 10.2.0
Windows platform
I am facing problem of Logical block corruption.
RMAN validate block corruption (DBVerify as well) But no entry in Alert log file.
When I check Which segment has block corruption I found that block corruption are in free blocks of tablespace (DBA_FREE_SPACE).
To Fix it I create table and allocate corrupted block to that table. I confirm corrupted block allocation in table (using DBA_EXTENTS).
But when I insert rows in that table to reuse corrupted block Oracle give error of ora-1578 Block corruption, and I am not able to reuse corrupted block(as many expert suggest to overcome block corruption in free space).
I dropped table and recreate and repeat this process many times but still no success.
So. can anybody help me on this.
I appreciate your efforts and time you spend to read this
ThanksHello,
Please check the link i posted.
Example: Detecting Corruption
The CHECK_OBJECT procedure checks the specified object, and populates the repair table with information about corruptions and repair directives. You can optionally specify a range, partition name, or subpartition name when you want to check a portion of an object.
Validation consists of checking all blocks in the object that have not previously been marked corrupt. For each block, the transaction and data layer portions are checked for self consistency. During CHECK_OBJECT, if a block is encountered that has a corrupt buffer cache header, then that block is skipped.
The following is an example of executing the CHECK_OBJECT procedure for the scott.dept table.
SET SERVEROUTPUT ON
DECLARE num_corrupt INT;
BEGIN
num_corrupt := 0;
DBMS_REPAIR.CHECK_OBJECT (
SCHEMA_NAME => 'SCOTT',
OBJECT_NAME => 'DEPT',
REPAIR_TABLE_NAME => 'REPAIR_TABLE',
CORRUPT_COUNT => num_corrupt);
DBMS_OUTPUT.PUT_LINE('number corrupt: ' || TO_CHAR (num_corrupt));
END;
SQL*Plus outputs the following line, indicating one corruption:
number corrupt: 1 -
RMAN problem with block corruption
Hi
I have problem with the block corruption in one of the database .
here is the error message .
ora-01578:oracle data block corrupted (file# 10,block # 55309) ora-01110: data file 10:
'/db/gist1/data/gist1_gis_nologging_01.dbf' ora-26040: data block was loaded using the NOLOGGING option .
gisq SQL> select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
10 11 126 3754364971 LOGICAL
RMAN> blockrecover datafile 10 block 11;
Starting blockrecover at 14/DEC/2012 16:25:48
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 12/14/2012 16:25:48
RMAN-05009: Block Media Recovery requires Enterprise Edition
Could some one help me in providing solution for this . we we have standard addition only .
Thanks in advance ...It appears that there was a NOLOGGING operation on an object that resides in '/db/gist1/data/gist1_gis_nologging_01.dbf' .
NOLOGGING operations, as the name suggests, do generate limited redo log, which makes the objects affected by them non-recoverable.
RMAN Blockrecover, as far as I understand, uses full and archivelog backup to perform the block recovery. Since the archivelog backup does not store any changes related to the NOLOGGING operation, then Blockrecover would not be able to help you even if you were licensed.
You can try to restore the object as of the most recent full backup…
Iordan Iotzov
http://iiotzov.wordpress.com/ -
How to check & resolve block corruption if no RMAN backup is there?
*<<+MY Findings+>>*
to check block corruption :
(run command)
select * from v$database_block_corruption;
DB_VERIFY is useful in these situations:
When block corruption is expected;
Forecast any future problems w.r.t. database file/ block corruption;
When you restore files from a tape. It will help knowing if the first file pulled from tape is corrupt, instead of spending hours to extract all of them.
to check block corruption
DBVerify
C:\>dbv userid=nfadmin/nfadmin file=+DG1/nfdb/datafile/low_s_data.304.782536883 feedback=10000 blocksize=8192
can use DBMS_REPAIR to detect and repair corrupt blocks in tables and indexes
BEGIN
DBMS_REPAIR.admin_tables (
table_name => 'REPAIR_TABLE',
table_type => DBMS_REPAIR.repair_table,
action => DBMS_REPAIR.create_action,
tablespace => 'USERS');
DBMS_REPAIR.admin_tables (
table_name => 'ORPHAN_KEY_TABLE',
table_type => DBMS_REPAIR.orphan_table,
action => DBMS_REPAIR.create_action,
tablespace => 'USERS');
END;
Question* :::how to check & resolve block corruption if no RMAN backup is there?http://www.oracle.com/technetwork/database/focus-areas/availability/maa-datacorruption-bestpractices-396464.pdf
http://www.oracle-base.com/articles/misc/detect-and-correct-corruption.php -
Block corruption problem in alert and rman/dbv no show errors
Hello, I'm new in Oracle's world. I have one problem with Oracle 10.2.0.4 (RHEL 5.6) x64. Archive redo-log enable
In the alert.log, three days ago show (the server have kernel panic & rebooted):
Mon Sep 24 18:18:17 2012
Hex dump of (file 17, block 669888) in trace file xxxxxxxxxx.trc
Corrupt block relative dba: 0x044a38c0 (file 17, block 669888)
Bad check value found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x044a38c0
last change scn: 0x0000.14eb5309 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x53090601
check value in block header: 0x6ea3
computed block checksum: 0x2
Reread of rdba: 0x044a38c0 (file 17, block 669888) found same corrupted data
Mon Sep 24 18:18:19 2012
Corrupt Block Found
TSN = 23, TSNAME = TABLE_TSD1
RFN = 17, BLK = 669888, RDBA = 71973056
OBJN = 86908, OBJD = 86908, OBJECT = SYS_C0040110, SUBOBJECT =
SEGMENT OWNER = SCHEMA1, SEGMENT TYPE = Index Segment
Yesterday, we detected this error because SQL don't execute.
The error repeat 47times and there is 6 different file-block combination (4 index of schemas, 1 of sys and ¡2 tables!)
First, I launched expdp and exp of the one problematic schema. The export was fine, no errors while exporting, but in the alert.log show one block corruption. Should exp and expd show error and stop?
Next, I used dbv and verify all dbfs. Only show 2 blocks error in two datafiles (indexes).
Next, I used RMAN:
A) check database: no error.
B) validate database: error in two blocks (logical error) and different from the 6 in alert.log. This two blocks are indexes.
I re-create this two indexes. When i re-create, the block error disappear (not inmediate, suppose that disappear when block was rewrite). Now dbv and rman show no error.
I have read one note about types of error, other about procedures if db is in archivelog/noarchivelog. Also if object is index or table. But I find anything about auto-repair corrupt blocks in Oracle or why now the 6 block error are solved. I don't know if two tables with two block corrupt lost rows or not.
Appreciate any help.
RegardsHello Fran. Result of query before rebuild problematic INDEXES:
SQL> select * from V$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
3 98857 1 390928740 LOGICAL
9 48632 1 390325900 LOGICAL
When I ran RMAN first time to check blocks, it filled V$database_block_corruption with two bad blocks. Different from the 6 errors from alert.:
RMAN> backup validate check logical database;
Error backing up file 9, block 48632: logical corruption
Error backing up file 3, block 98857: logical corruption
I extracted index name from each block and I re-created it. Also, I created a temporary table in tablespace's datafile to fill blocks empty. Problem solved. Rman / dbv show no error.
I'm searching for similar experiences and found: Re: Data in bad block
First 6 bad checksum errors in alert.log disappear with any visible problem?
Can I sure that DB is fine if RMAN and DBV show no errors?
Thank you very much
Edited by: user7755509 on 27-sep-2012 5:43 -
Logical Block corruption - not enough RMAN backups
I have to deal with logical block corruption but these guys do not have enough rman backups to go back enough to recover blocks.
All bad blocks are in SYSAUX and it seems because of it EM doesn't work as it's suppose to do. I dropped and recreated EM repository hoping it will clean itself but .... no.
Any ideas?
Oracle Linux 4.7 i386
Oracle 10.2.0.4OCCUPANT_NAME OCCUPANT_DESC SCHEMA_NAME MOVE_PROCEDURE MOVE_PROCEDURE_DESC SPACE_USAGE_KBYTES
EM Enterprise Manager Repository SYSMAN emd_maintenance.move_em_tblspc Move Procedure for Enterprise Manager Repository 52800
EM_MONITORING_USER Enterprise Manager Monitoring User DBSNMP *** MOVE PROCEDURE NOT APPLICABLE *** 1600 -
Block corruption + Rman backup.
I know that when RMAN is in the process of backing up a datafile and when it encounters a corrupted block, rman updated several V$ views. My question is will the backup process run successfully even when corrupted block is found???
kumareshI believe the answer to your question is YES - RMAN will run and complete succesfully (and do what it is supposed to do) even when it encounters a corrupt block - each time RMAN runs, you will notice an entry in the alert_log file indicating that this block was 'passed through' during the regular back up process.
I work at a company where we have a corrupt block and where the only available solution is to re-install and restore from backups......(for the APPS portion of things) -
Block corruption detection in RMAN.
Hi,
I'd be be grateful if anyone could confirm or clarify the behaviour of the RMAN backup command with regard to detecting corrupt blocks in the datafiles.
The environment is as follows:
10.2.0.5.1
Solaris 10
2 node RAC
Block Change Tracking file is not used.
DB_BLOCK_CHECKING=OFF
DB_BLOCK_CHECKSUM=OFF
Does the BACKUP DATABASE command check both physical and logical block corruptions when run either as a full backup or incremental?
I'm trying to establish wether running a BACKUP _VALIDATE [CHECK LOGICAL]_* DATABASE on a nightly basis provides any value if the same checks are being performed by the standard backup commands that are already scheduled every night?
Any input appreciated.
ThanksHi,
By default, RMAN just check for physical corruption, either in full or incremental backups. To check logical corruption you have to use the command "backup check logical;".
About the parameter DB_BLOCK_CHECKSUM, its default is TRUE and Oracle Corporation advises leaving this parameter on default, so that any damage caused while the block is on disk, or corruptions introduced during the write and read process, will be detected.
Hope it help.
Regards, -
How RMAN detect block corruption
Hi,
how RMAN detect block corruption( means how RMAN work internally to find corrupted block).
thanks.There are initialization parameters (like DB_BLOCK_CHECKING) which will detect block corruption on block access. Go through the following link also:
http://download.oracle.com/docs/cd/B19306_01/backup.102/b14191/rcmconc1.htm -
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 -
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.... -
Logical block corruption in an unused block which is a part of index
Hi All,
During RMAN backup level 0 I am getting a corrupted block my DB:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on t20 channel at 07/22/2009 21:30:49
ORA-19566: exceeded limit of 0 corrupt blocks for file /oracle/oradata/DB2/plind05_02.dbf
SQL> select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
2950 1879477 1 1.0124E+13 LOGICAL
SQL> SELECT tablespace_name, partition_name,segment_type, owner, segment_name FROM dba_extents WHERE file_id = 2950 and 1879477 between block_id AND block_id + blocks - 1;
no rows selected
So this block does not belong to any object.
SQL > select * from dba_free_space where file_id= 2950 and 1879477 between block_id and block_id blocks -1;+
TABLESPACE_NAME FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
USAGIDX_200907 2950 1879433 1048576 128 909
But it exists in dba_free_space so it belongs to file space usage bitmap.
DB Verify shows:
myserver:/oracle/rman/DB2:DBINST1> dbv file=/oracle/oradata/DB2/plind05_02.dbf BLOCKSIZE=8192
DBVERIFY: Release 10.2.0.4.0 - Production on Wed Jul 29 13:47:38 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = /oracle/oradata/DB2/plind05_02.dbf
Block Checking: DBA = -480465494, Block Type = KTB-managed data block
**** row 2: key out of order
---- end index block validation
Page 1879477 failed with check code 6401
DBVERIFY - Verification complete
Total Pages Examined : 4194176
Total Pages Processed (Data) : 0
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 3404935
Total Pages Failing (Index): 1
Total Pages Processed (Other): 569
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 788672
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 1795222745 (2360.1795222745)
Now, I have identified that this block belongs to an index subpartition so I have rebuild it with alter index ... rebuild subpartition... However, the RMAN backup still fails and DBV still reports an error.
I know that we could simply recreate the index but the problem is that its quite big (>6GB and table is >7TB).
My strong feeling is that the cause of this is that corrupted blocks will still be reported by RMAN and DBV until they are reused and reformatted.
My question is:
How can I reuse or reformat a block which does not belong to any object?Hi,
Yes you're right, you need to reformat that block.
For that you need to allocate that block to a table, and fill that table with data until high water mark goes higher than block 1879477.
This isthe way I've done it once:
1) check the free space size below that block:
select sum(bytes)/1024/1024 before from dba_free_space where file_id=1879477 and block_id <= 1503738;
Let's say it is 6000 MB
2) create a dummy table, allocate enough extents to fill the size returned from the previous query
This does not format blocks, but the advantage of allocate extents is that you can specify size and datafile:
alter table allocate extents size 6000M datafile '/oracle/oradata/DB2/plind05_02.dbf';
you can check dba_extents to see if it covers block 1879477. If not, try to add a little more extents.
3) fill the table with data to fill those extents.
One idea is to insert one rows into the table, then use 'alter table test minimize records_per_block;' so that each block will have 2 rows maximum.
check the number of blocks (from dba_segments). Say you have 768000 blocks. Then you need to insert 768000/2 rows:
insert into ... select ... from dual connect by level < (768000/2)
4) check the high water mark has reach the end of all extents (compare dba_tables.blocks and dba_segemnts.blocks)
5) if not enough, try to add a little more rows.
Be careful that you don't go too far (especially if you have extensible datafile). Unfortunately, maxextents is ignored on LMT :(
6) now, your block should be reformatted. Just drop the dummy table.
Regards,
Franck.
Maybe you are looking for
-
I am using a table UI element and i want to add a row header in it so that i have a separate column header in correspondence with a row header thereafter i may have my data fields. How do i do that? Please help..My output should be of the format: Sno
-
Nickname NOT shown with app reviews.
I know this has been asked before but all the solutions are months old and pertain to when Ping was relevant with older verions on iTunes. To start off, I have iTunes 10.7, on ML 10.8.2 I have disabled the Ping option (which for some reason still exi
-
I need change main email address in iCloud, make alias email main
i need change main email address in iCloud, make alias email main
-
Floating, unlinked org unit in CRM
Hi All CRM4.0 In ERP I have an org unit that is linked to a higher level org unit. In CRM the same org unit exists but it does not have higher level org unit. I want to run PFAL in ERP with the correct evaluation path so that in CRM the org unit is
-
Intermittent loss of sound on Toshiba 32BL505B
Could someone please help me. I purchased a Toshiba 32inch Flat Screen television (Model No 32BL505B) approximately 14 months ago. For the last couple of weeks we have been struggling to use the set. All appears ok for the first hour, but after that