打开oracle数据库为啥要经过mount , nomount 等 这么麻烦的步骤。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打开oracle数据库为啥要经过mount , nomount 等 这么麻烦的步骤。相关的知识,希望对你有一定的参考价值。

我直接在sql plus 里头输入比如 conn scott/tiger ; 就可以了呀。为什么教程上面说要先nomount 再 mount 再open 。。。
你好,谢谢你的回答,我能看懂你的意思,但是还是有疑问,我都没有做什么操作去启动我的实例,怎么一上来就直接可以conn scott tiger 了。。。。(我是把 电脑“服务”里面的oracle 实例都设置为了手动,不开机启动。每次要用oracle 我都要去“服务”打开对应的服务,难道我的这些动作就是启动实例了?)

nomount mount open指的是实例启动的过程,你说的教程上的步骤完全正确.
之所以设置几个不同的状态,是为了应付不同的情况.例如数据文件发生了损坏,需要进行恢复,在open状态下就不能进行,因为open状态下文件是打开的,这时就需要mount状态了.但如果是Oracle的控制文件损坏了,需要恢复,这时就需要nomount状态,因为mount状态下控制文件是打开的.
其实如果实例已经启动了,你只是去连接访问,就不用管这些东西了.
参考技术A conn scott/tiger是连接数据库
在数据库已经打开的情况下这个样子是可以连接并进行访问以及更改等其他操作的。
但是在实际应用中会涉及到关闭数据库进行物理备份等一些其他操作,所以就需要关闭数据库了(关闭命令shutdown immediate)。
在关闭的情况下是 无法进行数据库的基本操作的即使你登陆上也没用不能访问数据库实例,所以就要想你上面说的要先nomount 再 mount 再open 了。
这个是不冲突的,conn后能访问是建立在数据库的实例打开的基础上的。追问

你好,谢谢你的回答,我能看懂你的意思,但是还是有疑问,我都没有做什么操作去启动我的实例,怎么一上来就直接可以conn scott tiger 了。。。。(我是把 电脑“服务”里面的oracle 实例都设置为了手动,不开机启动。每次要用oracle 我都要去“服务”打开对应的服务,难道我的这些动作就是启动实例了?)

参考技术B 在oracle中每一个状态都要加载不同的文件的,例如在nomount要加载spfile。
只有到最后的open要加载数据文件。所以你连接scott要在open下面

我找不到在回答的窗口了。。你是在window下安装的吧。。我是在linux下面。每次在开启时你能直接连接scott是因为你在开启数据库时它自动就去一步一步加载了,所以你能直接到达open状态。你是可以查看你当前的数据库的状态的,还有,每次开启服务,是window下特有的约束,没办法。我在linux下面都不会去手动开启的。只要进入系统就能直接用的
参考技术C 比如一些操作只能在mount状态下执行

oracle:数据库mount状态是啥意思啊?

参考技术A oracle启动分为三步:
nomount--根据参数文件启动实例(instance)
mount--加载控制文件,让实例和数据库相关联
open--根据控制文件找到并打开数据文件和日志文件,从而打开数据库

以上是关于打开oracle数据库为啥要经过mount , nomount 等 这么麻烦的步骤。的主要内容,如果未能解决你的问题,请参考以下文章

oracle状态

oracle:数据库mount状态是啥意思啊?

oracle数据库管理安装到物理内存交换空间时为啥失败?

Oracle启动中,startup nomount startup mount 有什么差别?

Oracle11g启动与关闭

从java程序中向oracle中插入数据,为啥插入顺序总是不对