Oracle常见错误及解决方法

环境:LINUX下的oracle数据库10g

 

ORA12541/ORA12514TNS:没有监听器 原因:没有启动监听器或者监听器损坏如果是前者,使用数据库安装的用户oracle(这里oracle用户是指Linux用户,非oracle或者root的其他用户可能没有权限操作安装目录下的文件)进入Linux系统,然后:

[oracle@ORACLE ~]$ lsnrctl status    #查看监听器的状态
[oracle@ORACLE ~]$ lsnrctl status    #如果没有启动那就使用此命令启动监听器

 

如果是后者,因为我还知不道Linux下有没有工具配置TNS,所以只能通过oracle用户(这里是指Linux用户)手动编辑文件或者是通过Xshell或者是SSH软件来上传文件,这里要注意的是oracle10g版本(不管是客户端还是服务器),它的TNS配置文件在目录“$ORACLE_BASE/product/11.2.0/db_1/network/admin/”下没有,因为倒是此文件夹下的“sample”文件夹下有一个tnsnames.ora;但是不管手动编辑还是上传tnsnames.ora文件,都是将文件存放在“$ORACLE_BASE/product/11.2.0/db_1/network/admin/"(此目录只有一个sqlnet文件和一个文件夹)目录下;

  

 

  • 这里给一个实例:

S1 =         #这个时间监听名称,不要跟SID实例名称混了;
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE)(PORT = 1521))  #HOST = ORACLE这里的RACLE表示主机名,有的是具体的IP地址(广域网IP,局域网IP,或者是127.0.0.1)
    )
    (CONNECT_DATA =
      (SERVICE_NAME = hk06)  #这里的数据库的SID
    )
  )

  •   上传tnsnames.ora

如果是使用上传方法的话,可以在windows下安装oracle的客户端,然后再利用Net Configuration Assistant工具来配置一个;

 

 

补充——可以通过命令:#netca 来调用“Net Configuration Assistant”工具,资料来自:这里

 

 

ORA12154TNS:能解析服务名 原因:ORACLE的网络服务名没有正确配置。请使用“Net Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。

 

ORA-01017:用户名或者密码错误被拒绝,检查数据库的密码和=输入的密码是否一致;

ORA-01031:使用用户没有执行操作的权限;更换用户或者使用root更改文件权限(前者优先);

 

ORA-12520/ORA-12516: ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄,这个是解决之道,因为我是用xml解析数据,所以会导致连接数过多!

 

posted @ 2014-12-26 17:41  SchrodingerCat  阅读(413)  评论(0编辑  收藏  举报