1。在一个数据库中有两个存储过程编译时就死在那儿,和通常情况下的过程有错误提示相关信息不同,没有任何提示(一直挺在那儿,过不去),但可以把以前同名过程drop掉。
2。在分析这两个过程用的几个表也分析不了。
3。shudown immediate数据库停不下来,所有外部session都已停掉。
4。其他过程和表都没有此问题。
5。数据库已经重起n遍(shutdown abort,startup)
6。操作系统AIX4.3,数据库ORACLE920
2。在分析这两个过程用的几个表也分析不了。
3。shudown immediate数据库停不下来,所有外部session都已停掉。
4。其他过程和表都没有此问题。
5。数据库已经重起n遍(shutdown abort,startup)
6。操作系统AIX4.3,数据库ORACLE920
解决方案 »
- oracle 数据类型问题
- oracle复制并修改数据
- 紧急求救!!!ORA-14074: 分区界限必须调整为高于最后一个分区界限
- 怎样将文件的批量数据导入到oracle数据库?
- oracle建表时有没有可视化的工具,如果想设置为自增字段应该如何设置呢?
- 如何直接将excle中的数据导入oracle中,怎样导出到excle中?
- 请问在SQL PLUS中执行一个存储过程,其中有问题,请问用什么命令现实是多少行出错,或者错误信息?
- pm1.4 512 4200rpm硬盘的bb能不能跑动oracle9
- 请教汉字显示的问题
- 重新开贴:自增长字段问题!!!!按beckhambobo建议改了一下,还是不行!
- Oracle Streams是干什么的呀!谁有应用案例?
- OMS中作业为什么执行失败?
再起数据库,等回滚事务停止后,再建立存储过程
1、对于你的问题,最简单的办法,是在你down库后,把你的机器重启一下,这决不是搜注意。
2、你的存储过程一编译就死,是因为你的存储过程被其它session给锁了,如果你有决对的耐心,编译器一定会报一个类似"不能锁定存储过程"的错误。其实处理起来很简单,如下:
a、select * from v$access where object='YOUR PROCEDURE NAME';
记住相应的sid,这时假设其为sid1
b、select sid,serial# from v$session where sid=sid1
c、当然是用alter system kill session 'sid,serial#';杀掉锁过程的进程了。
3、表分析不了也可以用类似2的方法处理。
4、shutdown immediate一定可以把你的库down下来,不过你也要有些耐心,在做shutdown immediate之前,建议把你的应用停下来,或把除oracle的几个smon等进程外,其余的kill -9掉,这样做shutdown immediate就快了。
不过,如果你的库有问题,shutdown immediate 宕库不下来就另说了。
5、重启库N遍不解问题,我认为是共享内存引起的
当你down 库之后,执行一下如下操作:
a、#ipcs -pmb
看共享内存中oracle的部分是否在
b、如在,用如下命令处理一下
#ipcrm -m a中的id号
或 #ipcrm -M a中的KEY值
这和重新起动一下主机的效果一样。再就是祝你好运了!
我也碰到了这种问题,解决了,谢谢!!