详细讲解Oracle数据库运行错误的解决方法

7/11/2008来源:Oracle教程人气:3773

Oracle数据库运行错误的解决方法:

错误1:ORA-01034: ORACLE not available


Oracle安装、启动后用sqlplus "/ as sysdba" 登陆,执行任何select语句都出现错误:

select * from dictionary

*

ERROR at line 1:

ORA-01034: ORACLE not available

但是用toad等客户端工具正常!

为什么sqlplus不行呢?

另,我用的是:

oracle9

redhat as 4


解决方法:

更改一下linux用户的环境变量ORACLE_SID就可以了。


错误2:ORA-27101: shared memory realm does not exist


我试图连接数据库时的ORA-01034 和 ORA-27101错误信息,它总是显示这样的信息,“ORA-01034 - Oracle not available”和“ORA-27101 - shared memory realm does not exist”。

不能连接到我的Oracle 数据库上。

因为碰到防火墙的问题次数比较多,这次也先看看,发现根本就没什么拦截的。查看了一下监听,数据库实例也是运行着的。

奇怪的事情,刚才还好好的,重启了机器就不行了。


解决方法:解决的方法倒是不麻烦...

首先看一下 ORACLE_BASE\ORACLE_HOME\DATABASE 下面的 ORADIM.LOG 文件

如果里边有这个错误

ORA-12640: 验证适配器初始化失败

那么问题就是它了.

到ORACLE_BASE\ORACLE_HOME\NETWORK\ADMIN下面找sqlnet.ora文件

把sqlnet.authentication_services=(NTS) 改成

sqlnet.authentication_services=(NONE)

然后手动重起一下你的哪个数据库服务..在开始->控制面板->管理工具->服务里然后把这个服务的启动帐号改成你的帐号吧...其实不改大概也没有毛病.我就没改。。


看了这个方法,出错的原因大概有两种情况,修改了帐户,实例有些变动等。


如果还不行,重启电脑试试.


ERROR - ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

关于“ORA:12541:TNS 没有监听器” 的问题


1.看看是不是监听服务没有起来


2.检查有没有修改IP地址,计算机名称


对于2,一般情况下是机器的IP地址更改了,我就碰到过这种情况,oracle10g的安装是在没有联网的状态下,结


果联上网后OracleDBConsole*服务启动不了,在此情况下我的解决方案是断网启动服务就好用了.


其实问题在于初始配置的监听/服务中的主机信息与现在的信息不符,如果要改便主机IP/名称的话,也必须同时


修改oracle中的相应配置,否则oracle找不到主机当然启动不了。


必须启动的服务:OracleOraDb10g_home1TNSListener(监听器),OracleService[sid]这两项,后者可选为手动


启动(因为吃资源厉害).


后来又遇到OracleOraDb10g_home1TNSListener服务无法启动的问题,google了下原来是被优化大师清注册表时干掉的,服务启动路径要在注册表中添加。

方法如下:


看\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener有无ImagePath的字符串,没有的话就加一个,值为..\oracle\PRoduct\10.1.0\db_1\TNSLSNR(不只一处).类似还有,优化大师干掉VS2003中的.NET framework的注册表信息,当时我重装了。

Windows下默认完成后不用填写主机字符就可以直接用户名密码登录。