In fact, if you want to have a deep understanding of the architecture, You need to cooperate with subsequent backup and recovery experiments and principles. But no matter what it is, first take a look.
The control file is a fairly small binary file, which can be up to 64 MB.
The parameter file tells the instance control file location. The control file tells the instance the database name, the name and location of the data file, the name and location of the online redo log file, and the SCN information of the system and each data file.
Several people in Oracle prefer to write stuff on CTL, for example:
Server process updates database structure changes to control file
Lgwr records the current log serial number to the control file.
Ckpt records the checkpoint information to the control file.
Arcn records the archived log information to the control file.
With the above information, SMON will read the control file in the Mount phase to confirm whether the above record is correct:
1) The last shutdown of SCN
Checkpoint B that was shut down last time
2) record C of the last log Group
RBA pointer position d
If shutdown is normal, a = B c = d
Otherwise, A> B D> C
In this case, we need to send SMON to roll forward and repeat the record of redo logs in the memory until C = D.
The following is an excerpt from my control file:
Platform is: RHEL-5.8 ora10g
* ** Service name :() 10:09:23. 691
* ** Session ID: (159.3) 10:09:23. 691
Thread 1 checkpoints: logseq 17, Block 2, SCN 676899
Cache-low RBA: logseq 17, block 40599
On-disk RBA: logseq 17, block 40868, SCN 697180
Start recovery at logseq 17, block 40599, SCN 0
Some common operations on control files, such:
1) how to control multiple images?
Shut down normally, CP one copy, modify pfile, generate spfile, restart Database
2) view the control file location?
I SQL> show parameter control_files
Name type value
-----------------------------------------------------------------------------
Control_files string/u01/APP/Oracle/oradata/orcl/C
Ontrolfile/o1_mf_7xzsjpnk _. CTL
,/U01/APP/Oracle/flash_recove
Ry_area/orcl/controlfile/ow.mf
_ 7xzsjq4.7 _. CTL
Ii SQL> select name from V $ controlfile;
Name
--------------------------------------------------------------------------------
/U01/APP/Oracle/oradata/orcl/controlfile/o1_mf_7xzsjpnk _. CTL
/U01/APP/Oracle/flash_recovery_area/orcl/controlfile/o1_mf_7xzsjqdita _. CTL
Iii SQL> select value from V $ parameter where name = 'control _ FILES ';
Value
--------------------------------------------------------------------------------
/U01/APP/Oracle/oradata/orcl/controlfile/o1_mf_7xzsjpnk _. CTL,/u01/APP/Oracle/FL
Ash_recovery_area/orcl/controlfile/o1_mf_7xzsjq4.7 _. CTL
3) view the control file content?
Alter Database Backup controlfile to trace;
Go to udump and find