
select * from v$instance;

-- flush buf
alter system flush buffer_cache;

-- flush sharedpool
alter system flush shared_pool;

alter session set events '10046 trace name context forever, level 12';


define blk=71643
define obj=93751
define file=6
define n1=100

select distinct
'[0x' ||trim(to_char(&&blk, 'xxxxxxxx')) || '][0x' ||
 trim(to_char(&&file,'xxxx')) || '],[BL]' res
 from dual
 ;
-- tc_one_row.sql
select n1,
dbms_rowid.rowid_relative_fno (rowid) fno,
dbms_rowid.rowid_block_number(rowid) block,
dbms_rowid.rowid_object(rowid) obj,
substr(v1, 1, 16) v1
 from rs.t_one where n1=100;

alter session set events '10046 trace name context off';

-- trace_file
select 'vi '||
  u_dump.value   || '/diag/rdbms/'     ||
  db_name.value  ||'/' ||
  instance_name  ||'/trace/' ||
  instance_name|| '_ora_' ||
  v$process.spid ||
  nvl2(v$process.traceid,  '_' || v$process.traceid, null )
  || '.trc'  "Trace File"
from
             v$parameter u_dump
  cross join v$parameter db_name
  cross join v$process
  cross join (select sid from v$mystat where rownum=1) m
        join v$session s
          on v$process.addr = s.paddr and m.sid=s.sid
  cross join v$instance
where
 u_dump.name   = 'diagnostic_dest' and
 db_name.name  = 'db_name'        and
 s.audsid=sys_context('userenv','sessionid')
;

define blk=71643
define obj=93751
define n1=100
define file=6

-- tc_one_row.sql
select n1,
dbms_rowid.rowid_relative_fno (rowid) fno,
dbms_rowid.rowid_block_number(rowid) block,
dbms_rowid.rowid_object(rowid) obj,
substr(v1, 1, 16) v1
 from rs.t_one where n1=100;

--locks.sql
-- block 71643 obj 93751
select /*+ leading (c a b ) */ b.kjblname, b.kjblname2 ,
b.kjblgrant, b.kjblrole, b.kjblrequest , b.kjblmaster, b.kjblowner
from x$le a , x$kjbl b, x$bh c
where a.le_kjbl = b.kjbllockp
and a.le_addr =c.le_addr
and dbablk=&&blk and obj=&&obj
;

-- block 71643 obj 93751

-- locks2.sql
with res1 as (
select distinct
'[0x' ||trim(to_char(&&blk, 'xxxxxxxx')) || '][0x' ||
 trim(to_char(&&file,'xxxx')) || '],[BL]' res
 from dual
)
select kjblname,  kjblobjectid,  kjblmaster master,
  to_char(kjblowner) owner,
  kjblgrant, kjblrequest
 from x$kjbl , res1 where kjblname like '%'||res1.res||'%'
/
select distinct
'[0x' ||trim(to_char(&&blk, 'xxxxxxxx')) || '][0x' ||
 trim(to_char(&&file,'xxxx')) || '],[BL]' res
 from dual
/

-- Query to generate a GCS resource name from a file_id, block combo
select distinct
'[0x'||trim(to_char(dbms_rowid.rowid_block_number(rowid), 'xxxxxxxx')) ||'][0x'||
trim(to_char(dbms_rowid.rowid_relative_fno (rowid),'xxxx')) || '],[BL]' res
,dbms_rowid.rowid_block_number(rowid) block_id
,dbms_rowid.rowid_relative_fno (rowid) file_id
 from rs.t_one where n1=&&n1
/

-- resources
with res1 as (
select distinct
'[0x' ||trim(to_char(&&blk, 'xxxxxxxx')) || '][0x' ||
 trim(to_char(&&file,'xxxx')) || '],[BL]' res
 from dual
)
select 'Resource ',  kjbrname, kjbrrole, kjbrmaster,kjbrrdomid, kjbrpkey, null lockp, kjbrmaster master, 'NA'  owner
 from x$kjbr , res1 where kjbrname like '%'||res1.res||'%'
union
select 'Shadow ', kjblname,null , kjblmaster,kjblrdomid, kjblobjectid, kjbllockp, kjblmaster master, to_char(kjblowner) owner
 from x$kjbl , res1 where kjblname like '%'||res1.res||'%'
;

-- buffer_State
select
decode(state,0,'free',1,'xcur',2,'scur',3,'cr', 4,'read',5,'mrec',6,'irec',7,'write',8,'pi',
 9,'memory',10,'mwrite',11,'donated', 12,'protected',  13,'securefile', 14,'siop',15,'recckpt',
16, 'flashfree',  17, 'flashcur', 18, 'flashna') state,
mode_held, le_addr, dbarfil, dbablk, cr_scn_bas, cr_scn_wrp , class
from sys.x$bh where obj=&&obj and dbablk=&&blk
and state!=0
;

rollback;

-- flush buf
alter system flush buffer_cache;

-- flush sharedpool
alter system flush shared_pool;


-- update one row
update rs.t_one set v1=v1 where n1=101;

rollback;

-- remaster demo
-- CACHE tab in the current instance
-- in unix @count_resmaster.sql 92065
-- @cache_tab.sql in each instance
-- @count_remaster.sql -- count in each
-- @remaster.sql -- remaster to 1 
-- @count_resmaster.sql -- test it.
-- 

begin
  dbms_cacheutil.grab_affinity('RS','T_ONE');
end;
/

-- object affinity stats
select inst_id, object, node, sopens,xopens, xfers from x$object_policy_statistics;

--gcspfmaster
select * from gv$gcspfmaster_info order by data_object_id;

-- policy hist
select * from gv$policy_history;

alter system dump datafile &&file block min &&blk block max &&blk;