【oracle数据库安装】Oracle数据库出现ORA-01034错误的解决方案

发布时间:2009-09-15   来源:数据库安全    点击:   
字号:

【www.quanqiunao.cn--数据库安全】

使用Oracle数据库的朋友经常会碰到的错误ORA-3113 "end of fileon communication channel" 就是这样的一个,我们可以简单的把这个错误理解为Oracle客户端进程和数据库后台进程连接中断。不过,导致这个错误的原因实际上有很多种,对数据库设置不当、任何能导致数据库后台进程崩溃的行 为都可能产生这个错误.这个错误的出现还经常伴随着其它错误,比如说: ORA-1034 ORACLE not available。 


ora-01034错误的原因是因为数据库的控制文件没有加在startup mount 后,建议查看oracle数据库的归档与否。如果是归档的报错原因可能是因为归档日志的格式不正确,所以在mount下改变一下归档日志的格式(format)具体如下:

  alter system set log_archive_dest_1="location=D:\OraHome_1\admin\orcl\arh";
   
  alter system set log_archive_max_processes=3;

   alter system set log_archive_format="arh_%t_%s_%r.log" scope=spfile;
   alter system set log_archive_format="%t_%s.dbf"

结果发现上述方法不能进入mount状态,最大的可能是系统初始化文件出了问题,原来SPFILEORCL.ORA是二进制文件,不能直接修改,必须通过命令创建和修改。于是,重建spfile文件(注:找到spfile存放的位置,然后新建一个spfile文件)具体如下:

SQL> create spfile from pfile="d:\admin\orcl\pfile\init.ora";
文件已创建。
SQL> startup(如果执行startup出现ora-01081错误)如:

遇到ora-01081错误,我的方法是接着执行:

现在可以确定,这个错误都是因为文档无法归档的原因,所以接着执行:

 最后成功连接数据库。

ORA-01034错误的高手的话:

--Oracle常见错误之一
这是个Oracle数据库服务器比较常见的错误。有经验的用户几乎马上就能解决这个错误,再不济也能马上到Metalink(http://metalink.oracle.com)去搜索一下。
不幸的是,大多的时候,都是初级用户遇到的这样的问题(对他们提Metalink也起不到什么作用--一般都没有上面的帐号:))。

所以,这个小帖子可能还有一定的作用。

问题描述
=======

在试图启动数据库的时候,Oracle报告下列错误:
ERROR:
ORA-27101 Shared memory realm does not exist 
ORA-01034 ORACLE not available 
基本解释
=======
Error: ORA-27101 
Text: shared memory realm does not exist 
-------------------------------------------
Cause: Unable to locate shared memory realm 
Action: Verify that the realm is accessible

如何解决 
=======
这个问题其实用一句话就可以说清楚:

ORACLE_HOME或者ORACLE_SID设置不正确。
在以前的版本中,如果ORACLE_SID不正确,一般都只提示ORA-01034。Oracle 8.1.7 给出一个额外的信息:ORA-27101。
->如果是Unix,在Shell里把ORACLE_SID设置正确即可(注意大小写敏感的问题)。
 此外,检查ORACLE_HOME环境变量。如何检查参考如下的命令:
% echo $ORACLE_SID 
% ps -ef "grep smon 
->如果是Windows,一般都是因为系统中有多个实例造成的。
 可以在命令行下 C:/>set ORACLE_SID=DEMO
 把这里的DEMO换为你相应的实例名。
 如果还不行的话,检查注册表中的ORACLE_HOME。

 此外,在Windows环境下有的时候连接不上远程的数据库,会报告如此的错误。
 解决办法是把sqlnet.ora文件中的
 SQLNET.AUTHENTICATION_SERVICES = (NTS) NTS换为NONE.

本文来源:http://www.quanqiunao.cn/anquanzhongxin/14933/