连接oracle数据库 报 ora-12547错误

时间:2022-05-28 08:41:49

oracle版本:11G
服务器:window 2003

情况:
   先前一直用着没有问题,后来因为技术需要对2003服务器重启了一次,重启过后PLSQL也能正常登陆,程序访问数据库也没有问题。
  后来因为工作需要,出差在外,过了半个来月回到公司,用PLSQL登陆时报ora-12547:丢失连接 错误,程序也不能访问数据库。使用telnet 1521能成功,使用tnsping,告知TNS-12571:包写入程序失败。

下面截图是我在登陆OEM的截图:https://oracle11g:1158/em/

30 个解决方案

#1


连接oracle数据库 报 ora-12547错误补上截图:

#2


1、查看服务器日志是否有警告或错误信息
2、查看在服务器上是否能正常连接数据库
3、核实网络或防火墙方面最近是否有变动

#3


看看告警日志,看看 oracle进程的 内存,cpu占用量。 

#4


检查实例运行情况;检查网络

#5


引用 2 楼 bw555 的回复:
1、查看服务器日志是否有警告或错误信息
2、查看在服务器上是否能正常连接数据库
3、核实网络或防火墙方面最近是否有变动


1.由于我不是专业的DBA,只是开发人员,所以还请您告诉我,在哪查看日志信息。
2.我的这些操作都是在服务器上进行了,连不上。
3.网络跟防火墙没有变动。

#6


引用 3 楼 huangdh12 的回复:
看看告警日志,看看 oracle进程的 内存,cpu占用量。 


由于我只是一开发人员,您能够详细地告诉我如何查看高精日志,oracle进程内存吗 ?谢谢

#7


引用 4 楼 wildwave 的回复:
检查实例运行情况;检查网络


能够详细点吗,有可操作性的详细建议。我知道这要求有点过分,但是我真没法子了,网上说的建议我都试了一遍,不行。谢谢了

#8


是不是服务没启动啊,服务器上执行下面语句,把服务启动一下
sqlplus / as sysdba
startup

失败的话,看看有啥提示信息

#9


是这个吗,文件名:sqlnet.log

连接oracle数据库 报 ora-12547错误

#10


引用 8 楼 bw555 的回复:
是不是服务没启动啊,服务器上执行下面语句,把服务启动一下
sqlplus / as sysdba
startup

失败的话,看看有啥提示信息


这个命令是在哪里敲入的,平台是啥 ?

#11


cmd命令行执行的

#12


敲完后出现了如下界面。
连接oracle数据库 报 ora-12547错误

#13


监听貌似也没起来
使用lsnrctl status查看监听状态
没启动的话lsnrctl start 启动监听程序

#14


引用 12 楼 JAVA_LiuTe 的回复:
敲完后出现了如下界面。
连接oracle数据库 报 ora-12547错误

命令行执行,不是进入sqlplus执行

#15



引用 11 楼 bw555 的回复:
cmd命令行执行的

输入完后出现如下提示:ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它

#16


引用 13 楼 bw555 的回复:
监听貌似也没起来
使用lsnrctl status查看监听状态
没启动的话lsnrctl start 启动监听程序

敲完后出现如下界面:
连接oracle数据库 报 ora-12547错误


#17


引用 15 楼 JAVA_LiuTe 的回复:
Quote: 引用 11 楼 bw555 的回复:

cmd命令行执行的

输入完后出现如下提示:ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它

用sqlplus连接你应用的用户能连上吗?不能连接的话将服务关闭,重新启动吧
shutdown immediate
startup
另外参考13#的方式检查监听是否正常

#18


看样子是监听的问题,参考
Oracle 10201 lsnrctl status卡住问题解决

#19


不是操作系统是2003 吗?  直接在服务里面  把监听以及oracle 服务都重启,再不行,重建一下监听 再试。 

#20


引用 17 楼 bw555 的回复:
Quote: 引用 15 楼 JAVA_LiuTe 的回复:


Quote: 引用 11 楼 bw555 的回复:

cmd命令行执行的

输入完后出现如下提示:ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它

用sqlplus连接你应用的用户能连上吗?不能连接的话将服务关闭,重新启动吧
shutdown immediate
startup
另外参考13#的方式检查监听是否正常

连接oracle数据库 报 ora-12547错误

操作完后,在数据库服务器上用PLSQL登陆报ora-12571 包写入程序失败。

#21


引用 19 楼 huangdh12 的回复:
不是操作系统是2003 吗?  直接在服务里面  把监听以及oracle 服务都重启,再不行,重建一下监听 再试。 

我把oracle重启了,监听也重启了,上楼是操作完后查看到的监听状态,看样子监听是起来了,但是在数据库服务器上使用PLSQL登陆oracle还是报错,ora-12571 包写入程序失败。

#22


查看的监听程序的日志文件

<msg time='2014-11-20T11:49:19.234+08:00' org_id='oracle' comp_id='tnslsnr'
 type='UNKNOWN' level='16' host_id='ORACLE11G'
 host_addr='192.168.66.52'>
 
<txt>
TNS-12560: TNS: 协议适配器错误
 
TNS-00530: 协议适配器错误
  32-bit Windows Error: 53: Unknown error
   
TNS-12518: TNS: 监听程序无法分发客户机连接
    
TNS-12571: TNS: 包写入程序失败
     
TNS-12560: TNS: 协议适配器错误
      
TNS-00502: 参数无效
       32-bit Windows Error: 22: Invalid argument
 
</txt>

</msg>

#23


host=oracle11g?
oracle11g是你的主机名吗?host后面应该是ip地址或主机的名称

#24


引用 23 楼 bw555 的回复:
host=oracle11g?
oracle11g是你的主机名吗?host后面应该是ip地址或主机的名称

这是oracle服务器的主机名。

#25


感觉plsql developer没有安装好,重新安装配置一下。

#26


引用 25 楼 arlen1990 的回复:
感觉plsql developer没有安装好,重新安装配置一下。


我这个PLSQL是直接安装在oracle服务器上的,java开发的程序访问也不行。

#27


先不管PLSQL呢,你用sqlplus连接下看能不能脸上,先确定是不是数据库服务的问题

#28


引用 27 楼 bw555 的回复:
先不管PLSQL呢,你用sqlplus连接下看能不能脸上,先确定是不是数据库服务的问题

我删除了先前的监听,现在重新建立了监听。现在正在启动监听,还能启动起来。

#29


引用 28 楼 JAVA_LiuTe 的回复:
Quote: 引用 27 楼 bw555 的回复:

先不管PLSQL呢,你用sqlplus连接下看能不能脸上,先确定是不是数据库服务的问题

我删除了先前的监听,现在重新建立了监听。现在正在启动监听,还能启动起来。

还没启动起来,用sqlplus登陆还没进去。

#30


引用 27 楼 bw555 的回复:
先不管PLSQL呢,你用sqlplus连接下看能不能脸上,先确定是不是数据库服务的问题


sqlplus能够登陆进去,也能查询表的数据信息,但是现在PLSQL,还有我写的java程序依然不能访问,PLSQL登陆依然报ora-12571 包写入程序失败。 

这是啥原因呢。

#1


连接oracle数据库 报 ora-12547错误补上截图:

#2


1、查看服务器日志是否有警告或错误信息
2、查看在服务器上是否能正常连接数据库
3、核实网络或防火墙方面最近是否有变动

#3


看看告警日志,看看 oracle进程的 内存,cpu占用量。 

#4


检查实例运行情况;检查网络

#5


引用 2 楼 bw555 的回复:
1、查看服务器日志是否有警告或错误信息
2、查看在服务器上是否能正常连接数据库
3、核实网络或防火墙方面最近是否有变动


1.由于我不是专业的DBA,只是开发人员,所以还请您告诉我,在哪查看日志信息。
2.我的这些操作都是在服务器上进行了,连不上。
3.网络跟防火墙没有变动。

#6


引用 3 楼 huangdh12 的回复:
看看告警日志,看看 oracle进程的 内存,cpu占用量。 


由于我只是一开发人员,您能够详细地告诉我如何查看高精日志,oracle进程内存吗 ?谢谢

#7


引用 4 楼 wildwave 的回复:
检查实例运行情况;检查网络


能够详细点吗,有可操作性的详细建议。我知道这要求有点过分,但是我真没法子了,网上说的建议我都试了一遍,不行。谢谢了

#8


是不是服务没启动啊,服务器上执行下面语句,把服务启动一下
sqlplus / as sysdba
startup

失败的话,看看有啥提示信息

#9


是这个吗,文件名:sqlnet.log

连接oracle数据库 报 ora-12547错误

#10


引用 8 楼 bw555 的回复:
是不是服务没启动啊,服务器上执行下面语句,把服务启动一下
sqlplus / as sysdba
startup

失败的话,看看有啥提示信息


这个命令是在哪里敲入的,平台是啥 ?

#11


cmd命令行执行的

#12


敲完后出现了如下界面。
连接oracle数据库 报 ora-12547错误

#13


监听貌似也没起来
使用lsnrctl status查看监听状态
没启动的话lsnrctl start 启动监听程序

#14


引用 12 楼 JAVA_LiuTe 的回复:
敲完后出现了如下界面。
连接oracle数据库 报 ora-12547错误

命令行执行,不是进入sqlplus执行

#15



引用 11 楼 bw555 的回复:
cmd命令行执行的

输入完后出现如下提示:ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它

#16


引用 13 楼 bw555 的回复:
监听貌似也没起来
使用lsnrctl status查看监听状态
没启动的话lsnrctl start 启动监听程序

敲完后出现如下界面:
连接oracle数据库 报 ora-12547错误


#17


引用 15 楼 JAVA_LiuTe 的回复:
Quote: 引用 11 楼 bw555 的回复:

cmd命令行执行的

输入完后出现如下提示:ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它

用sqlplus连接你应用的用户能连上吗?不能连接的话将服务关闭,重新启动吧
shutdown immediate
startup
另外参考13#的方式检查监听是否正常

#18


看样子是监听的问题,参考
Oracle 10201 lsnrctl status卡住问题解决

#19


不是操作系统是2003 吗?  直接在服务里面  把监听以及oracle 服务都重启,再不行,重建一下监听 再试。 

#20


引用 17 楼 bw555 的回复:
Quote: 引用 15 楼 JAVA_LiuTe 的回复:


Quote: 引用 11 楼 bw555 的回复:

cmd命令行执行的

输入完后出现如下提示:ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它

用sqlplus连接你应用的用户能连上吗?不能连接的话将服务关闭,重新启动吧
shutdown immediate
startup
另外参考13#的方式检查监听是否正常

连接oracle数据库 报 ora-12547错误

操作完后,在数据库服务器上用PLSQL登陆报ora-12571 包写入程序失败。

#21


引用 19 楼 huangdh12 的回复:
不是操作系统是2003 吗?  直接在服务里面  把监听以及oracle 服务都重启,再不行,重建一下监听 再试。 

我把oracle重启了,监听也重启了,上楼是操作完后查看到的监听状态,看样子监听是起来了,但是在数据库服务器上使用PLSQL登陆oracle还是报错,ora-12571 包写入程序失败。

#22


查看的监听程序的日志文件

<msg time='2014-11-20T11:49:19.234+08:00' org_id='oracle' comp_id='tnslsnr'
 type='UNKNOWN' level='16' host_id='ORACLE11G'
 host_addr='192.168.66.52'>
 
<txt>
TNS-12560: TNS: 协议适配器错误
 
TNS-00530: 协议适配器错误
  32-bit Windows Error: 53: Unknown error
   
TNS-12518: TNS: 监听程序无法分发客户机连接
    
TNS-12571: TNS: 包写入程序失败
     
TNS-12560: TNS: 协议适配器错误
      
TNS-00502: 参数无效
       32-bit Windows Error: 22: Invalid argument
 
</txt>

</msg>

#23


host=oracle11g?
oracle11g是你的主机名吗?host后面应该是ip地址或主机的名称

#24


引用 23 楼 bw555 的回复:
host=oracle11g?
oracle11g是你的主机名吗?host后面应该是ip地址或主机的名称

这是oracle服务器的主机名。

#25


感觉plsql developer没有安装好,重新安装配置一下。

#26


引用 25 楼 arlen1990 的回复:
感觉plsql developer没有安装好,重新安装配置一下。


我这个PLSQL是直接安装在oracle服务器上的,java开发的程序访问也不行。

#27


先不管PLSQL呢,你用sqlplus连接下看能不能脸上,先确定是不是数据库服务的问题

#28


引用 27 楼 bw555 的回复:
先不管PLSQL呢,你用sqlplus连接下看能不能脸上,先确定是不是数据库服务的问题

我删除了先前的监听,现在重新建立了监听。现在正在启动监听,还能启动起来。

#29


引用 28 楼 JAVA_LiuTe 的回复:
Quote: 引用 27 楼 bw555 的回复:

先不管PLSQL呢,你用sqlplus连接下看能不能脸上,先确定是不是数据库服务的问题

我删除了先前的监听,现在重新建立了监听。现在正在启动监听,还能启动起来。

还没启动起来,用sqlplus登陆还没进去。

#30


引用 27 楼 bw555 的回复:
先不管PLSQL呢,你用sqlplus连接下看能不能脸上,先确定是不是数据库服务的问题


sqlplus能够登陆进去,也能查询表的数据信息,但是现在PLSQL,还有我写的java程序依然不能访问,PLSQL登陆依然报ora-12571 包写入程序失败。 

这是啥原因呢。