Blog / Database Blog

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;

Related blogs