1. 现象描述:
昨天,现场的同事反映周末发送给他的存储过程在部署时造成了sqlplus长时间无响应,存储过程在现场无法部署。
2. 问题分析:
a.是否为版本问题。
由于开发时采用的数据库版本为10.2,现场运行的数据库版本为10.1,首先怀疑是否由于版本引起该现象,紧接着该可能性被排除,因为先前工程初始时的存储过程部署无任何问题。
b.是否为新写程序有问题
同事提出是否由于此过程本身的问题。这个提议被否决,程序有问题不太可能造成这种现象。
c.怀疑数据库上有异常锁。
重启数据库,再次尝试,问题依旧。
经过以上分析,并尝试使用其他工具部署,结果相同。
3. 进一步分析:
无奈,只好远程拨号,查看数据库的日志,发现无异常,且同时其他用户登录数据库也无任何问题。在本地按照安装文档重新找机器部署,也未出现该现象。让家里的同事按照文档重新部署,结果发现现场部署时未正确建立dblink,修正dblink后,重新部署存储过程,未出现该现象。
4. 结论:
由于新增存储过程中大量使用了同义词,而这些同义词是通过dblink建立的,导致在部署编译存储过程时错误太多而造成sqlplus的“假死”。
Oracle 存储过程部署时sqlplus无响应问题记录
最新推荐文章于 2023-03-21 11:58:21 发布