启动数据库的概念和步骤:
1、 启动例程
例程是由一组逻辑内存结构和一系列的后台服务进程组成的。当启动例程时,这些内存结构和服务器进程得到分配、初始化和启动。但是,此时的例程还没有和一个确定的数据库相联系,或者说数据库是否存在对例程的启动并没有影响,即还没有装载数据库。
在启动的过程中只会使用startup语句中指定的(或使用默认的)初始化参数文件。如果该文件或参数设置有错误,则我发启动例程。
启动例程包括执行如下几个任务:
(1)读取初始化参数文件(默认时读取SPFILE服务器参数文件,或读取由PFILE选项指定的文本参数文件)
(2)根据该初始化参数文件中有关SGA, PGA的参数以及其设置值,在内存中分配相应的空降
(3)根据该初始化参数文件中有关后台进程的参数以及其设置值,启动相应的后台例程
(4)打开跟踪文件、预警文件
使用startup nomount命令启动例程(但不打开控制文件,也不装载数据库)。通常,使用数据库的这种状态来创建一个新的数据库,或创建一个新的控制文件。
2、 装载数据库
装载数据库时,例程将打开数据库的控制文件,根据初始化参数control_files的设置,找到控制文件,并从中获取数据库物理文件(即数据文件,重做日志文件)的位置和名称等关于数据库物理结构的信息,为下一步做好准备。
在装载阶段,例程并不会打开数据库的物理文件,所以数据库仍然处于关闭阶段,仅数据库管理员可以通过部分命令修改数据库,用户还无法与数据库建立连接或会话(因此无法使用数据库)。如果控制文件损坏,例程将无法装载数据库。
在执行下列任务时,需要数据库处于装载状态(但不打开数据库)
(1) 重新命名、增加、删除数据文件和重做日志文件
(2)执行数据库的完全恢复
(3)改变数据库的归档模式
使用 startup mount 命令启动例程并装载数据库(但不打开数据库)
3、 打开数据库
打开数据库时,例程将打开所有处于联机状态的数据文件和重做日志文件。如果在控制文件中列出的任何一个数据文件或重做日志文件无法正常打开,数据库都将返回错误信息,这是需要数据库恢复。如图所示:
使用startup open命令依次透明的启动例程、装载数据库并打开数据库。
在启动数据库的过程中,文件的使用顺序是:参数文件,控制文件,数据文件,重做日志文件
关闭数据库的概念和步骤:
1、 关闭数据库
关闭数据库时,Oracle将重做日志高速缓存中的内容写入重做日志文件,并且将数据库高速缓存中被改动过的数据(脏数据)写入数据文件,在数据文件中执行一个检查点(checkpoint),即记录下来数据库关闭的时间,然后在关闭所有的数据文件和重做日志文件。这时数据库的控制文件仍然处于打开状态,但是由于数据库以及处于关闭状态,所以无法访问数据库
2、 卸载数据库
关闭数据库后,例程才能够卸载数据库,并在控制文件中更改相关的项目,然后关闭控制文件,但是例程仍然存在。
3、 终止例程
最后是终止例程,例程所拥有的所有后台进程和服务进程将被终止,分配给例程的内存SGA区和PGA区被回收。