知识点参考 盖国强《深入浅出oracle-入门,进阶与诊断案例》
1. 启动nomount 状态以后,oracle可以从参数文件中获得控制文件的位置信息,数据库中一般缺省为3个控制文件,控制文件的内容是一样的;
SQL> startup nomount
ORACLE instancestarted.
Total SystemGlobal Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 83888372 bytes
DatabaseBuffers 79691776 bytes
Redo Buffers 2973696 bytes
SQL> show parameter control_files
NAME TYPE
----------------------------------------------------------
VALUE
------------------------------
control_files string
/oradata/law/law/control01.ctl
,/oradata/law/law/control02.c
tl,/oradata/law/law/control03
.ctl
SQL> alter database mount;
Database altered.
SQL> selectname from v$controlfile;
NAME
--------------------------------------------------------------------------------
/oradata/law/law/control01.ctl
/oradata/law/law/control02.ctl
/oradata/law/law/control03.ctl
2. 在mount启动数据库过程中,oracle会查找控制文件并对控制文件进行锁定,当控制文件全部丢失系统报错,并将详细信息记录到告警文件alert_<sid>.ora中;若控制文件没有全部损坏,则可复制完好的控制文件,并更改为相对应的名称,即可重新启动数据库。
3. 在启动到mount状态,数据库必须具备口令文件,该文件位于$ORACLE_HOME/dbs目录下,口令文件存放的是sysdba/sysoper用户的用户名和口令.
[oracle@localhost~]$ cd $ORACLE_HOME/dbs
[oracle@localhostdbs]$ strings orapwlaw
]\[Z
ORACLE RemotePassword file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
4. 当口令文件orapw<sid>丢失的时候,oracle会找orapw文件,如果两个文件都丢失,mount启动就会出错.
5.出了口令文件之外,还有一个文件lk<sid>文件,该文件用于操作系统对数据库的锁定,在数据库启动时创建,数据库关闭时释放。