--从controlfile读取scn信息
set linesize 140
col dummy for a140
set linesize 140 numformat 999999999999999999
prompt --系统scn
select checkpoint_change# from v$database;
prompt --数据文件scn
select file#,checkpoint_change# from v$datafile;
prompt --终止scn
select file#,last_change# from v$datafile;
--从数据文件头获取信息
--查询v$datafile_header
set linesize 140 numformat 999999999999999999
col error for a20
select file#,STATUS online_fromctlf,error ,recover,fuzzy,checkpoint_change# from v$datafile_header;
--查询v$datafile_header的基表
set linesize 140 numformat 9999999999999
select hxfil file#,fhsta status,fhscn scn ,fhrba_seq seq#,fhrba_bno seq#_block,fhrba_bof seq#_block_startbyte from x$kcvfh;
--看状态是不是8192与0,还有获得rba以便知道恢复时从哪个logfile(archivelog 或 redo)开始。
select hxfil,fhsta,fhrba_seq from x$kcvfh;
select max(fhafs) from x$kcvfh;
--查看datafile是否需要recover,如果是0则不需要,大于0,则代表数据文件处于不一致的状态,那么需要至少需要recover到什么SCN。
--open read write下应该都是0
--fhafs absolute fuzzy scn, 即Minimum PITR SCN。
--代表了此数据文件的所有数据块中,现在最大的那个scn。我们实施recover时至少得把这个数据文件的所有数据块recover到这个scn,所有数据块scn才一致。
--查询日志情况
--查询v$log
select GROUP# ,SEQUENCE#,ARCHIVED,STATUS,FIRST_change# from v$log order by sequence# asc;
查询v$log_history
select sequence#,first_change#,next_change# from v$log_history;
<