启动数据库的前提条件
a.环境变量定义好 $ORACLE_HOME,SID等
b.能够进行密码认证或者操作系统认证
c.有正确的参数文件(至少要有参数才能见数据库启动到nomount状态)
d.有足够的内存
e.参数文件中路径要存在,且有操作权限(写日志写目录的权限)
f.产品安装正确
启动数据库分三个阶段
1.启动实例 nomount阶段 -->本阶段用的文件是参数文件,instance启动完毕,处于nomount阶段
读取参数文件并判断定义是否有错误
【注意参数文件的查找原则:spfiled.ora spfile.ora initsid.ora】
根据参数文件定义分配相关内存
打开alter文件,跟踪文件并记录信息
启动相关的后台进程
通过相关的进程判断oracle是否启动 ps -ef|grep ora_
startup nomount
sqlplus下查看进程 ! ps -ef|grep ora_
查看当前使用的参数文件 show parameter spfile
有结果说明是spfile启动 否则为pfile启动
或者
select name,value from v$parameter where name='spfile'
Linux下pfile,spfile的文件路径 cd $ORACLE_HOME/dbs
初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件。
服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改。
spfile的修改是可以通过sql命令在线修改,不在需要手工修改,对于动态参数所有更改可以立即生效,而pfile得修改必须重启实例才能生效
spfile丢失的情况下用pfile启动
startup pfile='....ora' nomount
通过pfile重建spfile文件
create spfile from pfile='/oracle/app/oracle/product/11.2/db_1/dbs/initdevdb.ora';
在此阶段可以进行对参数文件的修改和管理
2.装载数据库 此时读取控制文件 装载物理文件 Mount状态 -->本阶段用的是控制文件,在mount阶段,可以对数据库的物理结构进行操作
alter database mount
此时数据库读取控制文件
show parameter control_file
使数据库与以前启动的实例关联
定位并打开参数文件中指定的控制文件
读取控制文件获取数据文件和重做日志文件的名称和状态
此时可以进行对数据文件日志文件等的修改
alterbase 指令 如
命名数据文件
启用和禁用重做日志归档选项
执行完全数据库回复
create database指令
drop database指令
但不能对表空间进行操作 ,因为其实逻辑结构
更不能对表操作
3.打开数据库 -->本阶段使用数据文件,日志文件,物理文件的逻辑关系,验证一致性
打开联机数据文件
打开联机重做日志文件
验证所有数据文件和联机重做日志文件是否可以打开,并检查数据库的一致性
如果需要,smon启动实例恢复
前滚以恢复尚未记录在数据文件中但已记录在redo中的日志
s护具库处于open阶段,数据库启动完毕,逻辑结构和物理结构k而已正常工作