常见错误:
1.Got minus one from a read call异常
2.The Network Adapter could not establish the connection
3.端口被占用
4.用户密码错误
5.主机名错误
下面详解各种错误原因以及解决方法:
1.Got minus one from a read call异常
原因:
1.数据库连接满了,扩大数据库连接池
2.所登录的机子IP不在sqlnet.ora内,加入后重启listerner即可
3:数据库负载均衡时,指定了(SERVER=DEDICATED),去除这个即可
4:网管在Oracle配置上限制了该台机子访问Oracle的权限,这个问题基本和2类似,也是修改Oracle配置即可
解决方法:
Win+r 打开运行,输入services.msc 查看其中开启的服务,关闭不必要的服务(特别是其他数据库的服务),测试是否能连接,若不能连接,将没有必要启动的服务设置为手动启动方式,重启计算机
针对第二种和第四钟情况,你只需打开sqlnet.ora(在NETWORK\ADMIN路径下)文件查看是否有如下内容:
cp.validnode_checking=yes
#允许访问的ip
tcp.invited_nodes =(ip1,ip2,……)
#不允许访问的ip
tcp.excluded_nodes=(ip1,ip2,……)
如果有你的ip,去掉即可。
针对第三种情况:
打开trsname.ora(一般和sqlnet.ora在同一路径)文件,将里面的SERVER = DEDICATED配置去掉
如果你的数据库配置是MTS,不指定DEDICATED,就是SHARED模式
如果不是,将DEDICATED改为SHARED
2.The Network Adapter could not establish the connection
主要原因:
监听服务的问题(监听无法启动)
在实验室很多机子因为各种各样的原因,导致监听服务无法启动,这时候我们需要重建监听服务或者修改注册表
重建监听服务:
如上图所示
先将服务删除,然后再增加服务,跟着提示一步一步默认做,这里就不一一截图说明了。
修改注册表:
开始–>运行REGEDIT –>进入注册表找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleXXXTNSListener
发现ImagePath关键值没有了,新建一个名为ImagePath的可扩充字符串值,编辑字符串的数值数据为:Oracle安装路径\BIN\TNSLSNR
3.端口被占用
原因:数据监听服务的1521端口被其他程序占用
解决方法:这时候我们需要kill这个进程,通过端口号找到对应的进程,然后kill这个进程,这个不懂的朋友,请移步:
http://www.hangger.com/index.php/archives/254
4.用户密码错误
这里建议使用sys 或者system用户登陆,
如果不记得sys用户的密码,在本机操作,使用如下方法修改sys用户的密码:
sqlplus /nolog;
conn / as sysdba;
alter user sys identified by orcl;
5.主机名错误
这里如果服务器和客户端在同一台机器上面,这里建议所有的主机名全部写localhost