Oracle数据库配置错误信息
Oralce数据库的错误信息经常会出现,我们看见的都是错误的代码,至于错误原因究竟是什么还一时半会难以解答,所以就把一些常见的错误整理了一下,来看看也许对你有帮助的.
1. Oracle客户端网络配置:
在Oralce产品安装完成后,为了与数据库服务器进行连接或者是两台数据库之间进行数据复制,则必须进行网络连接配置。
Oracle9i Net Service配置方法:
Oracle9i Net Service的连接配置可以使用数据库实例ORACLE_SID,或者是使用Oracle9i的参数 SERVICE_NAMES。配置Oracle9i客户端与Oracle9i服务器端的连接,也是生成Oracle9i Net Service客户端网络配置文件tnsnames.ora,也可以编辑这个文件。
tnsnames.ora文件在Window与Unix下的存储目录:
Window NT/2000: D:/oracle/ora90/network/admin/tnsnames.ora
UNIX:/home/app/oracle/product/9.0.1/network/admin/tnsnames.ora
如果tnsnames.ora文件配置不正确,则错误信息会记录在连接日志信息文件中,其错误信息内容为:
The error strutct:
Nr err code:0
Ns main err code:12560
TNS -12560:TNS: 协议适配器出现错误
ns secondary err code:0
nt main err code:530
tns-00530:协议适配器错误
nt secondary err code:2
nt OS err code:0
在配置Oracle9i的连接配置中,其服务器端需要配置监听程序进程配置文件listener.ora,如果服务器端监听进程没有启动,则出现以下错误信息:
ERROR:
ORA-12651:TNS:没有监听器
该信息说明所要连接的服务器没有启动监听进程Listener(该进程为Oracle服务器上操作系统进程,监听进程没有启动时,服务器可以正常进行,但是客户端不能与服务器产生连接。这时可以在服务器使用操作系统命令lsnrctl正常起启动监听进程)具体方法如下:
C:>lsnrctl start
停止监听方法:
C:>lsnrctl stop
修改计算机名后则需要修改监听进程中的HOST,否则监听程序会出现以下错误:
Tns-12545:因目标主机或者对象不存在,连接失败
Tns-12560:tns:协议适配器错误
Tns-00515: 因目标主机或者对象不存在,连接失败
Error:1001:unknow error
在Window NT/2000中,使用服务列表启动listener.ora服务时也会出现同样的错误信息
(对话框)进行意外中止
这时,可以修改listener.ora中的下一列信息中HOST处的主机名:
(ADDRESS=(PROTOCOL=TCP)(HOST=SUN4500)(PORT=1521))
该名称必须与实际符合,重新启动监听程序即可。附:在listener.ora文件中,HOST处允许使用IP地址,这样修改机器名后就不会引起监听程序启动失败。
此外在服务器与listener.ora文件统一目录中还有一个文件即:tnsnames.ora文件,此文件是用于两个服务器之间的连接配置,即Oracel分布式环境中的网络配置该文件的目录如下:
Window NT/2000 D:/oracel/ora90/network/admin/tnsnames.ora
UNIX: /home/app/oracle/product/9.0.1/network/admin/tnsnames.ora
在服务器中,tnsnames.ora默认是使用服务器名进行配置的,所以如果修改了机器名,则该文件同时需要修改,否则出现如下错误:
Error:
ORA:-12545:因目标主机和对象不存在,连接失败
错误代码ORA-12545表示网络连接串(即tnsnames.ora文件中的HOST处)中使用的机器名和IP地址不存在,重新修改和重新连接即可。
Oracle9i Net Service的向导工具进行配置:
选择此选项以创建、修改、删除或重命名监听程序。监听程序是服务器中接收和响应客户机对数据库的连接请求的进程。使用配置有相同协议地址的连接描述符的客户机可以向监听程序发送连接请求。
Oracle9i net Manager:
可以定义简单名称来表示服务的位置,例如一个数据库,这些简单名称映射为连接描述符。他们包含服务的网络标识和位置。
错误信息ORA-12560表示,在操作系统中找不到所定义的实例,在Oracle9i中,如果出现了此类错误,一般来说出错原因有两个,一是实例名被错误的修改,二是Oracle的服务没有正常启动。
Oracle常见错误代码的分析与解决之二
ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?]
产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。
解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误。
一个报错例子如下:
ORA-00600: internal error code, arguments: [1237], [], [], [], [], [], [], []
相应的英文如下:
Cause:This is a catchall internal error message for Oracle program exceptions.It indicates that a process has met a low-level,unexpected condition.Various causes of this message include:
Time-outs(超时)
File corruption(文件太老)
Failed data checks in memory(内存检索失败)
Hardware,memory,or I/O errors(硬件、内存或者磁盘错误)
Incorrectly restored files(错误的重建文件)
ORA-03113:end-of-file on communication channel
产生原因:通讯不正常结束,从而导致通讯通道终止
解决方法:1>.检查是否有服进程不正常死机,可从alert.log得知
2>.检查sql*Net Driver是否连接到ORACLE可执行程序
3>.检查服务器网络是否正常,如网络不通或不稳定等
4>.检查同一个网上是否有两个同样名字的节点
5>.检查同一个网上是否有重复的IP地址
相应的英文如下:
Cause:An unexpected end-of-file was processed on the communication channel.The problem could not be handled by the Net8,two task,software.This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally,or if there is a physical failure of the interprocess communication vehicle,that is,the network or server machine went down.
Action:If this message occurs during a commection attempt,check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server.If the message occurs after a connection is well established,and the error is not due to a physical failure,check if a trace file was generated on the server at failure time.Existence of a trace file may suggest an Oracle internal error that requires the assistance of customer support.
ORA-00942:table or view does not exist
产生原因:这是由于装载的表或视图不存在,多半是CATEXP.SQL还没有运行,无法执行Export视图,如果CATEXP.SQL已经运行,则可能是版本错误。
解决方法:因为Import和Export共享的一些视图是通过运行CATEXP.SQL来装载的(它们具有相同的视图),并不生成单独的CATEXP.SQL,因而造成视图与Export代码不同步,较难保持彼此之间的兼容,用户就必须建立自己的Export应用,从而避免ORA-00942的错误。
相应的英文如下:
Cause:The table or view entered does not exist,a synonym that is jnot allowed here was used,or a view was referenced where a table is required.Existing user tables and views can be listed by querying the data dictionary.Certain privileges may required to access the table.If an application returned this message,the table the application tried to access does not exist in the database,or the application does not have access to it.
Action:Check each of the following:
The spelling of the table or view name.
That a view is not specified where a table is required
That an existing table or view name exists.
Contact the database administrator if the table needs to be created or if user or application priviledes are required to access the table.
Also, if attempting to access a table or view in another schema,make certain thecorrect schema is referenced and that access to the object is granted.
ORA-12560 协议适配器错误:
有关ORA-12560: TNS:协议适配器错误 的问题
①.检查Terminal Service, 远程桌面是不是起因
②.环境变量set oracle_sid=需要的服务名
③.listener.ora, tnsnames.ora等内机器名或者IP地址是否正确
④.netstat –a检查端口是否被占用
⑤.检查注册表HKEY_LOCAL_MACHINE/Software/Oracle/Home0新增字符串USE_SHARED_SOCKET=TRUE, 重新启动服务
ERROR:
ORA-01031: insufficient privileges
权限不足 修改相应权限即可。