Steps to reformat the corrupted free blocks.

Please find the steps done below for one type of block but can be used for any block.

 

create table demo.wcc99(n number, c varchar2(4000)) nologging tablespace DISC pctfree 99 pctused 1;

 

Select BYTES/1024 from dba_free_space where file_id=36 and 80090 between block_id and block_id + blocks -1;

 

select * from dba_data_files where file_id = 36;

 

alter table demo.wcc99 allocate extent (DATAFILE ‘/u01/oradata/PROD/disc1.dbf’ SIZE 74848K);

 

BEGIN
for i in 1..10000 loop
EXECUTE IMMEDIATE ‘alter table demo.wcc99 allocate extent (DATAFILE ‘||”’/u01/oradata/PROD/disc1.dbf”’ ||’SIZE 74848K) ‘;
end loop;
end ;
/

BEGIN
FOR i IN 1..10000 LOOP
INSERT /*+ APPEND */ INTO demo.wcc99 select i, lpad(‘REFORMAT’,3092, ‘R’) from dual;
commit ;
END LOOP;
END;
/

 

In RMAN do this:

backup validate check logical datafile 36;

Recent Posts