您的位置:首页 > 数据库 > Oracle

oracle 启动与关闭知识点

2013-04-28 11:17 204 查看
oracle数据库由两部分组成:实例(instance)和数据库(database),其中实例指一组后台进程或者是线程加一块共享内存区域,而database是存储在磁盘上的一组物理文件。
 
一、数据库启动过程
 oracle数据库启动经历3个阶段:
 
*启动到nomount状态
 首先,oracle寻找参数文件即(spfil<sid>.ora/initdw.ora/pfile.ora),这时它就根据参数文件中的设置启动实例、分配内存、启动后台进程。
参数文件优先级,oracle在寻找参数文件时,首先寻找spfil<sid>.ora文件,如果此文件存在就启动相应的实例,若此文件不存在那么它就寻找pfie.ora文件,相应启动实例,不受影响,若前面两个文件都不存在,那么它又继续寻找initdw.ora文件,如果这个文件也不存在那么数据库启动失败,无法创建实例,要创建spfile文件。
注意:参数文件只要有一个存在,oracle就可以启动相应的实例!
参数文件优先顺序:spfile<sid>.ora--pfile.ora--initdw.ora,nomount状态没有启动控制文件和数据文件,即没有控制文件和数据文件参与工作
相关操作如图所示:



                                                                              图一启动nomount过程
任何数据库都有相应的日志文件,当然oracle也有相应的报警日志文件,不同的系统位置不同,我的是在windows下,其报警日志文件在:E:\oracle\product\
4000
10.2.0\db_1\admin\orcl\bdump\alter_<sid>.log。



                                                   图二启动nomount过程中相应日志文件记录情况
查看后台进程命令:
Linux中:【oracle@hostlocal~]$ps
-ef | grep ora_
Windows中:SQL> select
program,status from v$session where type='BACKGROUND'
 
*启动到mount状态过程
这一过程主要是oracle数据库创建控制文件的过程,默认是创建3个控制文件,3个控制文件内容相同,也可以理解为oracle 采用的镜像方法,查看控制文件方法为:SQL>show parameter control_files



从图中可以看到有3个控制文件,注意查看时是在startuo nomount状态时查看。
另外在startup mount中采用SQL>select * from v$controlfile进行查看,怎样进入到mount状态呢?
SQL>startup mount;[错误]
SQL>alter database mount[正确]--此命令是进入到mount状态。



控制文件对于数据库来说也是相当重要的,虽然有3个控制文件但其内家都一致,故当其中一至两个控制文件不存在并不受影响,如果三个控制文件都不存在那么数据库将无法启动。可以重建新的控制文件来打开数据库。
每启动一个状态时,告警文件都有相应的记录,就拿刚才我们进入到mount状态来看看告警文件都有那些记录



时刻要记住告警文件位置:E:\oracle\product\10.2.0\db_1\admin\orcl\bdump,经常看看告警文件对于处理相关oracle 错误有很大的帮助。
上图中mount id是oracle计算出来的值并将记录在控制文件中,然后开始启动Heartbeat心跳。
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  实例 Oracle Windows