
nomount mount open指的是实例启动的过程,你说的教程上的步骤完全正确
之所以设置几个不同的状态,是为了应付不同的情况例如数据文件发生了损坏,需要进行恢复,在open状态下就不能进行,因为open状态下文件是打开的,这时就需要mount状态了但如果是Oracle的控制文件损坏了,需要恢复,这时就需要nomount状态,因为mount状态下控制文件是打开的
其实如果实例已经启动了,你只是去连接访问,就不用管这些东西了
务全都启动起来如果是Oracle10G,应该有4个服务
然后,运行cmdexe,如果Oracle就按照在本机,输入如下命令:sqlplus /nolog完成后会进入到SQL>的提示符
这时候如果win的Oracle服务启动起来了,则数据库正常情况下是mount并且是open的,要想使用startup mount命令,则需要先关闭Oracle数据库输入:
SQL>shutdown immediate;
就可以关闭数据库然后,就可以使用startup mount启动数据库到mount状态了
如果后面还要打开的话,输入
SQL>alter database open;
则会打开数据库
数据库在启动 过程分为三个阶段,nomount ->mount->open
每个阶段干什么了,你只要明白了,就可以很好的控制了
第一个nomount阶段:读取参数文件(pfile ||spfile)分配内存,启动后台进程,参数里面读取到控制文件的路径(并不打开)
如果不能到nomount ,请检查内存和参数文件
第二阶段mount 根据第一步读取到的路径打开控制文件,读取数据文件和日志文件的位置(不打开)
如果不能mount 检查控制文件是否有问题
第三部 open 打开数据文件,日志文件并一致性检查
如果不能到open检查数据文件,日志文件是否有问题
参照图上显示,有以下区别:
1、STARTUP NOMOUNT选项:(读初始化参数文件,启动实例)
STARTUP NOMOUNT选项启动实例,但不安装数据库。当数据库以这个模式启动时,参数文件被读取;后台进程和内存结构被启动;但它们不被附加或与数据库的磁盘结构进行通信。当实例处于这个状态时,数据库是不可使用的。
2、STARTUP MOUNT选项:(打开控制文件)
STARTUP MOUNT选项执行STARTUP NOMOUNT选项的所有工作,但另外附加数据库结构并与这些结构进行交互。这时Oracle从它用来查找和附加到主要数据库结构的控制文件中获得信息。当处于这个模式时,可以执行一些管理型任务,比如恢复。
3、STARTUP OPEN选项:(打开数据文件,日志文件)
如果STARTUP命令行上没有指定任何模式,STARTUP OPEN选项就是默认的启动模式。STARTUP OPEN选项执行STARTUP NOMOUNT和STARTUP MOUNT选项的所有步骤。这个选项把数据库变成对所有用户都时可用的。
4、STARTUP FORCE选项:
如果在用正常方式启动数据库时遇到了困难,可以使用STARTUP FORCE选项。STARTUP FORCE选项首先异常关闭数据库,然后重新启动它。
5、STARTUP RESTRICT选项:
STARTUP RESTRICT选项启动数据库并把它置入OPEN模式,但只给拥有RESTRICTED SESSION权限的用户赋予访问权。
1、ORACLE_SID:是数据库在 *** 作系统内部的环境变量名,其值是正要启动的Oracle数据库实例名。 *** 作系统通过SID找到要启动的Oracle实例的初始化参数文件,根据初始化文件启动Oracle实例,配置内存和创建数据库进程。
2、Global_name:是全局数据库名,对一个数据库(实例)的唯一标识,oracle建议用此种方法命名数据库。该值是在创建数据库时决定的,构造方式=数据库名(Db_name)+数据库域名(Db_domain)。
当域名缺省时,数据库名=全局数据库名。作用是找到对应的数据库安装(mount)、打开(open)。
例:若创建数据库时输入orcl,则全局数据库=orcl;若输入了orclR211gwin,则数据库名=orcl,数据库域名=R211gwin。
原因是oracle在同步controlfile的时候磁盘或者其它原因导致失败,在mount数据库阶段,如果所有controlfile的状态不一致就会出这个问题
解决方法:
我首先备份了控制文件,启动了数据库到nomount状态下,分别指定系统控制文件为三个中的其中一个:
ALTER SYSTEM SET CONTROL_FILES='F:\ORACLE\ORADATA\ORACAS\CONTROL01CTL' SCOPE=SPFILE
然后启动数据库到Mount状态下,如果还是报错,就指定下一个
只要上面三次 *** 作中有一次成功,就可以用那个成功的控制文件来重新作出另外两个控制文件。即先关闭打开的数据库,然后删掉无用的控制文件,把有用的复制一份然后alter system set control_files='/control01ctl','/control02ctl' scope=spfile; 打开数据库即可
以上就是关于打开oracle数据库为什么要经过mount , nomount 等 这么麻烦的步骤。全部的内容,包括:打开oracle数据库为什么要经过mount , nomount 等 这么麻烦的步骤。、oracle里的mount是干什么用的、如何让oracle数据库只能启动到mount状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)