深入理解ORACLE启动过程

原文地址: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不会报错,通过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中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值