alter session set tracefile_identifier='_10053';
alter session set events '10053 trace name context forever, level 1';
alter session set events '10053 trace name context off';http://www.psoug.org/reference/trace_tkprof.html
alter session set tracefile_identifier='_10053';
alter session set events '10053 trace name context forever, level 1';
alter session set events '10053 trace name context off';select substr(name,1,40),recover, fuzzy, to_char(checkpoint_change#) checkpoint_scn from v$datafile_header;
select file#,STATUS, FUZZY from v$datafile_header;
ALTER DATABASE DATAFILE [datafile name] OFFLINE DROP;_allow_resetlogs_corruption=TRUE;ORA-01114: IO error writing block to file 1023 (block # 455946)backup validate check logical database;select count(1) from V$DATABASE_BLOCK_CORRUPTION;create table block_corr as select file#,block# from V$DATABASE_BLOCK_CORRUPTION where 1=0;
create unique index bcorr_pk on block_corr(file#,block#);
insert into block_corr select file#,block# from V$DATABASE_BLOCK_CORRUPTION order by file#,block#;create table corr_objects as
SELECT de.segment_type, de.owner, de.segment_name, de.PARTITION_NAME
         FROM dba_extents de, block_corr bc
        WHERE de.file_id = bc.file#
          and bc.block# between block_id AND block_id + blocks - 1
group by de.segment_type, de.owner, de.segment_name, de.PARTITION_NAME;
set lines 300 pages 999
col segment_name for a30
col PARTITION_NAME for a30
select * from corr_objects;
select ds.owner, ds.segment_name, ds.segment_type, bc.file#, bc.block#
   from dba_segments ds, block_corr bc
   where ds.header_file=bc.file# and ds.header_block = bc.block#; select * from dba_free_space where file_id= &AFN
and &CBN between block_id and block_id + blocks -1;list all corr blocks displaying whether it belongs to segment or free space
col is_used_block for a4
col is_free_space for a4
col file_name for a60
col file# for 999
select bc.file#, bc.block#
, DECODE(
(select de.block_id from dba_extents de where de.file_id = bc.file# and bc.block# between de.block_id and de.block_id + de.blocks -1 )
,null,'NO','YES') is_used_block
, DECODE(
(select dfs.block_id from dba_free_space dfs where dfs.file_id = bc.file# and bc.block# between dfs.block_id and dfs.block_id + dfs.blocks -1)
,null,'NO','YES') is_free_space
,ddf.file_name
from block_corr bc, dba_data_files ddf
where bc.file# = ddf.file_id
order by bc.file#, bc.block#;
--to rebuild indexes and index partitions:
select 'alter index '||t.owner||'.'||t.segment_name||' REBUILD ' ||decode(t.segment_type,'INDEX PARTITION','PARTITION '||t.partition_name,'') || ' ONLINE;' from (
SELECT de.segment_type, de.owner, de.segment_name, de.partition_name
         FROM dba_extents de, block_corr bc
        WHERE de.file_id = bc.file#
          and bc.block# between block_id AND block_id + blocks - 1
) t where t.segment_type IN ('INDEX','INDEX PARTITION')
group by t.owner,t.segment_type,t.segment_name,t.partition_name
/execute dbms_backup_restore.resetCfileSection(17); /** clear v$backup_corruption
execute dbms_backup_restore.resetCfileSection(18); /**clear v$copy_corruption declare
   success boolean := false;
begin
  while ( not success)
   loop
     begin
       execute immediate 'alter table t1 drop column n5 ';
       success := true;
     exception
       when others then
         null;
         dbms_lock.sleep(10);
      end;
    end loop;
end;
select sql_text, sql_id, plan_hash_value, HASH_VALUE, CHILD_NUMBER  from v$sql where sql_text like '&sqltext';
alter session set create_stored_outlines = true; -- <-  to workaround a bug, fixed in 10.2.0.4
exec dbms_outln.CREATE_OUTLINE(1850253776,0,'XXX_OUTLINES'); select name,owner,category,sql_text,used,enabled from dba_outlines;
if used column shows 'UNUSED', then check that:query_rewrite_enabled=TRUE;
use_stored_outlines=[TRUE|CATEGORY];
create or replace trigger enable_outlines_trig
after startup on database
begin
  execute immediate('alter system set use_stored_outlines=XXX_OUTLINES');
end;
exp system/ file=myoutln.dmp tables=(outln.ol$,outln.ol$hints,outln.ol$nodes) query="where category='MYCAT'" statistics=none
imp system/ file=myoutln.dmp full=y ignore=y  
include=TABLE:"LIKE 'table1'"
query="WHERE exists (select * from table2 where KU$.fk=table2.pk and table2.foo='xyz')"