深入理解ORACLE启动过程
2016-03-04 10:11
537 查看
原文地址:http://blog.chinaunix.net/uid-20682026-id-3248609.html
深入理解ORACLE启动过程
ORACLE SERVER由实例(Instance)和数据库(database)组成,而实例是由一组后台进程和一块共享内存区域(sga)组成,而后台进程是数据库和操作系统进行交互的通道,后台进程的命名由ORACLE_SID决定,ORACLE根据ORACLE_SID来寻找参数文件启动实例。数据库是指存储在磁盘上的一组物理文件。
ORACLE启动分3个过程:
NOMOUNT状态:启动实例
MOUNT状态:打开控制文件
OPEN状态:打开控制文件中描述的文件
NOMOUNT状态:
ORACLE需要寻找SPFILE(oracle 10g默认,pfile也可以)文件,来创建实例和分配内存。
MOUNT状态:
在此状态需要打开控制文件,而控制文件中包含日志文件,数据文件的位置信息,检查点信息等重要信息。
在ORACLE9i中,丢失口令文件会报错,可以通过orapw工具重建。在oracle 10g不会报错,通过
口令文件存在
重建控制文件:
OPEN状态
首先会检查数据文件头中检查点计数与控制文件中检查点计数是否一致。其次检查数据文件头的开始SCN和控制文件中记录该文件的结束SCN是否一致,如果控制文件中结束的SCN等于数据文件头中开始的SCN,说明不需要恢复。
如果数据库中的某个文件丢失,那么在MOUNT阶段不会在前台显示告警日志,会记录在
深入理解ORACLE启动过程
ORACLE SERVER由实例(Instance)和数据库(database)组成,而实例是由一组后台进程和一块共享内存区域(sga)组成,而后台进程是数据库和操作系统进行交互的通道,后台进程的命名由ORACLE_SID决定,ORACLE根据ORACLE_SID来寻找参数文件启动实例。数据库是指存储在磁盘上的一组物理文件。
ORACLE启动分3个过程:
NOMOUNT状态:启动实例
MOUNT状态:打开控制文件
OPEN状态:打开控制文件中描述的文件
NOMOUNT状态:
ORACLE需要寻找SPFILE(oracle 10g默认,pfile也可以)文件,来创建实例和分配内存。
MOUNT状态:
在此状态需要打开控制文件,而控制文件中包含日志文件,数据文件的位置信息,检查点信息等重要信息。
在ORACLE9i中,丢失口令文件会报错,可以通过orapw工具重建。在oracle 10g不会报错,通过
v$pwfile_users视图查询。
lk_<ORACLE_SID>文件在数据库启动时创建,用于操作系统对数据库的锁定。
口令文件存在
$ORACLE_HOME/dbs
alter system set controlfile='控制文件路径' scope=spfile; alter system set lock_name_space=orcl scope=spfile;
重建控制文件:
SQL>startup nomount; SQL>create controlfile reuse database "orcl" noresetlogs archivelog maxlogfiles 5 maxlogmembers 3 maxdatafiles 100 maxinstances 1 maxloghistory 1134 logfile group 3 '/data/app/oracle/oradata/orcl/redo03.log' size 10m, group 4 '/data/app/oracle/oradata/orcl/redo04.log' size 10m, group 5 '/data/app/oracle/oradata/orcl/redo05.log' size 10m datafile '/data/app/oracle/oradata/orcl/system01.dbf', '/data/app/oracle/oradata/orcl/undotbs01.dbf', '/data/app/oracle/oradata/orcl/sysaux01.dbf' character set zhs16gbk;
OPEN状态
首先会检查数据文件头中检查点计数与控制文件中检查点计数是否一致。其次检查数据文件头的开始SCN和控制文件中记录该文件的结束SCN是否一致,如果控制文件中结束的SCN等于数据文件头中开始的SCN,说明不需要恢复。
SQL>show parameter backgroud_dump_dest;
如果数据库中的某个文件丢失,那么在MOUNT阶段不会在前台显示告警日志,会记录在
alter_<ORACLE_SID>.log中。
相关文章推荐
- oracle的日期函数:last_day
- Oracle 字段 增删改
- Oracle EBS中有关Form的触发器的执行顺序
- 连接Oracle数据库时遇到:Listener refused the connection with the following error。。。。
- Centos6.5 64+oracle11.2.0.4+rman 搭建物理DG
- oracle 两个日期相差得月数
- sqlserver实现oracle的instr函数(未完)
- oracle之高级查询练习
- Oracle 10g的新特性:闪回技术
- ORA-01000: 超出打开游标的最大数
- oracle11g 创建id自增长监听器的步骤与问题
- Oracle11g手动创建数据库方法
- Oracle11g手动创建数据库方法
- Oracle sqlplus 查看View源代码
- Oracle以及SDE维护常用命令-查看表空间等
- ORACLE 12c 固定表2
- ORACLE 12c 固定表1
- ORACLE 12c 所有latch name
- ORACLE 12c 支持的hint 命令
- Linux下安装Oracle的jdk1.8