名词解释
oracle实例:一组后台进程和一块共享内存区域。
1.数据库的启动
数据库的启动包括3个步骤:
- 启动数据库到NOMOUNT状态
- 启动数据库到MOUNT状态
- 启动数据库到OPEN状态
完成这3个过程,数据库才能进入就绪状态,准备提供数据的访问。
3个状态都做了哪些动作
- NOMOUNT启动实例
- MOUNT打开控制文件
- OPEN打开所有控制文件中描述的文件
oracle首先找参数文件(PFILE或SPFILE),根据参数文件中的参数设置(分配内存等),创建实例(INSTANCE),分配内存,并启动后台进程。NOMOUNT是启动实例的过程。
在NOMOUNT初始化的过程中,只要拥有一个参数文件,就可以启动实例,不需要任何的控制文件和数据文件。
使用以下命令可以杀死实例的信号量,有时候挺管用的
[oracle@localhost dbs]$ ipcrm -s semid
--semid是通过ipcs -a 命令查询出来的
接下来关注一下启动过程中oracle选择参数文件的顺序:
1.首选spfile<ORACLE_SID>.ora文件
2.如果上面的不在,会选择spfile.ora文件
3.如果以上两者都不在,会选择init<ORACLE_SID>.ora文件;如果3个文件都不在,实例无法创建,在NOMOUNT就失败啦!
这里有个小细节提醒一下:在VALUE中,""代表ORACLE_HOME,"@"代表数据库的sid
实例启动最小参数需求
通常最少的参数是db_name
NOMOUNT状态后,oracle就可以从参数文件获得控制文件的位置信息,然后找到控制文件,根据控制文件中记录的数据文件位置进行数据文件的存在性判断。控制文件中记录了数据库中数据文件、日志文件的位置信息,检查点等重要信息。在OPEN阶段,根据控制文件找到文件位置信息,然后进行检查点及完整性检查。