一、启动:当使用oracle的STARTUP命令来启动数据库时,执行过程如下:
1.首先使用服务器上的spfileSID参数文件来启动实例。
2.如果没有找到spfileSID,就使用服务器上默认的spfile文件启动。
3.如果没有找到spfile,就使用initSID文件启动。
4.如果没有找到initSID,就使用默认的pfile启动。
启动方式:
1.startup nomount。
2.startup mount。
3.startup open(startup的默认选项)。
其他常用参数:read only,read write,force,restrict.这些参数可以一起使用, 比如:startup open read write.
oracle启动过程:启动实例->装载数据库->打开数据库,与之对应的读取相应文件的顺序:参数文件->控制文件->数据文件。
startup nomount:
这种方式启动数据库时,表示只启动数据库实例,不装载数据库,不打开数据库,这时只读参数文件,主要做:
1.分配SGA,即配置所有内存缓冲区和相关结构。
2.启动所需后台进程。
我们可以进行如下测试,启动前,修改pfile和spfile参数文件,将控制文件的文件名修改(修改为无效文件),这时
以nomount方式启动,数据库还可以启动成功,说明,启动时没有读取控制文件。
startup mount :
这种方式启动时,oralce启动实例,并且加载控制文件。主要工作:
1.将一数据库与启动的实例关联起来。
2.利用初始化参数文件锁定并打开控制文件。
3.读取控制文件,获取数据文件和重做日志文件的位置和状态信息,但是并不检查文件是否存在。
startup open:
这时,启动实例,打开控制文件,并做:
1.打开所有的联机数据文件。
2.打开所有的联机重做日志文件。
总结如下:
1.nomount,只读参数文件,还没有读取控制文件,在控制文件损坏,需要创建一个数据文件或者创建一个
数据库时使用。
2.mount,读取控制文件,没有打开数据文件,该选项可以用来修改数据库的运行模式或进行数据库恢复。
3.open,正常打开。
二、关闭
1.shutdown normal(正常关闭):发出该命令后,任何新的连接都将不在允许连接到数据库。在数据库关闭之前,oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要人后的实例回复。但是,需要注意,这个方式有可能特别慢。
2.shutdown immediate(立即关闭):回滚当前没有提交的事务。
3.shutdown transaction:任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。
4.shutdown abort:强制关闭数据库。