Oracle10g启动失败解决方法

本文提供了解决Windows环境下Oracle(9i/10g)启动失败的方法。包括检查监听器、服务状态,通过命令行启动与关闭数据库服务及监听器等步骤。此外还介绍了如何解决‘sharedmemoryrealmdoesnotexist’错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

本文主要针对 windows 环境下 oracle (9i 10g)启动失败,

首先,要查看 oracle 的监听 , em , 服务 是否都已经启动。如果已经启动,但仍然无法连接,首先将服务全部停止,然后按照以下顺序尝试重启

 

#启动监听
lsnrctl start

#关闭监听
lsnrctl stop

用lsnrctl reload重启监听器,此命令可以代替lsnrctl stop和lsnrctl start。重启将会在不需要关闭和启动监听器的情况下读取listener.ora的配置。

 

#启动oradb数据库服务

net start oracleserviceoradb

 

#关闭oradb数据库服务

net stop oracleserviceoradb

 

#启动dbconsole服务
emctl start dbconsole

#停止dbconsole服务
emctl stop dbconsole

#启动数据库
sqlplus
sql>/as sysdba
sql>startup

#停止数据库
sql>shutdown immediate

 

要启动或者停止服务,必须拥有sysdba的权限。

 

关闭数据库  shutdown

有四个参数,四个参数的含义如下:
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句 (推荐)
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库


normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。


前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!

 

数据库的启动
数据库启动使用startup命令,它有三种情况
第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了! 

其他问题:

提示:环境变量 ORACLE_SID 未定义,请定义。

设置 ORACLE_SID =WLW (WLW是我的实例名,也是服务名) C:\Documents and Settings\xcl>set ORACLE_SID=WLW(注意大写)

 

Oracle 10g错误:shared memory realm does not exist的分析与解决容,情况是这样的:在连接Oracle 10g时出现了错误:“shared memory realm does not exist”,如下图所示:

Oracle 10g错误:shared memory realm does not exist

上图就是Sqlplus连接时出现这个错误,经过分析终于找到了解决问题的方法。

解决方法:

本文一开始提出问题,这里做一解决,为什么会出现那个问题了是因为Oracle数据库没有被启动,解决的方法就是如上面3所示操作打开数据库;

上述问题表现最直接的一个现象:查看任务管理器下oracle.exe所占内存,当oracle.exe所占内存为几十兆说明Oracle数据库没有启动,正常oracle.exe所占内存如下:

Oracle 10g错误:shared memory realm does not exist

现在还原错误:关闭数据库后连接数据库,查看oracle.exe所占内存

Oracle 10g错误:shared memory realm does not exist

查看内存:

Oracle 10g错误:shared memory realm does not exist

与正常启动时相差比价大,所以总结一下解决“shared memory realm does not exist”方法:

(1)任务管理器中查看oracle.exe所占内存,当oracle.exe所占内存仅为几十兆,说明问题是数据库没有启动

(2)启动Oracle数据库,管理员登录,启动。

Java代码:

  1. sqlplus /nolog     
  2. conn USER/PASSWORD as sysdba     
  3. startup 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值