oracle的nomount,ORACLE启动到NOMOUNT状态

在Windows上要把oracle启动到nomount状态,于是在没用启动oracle服务的情况之下,输入下述命令:

C:\>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 10月 14 16:28:13 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> connect / as sysdba

ERROR:

ORA-12560: TNS: 协议适配器错误

SQL>

于是启动监听服务(命令: lsnrctl start   也可以启动服务,而且能显示监听器监听的 IP地址 和 Port 端口号):

net    start    oracleoradb10g_home1tnslistener

监听服务启动成功。但是发现在sqlplus里再次输入connect命令时,还是出现同样的错误。

在网络上找了一下,发现很多人也碰到了这个问题,如果你也碰到了类似的问题,下面的方法可以试一下:

1、在Windows下,当我们启动数据库服务时,数据库会自动到Open状态。现在要启动到nomount状态,必需修改注册表,把键值:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1下ORA_ORCL_AUTOSTART值修改为 FALSE,修改之后就不会自动启动到Open状态了,这样就有机会启动到nomount状态了。

下面首先会启动服务,然后再连接。

C:\>net start OracleServiceOrcl

OracleServiceORCL 服务正在启动 .

OracleServiceORCL 服务已经启动成功。

C:\>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 10月 14 17:08:14 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> connect / as sysdba

已连接到空闲例程。

SQL> startup nomount

ORACLE 例程已经启动。

Total System Global Area 603979776 bytes

Fixed Size 1250380 bytes

Variable Size 213912500 bytes

Database Buffers 381681664 bytes

Redo Buffers 7135232 bytes

SQL>

那么接下去可以修改数据库到mount,open状态。

SQL> alter database mount

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL>

2、直接启动数据库的服务,然后连接数据库,shutdown,然后再启动到nomount状态。

为什么要这么做呢? 主要是还是上面说的,如果不修改oracle在注册表里的启动参数的话,一旦启动服务,那么数据库就处于open状态,也就不可能在转到nomount状态了。

所以反其道而行之,这个时候数据库已关闭、数据库已卸载、实例已关闭,同时服务还是启动的,也就是说在任务管理器里oracle.exe进程还在,同时发现oracle占的内存很少,因为此时已经释放了SGA系统全局区的内存了。

C:\>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 10月 14 17:24:59 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> connect / as sysdba

已连接到空闲例程。

SQL> startup nomount

ORACLE 例程已经启动。

Total System Global Area 603979776 bytes

Fixed Size 1250380 bytes

Variable Size 218106804 bytes

Database Buffers 377487360 bytes

Redo Buffers 7135232 bytes

SQL>

SQL> alter database mount

2 ;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL>

另外,当关闭数据库,又重新启动到open状态时,下面显示了关闭数据库的顺序(数据库已经关闭、已经卸载数据库、ORACLE 例程已经关闭)、启动的顺序(ORACLE 例程已经启动、数据库装载完毕、数据库已经打开)。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup open;

ORACLE 例程已经启动。

Total System Global Area 603979776 bytes

Fixed Size 1250380 bytes

Variable Size 218106804 bytes

Database Buffers 377487360 bytes

Redo Buffers 7135232 bytes

数据库装载完毕。

数据库已经打开。

SQL>

还有,如果直接启动到nomount状态,那么就不能再启动到mount状态(除非先shutdown),只能通过alter database mount语句,修改数据库的状态为mount,同理对open状态也是一样的,也就是说只能是:

第一种 :

startup nomount;

alter database mount;

alter database open;

第二种:

startup nomount;

alter database open;

第三种:

startup open;

像下面这样:

startup nomount;

startup mount;                             会导致ora_01081错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值