Linux下Oracle数据库的启动过程

Linux下Oracle数据库的启动过程:
监听命令:lsnrctl start、lsnrctl stop、lsnrctl reload、lsnrctl restart、lsnrctl status
Oracle的启动可以分为三个阶段:nomount、mount、open。 startup [nomount|mount|open]缺省值为open
startup nomount; --实例已经构建在内存中,已经根据参数文件指定的参数创建了SGA并启动了某些进程,但此时并没有连接任何数据库;换句话说,仅仅是通过初始化文件分配出SGA区,启动了一些后台进程,没有打开控制文件和数据文件,任何数据库用户不能访问数据库。
startup mount; --实例定位并读取控制文件;换句话说,mount挂载了数据库,仅仅是给dba进行管理操作,不允许数据库用户访问,仅仅是当前实例的控制文件被打开,数据文件未打开。
statrup open; --实例定位并打开所有数据文件,终端用户能正常连接访问数据库。此命令其实等价于startup
以上三个命令都可以单独执行,当startup nomount时,可以继续执行alter database mount;alter database open;这样开启数据库。
当执行startup mount时,可以alter database open;这样开启数据库。
还可以直接statrup open;打开数据库。
其实当执行startup 命令时,就会依次完成上诉的三个启动阶段。

oracle的关闭过程:
关闭数据库使用shutdown [normal|transactional|immediate|abort]命令,缺省值为normal。
normal:默认选项,不允许新的用户连接,等待当前所有已连接用户会话结束(用户自愿退出登录),等待所有事务结束,数据库才真正关闭。
transactional:不允许新的用户连接,等待存在某个事务中的现有会话在完成该事物之后关闭数据库。
immediate:不允许新的用户连接,终止所有连接的回话,任何活动的事务自动rollback,随后关闭数据库。
abort:这个选项相当于断电,实例立即终止,不会将任何数据写入磁盘,也不会采用任何有序的方式终止正在进行的事务。
使用shutdown normal|transactional|immediate模式关闭的数据库通常称为“干净的”“一致的”关闭。

猜你喜欢

转载自blog.csdn.net/MssGuo/article/details/114279164