how does oracle check current control file is a backup controlfile
hi,i backup a database when the database is mount,and then recover the control file and restore the datafile,then i check the scn;
SQL> select OPEN_MODE,CHECKPOINT_CHANGE#,CONTROLFILE_CHANGE#,RESETLOGS_CHANGE#,ARCHIVELOG_CHANGE#,CURRENT_SCN from v$database;
OPEN_MODE CHECKPOINT_CHANGE# CONTROLFILE_CHANGE# RESETLOGS_CHANGE# ARCHIVELOG_CHANGE# CURRENT_SCN
---------- ------------------ ------------------- ----------------- ------------------ ---------------
MOUNTED 2830769 2830769 2829653 2829653 0
SQL> select NAME,ENABLED,STATUS,CREATION_CHANGE#,CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;
NAME ENABLED STATUS CREATION_CHANGE# CHECKPOINT_CHANGE# LAST_CHANGE#
--------------------------------------------- ---------- ------- ---------------- ------------------ ---------------
+NORG/orcl/datafile/system.264.815494625 READ WRITE SYSTEM 7 2830769
+NORG/orcl/datafile/undotbs1.257.815494625 READ WRITE ONLINE 530394 2830769
+NORG/orcl/datafile/sysaux.265.815494623 READ WRITE ONLINE 5796 2830769
+NORG/orcl/datafile/users.256.815494625 READ WRITE ONLINE 8882 2830769
+NORG/orcl/datafile/example.259.815494625 READ WRITE ONLINE 551960 2830769
+NORG/orcl/datafile/undotbs2.258.815494625 READ WRITE ONLINE 565665 2830769
6 rows selected.
SQL> select NAME,FUZZY,STATUS,CREATION_CHANGE#,CHECKPOINT_CHANGE#,RESETLOGS_CHANGE# from v$datafile_header;
NAME FUZ STATUS CREATION_CHANGE# CHECKPOINT_CHANGE# RESETLOGS_CHANGE#
--------------------------------------------- --- ------- ---------------- ------------------ -----------------
+NORG/orcl/datafile/system.264.815494625 NO ONLINE 7 2830769 2829653
+NORG/orcl/datafile/undotbs1.257.815494625 NO ONLINE 530394 2830769 2829653
+NORG/orcl/datafile/sysaux.265.815494623 NO ONLINE 5796 2830769 2829653
+NORG/orcl/datafile/users.256.815494625 NO ONLINE 8882 2830769 2829653
+NORG/orcl/datafile/example.259.815494625 NO ONLINE 551960 2830769 2829653
+NORG/orcl/datafile/undotbs2.258.815494625 NO ONLINE 565665 2830769 2829653
6 rows selected.
SQL> select GROUP#,SEQUENCE# ,ARCHIVED,STATUS,FIRST_CHANGE# from v$log;
GROUP# SEQUENCE# ARC STATUS FIRST_CHANGE#
--------------- --------------- --- ---------------- ---------------
1 1 NO CURRENT 2829653
2 0 YES UNUSED 0
3 1 NO CURRENT 2829653
4 0 YES UNUSED 0
the checkponit_change in v$database,v$datafile,v$datafile_header are all same,so i think i can open the database without recover,so i open the database
SQL> alter database open noresetlogs;
alter database open noresetlogs
*
ERROR at line 1:
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
it shows that the controlfile is a backup controlfile
the checkpoint_change in controlfile(v$database,v$datafile) and datafile header(v$database_header) is same,to my opinion ,the oracle can check the current control is not a backup conrol file,but it check the control file is backup control file.
could someone tell me how does the oracle check the current controlfile is a backup control or not?
thank you.