解决思路:

1:startup mount;
2:recover database using backup controlfile until cancel;
这种恢复方式,不会自动去找联机redo文件,所以必须要手工指定!(可能inactive状态的,一直到recover done,即可打开库)
3:alter database open resetlogs;

1、查看scn

1.查询系统当前SCN两条命令
SQL> select current_scn from v$database;
SQL> select dbms_flashback.get_system_change_number from dual;
2.数据库全局-检查点 SCN,在控制文件中。
SQL> select dbid,checkpoint_change# from v$database;
3.当前数据文件SCN。在控制文件中。即checkpoint scn,表示该数据文件最近一次执行检查点操作时的SCN
SQL>  select name,checkpoint_change# from v$datafile;
4.查询数据文件头SCN,在数据文件头
SQL> select name,checkpoint_change# from v$datafile_header;
5.数据文件结束SCN,在控制文件中。
LAST_CHANGE#,如果数据库非正常关闭值为NULL。正常关闭是关闭时的SCN。
实例恢复就是在打开数据库时检查此参数确定是否需要恢复。
数据库OPEN时LAST_CHANGE#也为NULL,因为不确定SCN多少时关闭。
SQL> select name,last_change# from v$datafile;
6.日志中所含SCN范围
SQL> select GROUP#,sequence#,STATUS,FIRST_CHANGE#,to_char(FIRST_TIME,'yyyy/mm/dd:hh24:mi:ss') time from V$log;

2、查看redo scn

set linesize 999 pagesize 999
col group# for 99
col thread# for 9
col sequence$ for 999
col members for 99
col NEXT_CHANGE# for 999999999999999
select GROUP#,THREAD#,SEQUENCE#,BYTES/1024/1024 as "size (M)",BLOCKSIZE,MEMBERS,ARCHIVED,STATUS,FIRST_CHANGE#,FIRST_TIME,NEXT_CHANGE#,NEXT_TIME from v$log;
column member format a50
select  a.THREAD#,a.GROUP#,b.MEMBER,a.BYTES/1024/1024 as "size(M)",a.STATUS,b.TYPE from v$log a,v$logfile b where a.group# = b.group# order by 1,2;