Linux下oracle 10g的错误:ORA-01034, ORA-27101 and ORA-00600
2009-05-21 13:18
661 查看
新装的一台机器,无法运行程序,报错:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
这两个错误的原因可能是:
ORACLE_SID或ORACLE_HOME没有设置正确。对normal users来言,或者是oracle数据库没有启动。对remote users,可能listener有问题。
解决方法:
step 1.
确保ORACLE_SID和ORACLE_HOME正确的设置。可以再Unix下查看变量:
SQL>!echo $ORACLE_SID
data1 or XE
SQL>!echo $ORACLE_HOME
.../oracle/product/10.2.0/db_1(or server)
如果运行的结果与上面的结果不同,可以通过下面的命令set:
$export ORACLE_SID=db_name_here // db_name_here = data1 or XE
另外,需要注意:ORACLE_SID是大小写区分的
step 2.
验证数据库实例正在运行.
在Unix下可以这样查看:
SQL>!PS -ef | grep smon
这行命令会返回一行数据,类似于: ora_smon_xe。 如果没有返回这样的数据,说明数据库没有启动。
运行一下命令启动数据库:
$sqlplus / as sysdba
$startup
如果没有返回错误的话,再去查看 ps -ef | grep smon, 应该会返回ora_smon_xe之类的一行数据。
可是,我在startup的时候却发生了错误:
ORA-00600: internal error code, arguments: [keltnfy-ldminit] ...
g了一下,发现问题都指向/etc/hosts和hostname. 可是,我这边的机器没有更改过hostname啊,机器装好了就是这样的。
输入$hostname
ABC-DEF //说明hostname是ABC-DEF
再vim /etc/hosts
127.0.0.1对应的hostname是localhost,难道因为二者不对应造成的? 管他呢,先增加一行再说,在hosts里新增一行:
127.0.0.1 ABC-DEF
!wq
$startup
ok,可以启动了。
看来原因真是二者不对应造成的。默认的hostname是localhost,装的时候hostname设置为ABC-DEF,二者不对应。而通过hostname命令得到的主机名无法ping通,Oracle10g认为主机无法达到所以启动数据库报错。
PS:
有解决方案说:如果一定要修改机器名,需要修改的比较彻底,需要修改/etc/hosts,/etc/sysconfig/network这两个文件,如果忘了将/etc/hosts中127.0.0.1对应的机器修改成network文件中的一样,将会导致上面描述的错误。
可是,/etc/sysconfig/network是个文件夹,而且,vi该文件夹的时候,也没发现里面有关于hostname的设置。。。不过,我用的suse,莫非network文件的位置不对了。。。find一番,也没找到。自己无解了。
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
这两个错误的原因可能是:
ORACLE_SID或ORACLE_HOME没有设置正确。对normal users来言,或者是oracle数据库没有启动。对remote users,可能listener有问题。
解决方法:
step 1.
确保ORACLE_SID和ORACLE_HOME正确的设置。可以再Unix下查看变量:
SQL>!echo $ORACLE_SID
data1 or XE
SQL>!echo $ORACLE_HOME
.../oracle/product/10.2.0/db_1(or server)
如果运行的结果与上面的结果不同,可以通过下面的命令set:
$export ORACLE_SID=db_name_here // db_name_here = data1 or XE
另外,需要注意:ORACLE_SID是大小写区分的
step 2.
验证数据库实例正在运行.
在Unix下可以这样查看:
SQL>!PS -ef | grep smon
这行命令会返回一行数据,类似于: ora_smon_xe。 如果没有返回这样的数据,说明数据库没有启动。
运行一下命令启动数据库:
$sqlplus / as sysdba
$startup
如果没有返回错误的话,再去查看 ps -ef | grep smon, 应该会返回ora_smon_xe之类的一行数据。
可是,我在startup的时候却发生了错误:
ORA-00600: internal error code, arguments: [keltnfy-ldminit] ...
g了一下,发现问题都指向/etc/hosts和hostname. 可是,我这边的机器没有更改过hostname啊,机器装好了就是这样的。
输入$hostname
ABC-DEF //说明hostname是ABC-DEF
再vim /etc/hosts
127.0.0.1对应的hostname是localhost,难道因为二者不对应造成的? 管他呢,先增加一行再说,在hosts里新增一行:
127.0.0.1 ABC-DEF
!wq
$startup
ok,可以启动了。
看来原因真是二者不对应造成的。默认的hostname是localhost,装的时候hostname设置为ABC-DEF,二者不对应。而通过hostname命令得到的主机名无法ping通,Oracle10g认为主机无法达到所以启动数据库报错。
PS:
有解决方案说:如果一定要修改机器名,需要修改的比较彻底,需要修改/etc/hosts,/etc/sysconfig/network这两个文件,如果忘了将/etc/hosts中127.0.0.1对应的机器修改成network文件中的一样,将会导致上面描述的错误。
可是,/etc/sysconfig/network是个文件夹,而且,vi该文件夹的时候,也没发现里面有关于hostname的设置。。。不过,我用的suse,莫非network文件的位置不对了。。。find一番,也没找到。自己无解了。
相关文章推荐
- Linux下oracle 10g的错误:ORA-01034, ORA-27101 and ORA-00600
- linux(suse)oracle服务器,改变网络后,不能通过监听启动,ora-12514错误,修改listener.ora后,出现ora-01034 ora-27101
- ORA-27101: shared memory realm does not exist 错误的处理(ORA-01034 - Oracle not available )
- Oracle ORA-01034,ORA-27101,ORA-00600
- PL/SQL连接Oracle错误:ORA-12514、ORA-01034、ORA-27101
- 解决连接Oracle 11g报ORA-01034和ORA-27101的错误
- Oracle 11g参数修改错误导致数据库无法启动的处理方法.[ORA-01034,ORA-27101,ORA-00824]
- Oracle 数据库登录时出现ORA-12514 、ORA-01034、ORA-27101、ORA-01033 错误的解决
- Oracle 10g ORA-01034: ORACLE not available 错误
- 解决连接Oracle 11g报ORA-01034和ORA-27101的错误
- ORA-01034:oracle not available. ORA-27101:shared memory realm does not exist 错误解决办法之一
- Oracle 11g 参数修改错误导致数据库无法启动的处理方法.[ORA-01034,ORA-27101]
- 解决连接oracle报ORA-01034和ORA-27101的错误
- Oracle ORA-01034,ORA-27101,ORA-00600
- ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No suc
- ORA-27101: shared memory realm does not exist 错误的处理(ORA-01034 - Oracle not available )
- 【Oracle】PLSQL连接ORA-01034、ORA-27101、Linux-x86_64 Error
- 解决连接oracle 11g报ORA-01034和ORA-27101的错误
- oracle 远程访问数据库 ORA-01034和ORA-27101问题的一种解决方法
- Oracle ORA-00600: [dmlsrvColLenChk_2:dty] 错误 说明