以ORACLE10g 为例:
一、ORACLE数据库的启动
ORACLE数据库的启动过程包含三个步骤:
第一步: startup nomount 启动实例
实例的启动过程会读取数据库的参数文件, 为实例分配SGA和启动后台进程。
读取参数文件的过程为: 先读取SPFILE再读取PFILE。
第二步: alter database mount 装载数据库
装载数据库的过程会根据控制文件找到数据库的相关信息, 如数据文件、重做日志文件等。
第三步: alter database open 打开数据库
直接用startup命令可以直接实现上面三个步骤。
二、ORACLE数据库的关闭
ORACLE数据库的关闭过程同样也包含三个步骤, 这三个步骤正好是数据库启动的逆过程, 分别是关闭数据库、卸载数据库、关闭实例。
关闭数据库的四种方式, 其中最常用的是shutdown immediate。
第一种方式: shutdown normal, 通常情况下shutdown默认处理为shutdown normal。
该种方式: a: 允许新用户连接数据库,直到所有用户都退出数据库后才会关闭数据库。
b: 关闭的时间较长, 不推荐使用。
第二种方式: shutdown immediate。
该种方式: a: 不允许新的用户连接数据库。
b: 未提交的数据会被回滚。
c: 不等待所有用户退出数据库立即关闭。
第三种方式: shutdown transaction。
该种方式: a: 不允许新的用户连接数据库。
b: 在当前连接到数据库所有活动的事物提交完毕才会关闭数据库。
第四种方式: shutdown abort。
该种方式: a: 强行关闭数据库, 一般不推荐使用。