首页 > 代码库 > Oracle常见错误及解决方法
Oracle常见错误及解决方法
环境:LINUX下的oracle数据库10g
ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏。如果是前者,使用数据库安装的用户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 =http://www.mamicode.com/
(SERVICE_NAME = hk06) #这里的数据库的SID
)
)
- 上传tnsnames.ora
如果是使用上传方法的话,可以在windows下安装oracle的客户端,然后再利用Net Configuration Assistant工具来配置一个;
ORA-12154:TNS:能解析服务名 原因:ORACLE的网络服务名没有正确配置。请使用“Net Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。
ORA-01017:用户名或者密码错误被拒绝,检查数据库的密码和=输入的密码是否一致;
ORA-01031:使用用户没有执行操作的权限;更换用户或者使用root更改文件权限(前者优先);
ORA-12520: TNS: 监听程序无法找到,我的是因为$oracle_home/db_1/network/admin/下压根就没有tnsnames.ora文件;同样的提示网上别人遇到的问题是:http://www.cnblogs.com/jerryxing/archive/2012/12/07/2807478.html,
Oracle常见错误及解决方法