oracle数据库表死锁或者存储过程,包无法编辑解决方法
来源:互联网 发布:淘宝详情页多大尺寸 编辑:程序博客网 时间:2024/06/06 00:08
一般数据库中存储过程无法编辑,包无法编辑,导致的原因都是因为表的死锁,解决方法
1.一般情况只部署在一台机器的数据库可以单独杀死实例视图里所锁死的表即可.
--查看该实例锁死对象
SELECT s.username,
decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
o.owner,
o.object_name,
o.object_type,
s.sid,
s.serial#
FROM v$session s, v$lock l, dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL
AND O.OWNER='GDEGIS'--用户名
2.考虑到可能有些服务器上用的不只是一台机,可能用的是rac部署的多台机器。
所以首先将数据库所有的死锁表查询出来,查询数据库中的全局视图
--查看全局锁死对象
SELECT s.username,
decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
o.owner,
o.object_name,
o.object_type,
s.sid,
s.serial#
FROM gv$session s, gv$lock l, dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL
AND O.OWNER='GDEGIS'--用户名
可能你会发现有时候会报“会话ID不存在”的错误.
对比实例中和全局锁死的表数量
实例视图里没有的而全局有的死锁表,说明不存在当前实例节点,可以通过手动配置TNS登录到另外节点杀死锁死的会话
alter system kill session 'sid,serial;
一般通过这些就可以完全解决数据库表死锁问题,再不行只能登录到OS级杀死进程!
3.关于存储过程或者包无法编辑的问题一般都是由于表死锁造成的。比如数据库中的一个JOB一直在执行一个任务操作此表,
1.查看正在运行的job:
select * from dba_jobs_running;
2.查询job对应的s.sid,s.serial#:
select s.sid,s.serial# from v$session s where s.sid in (select sid from dba_jobs_running);
3.停止任务会话:
alter system kill session 'sid,serial;
4.断开JOB。
5.最后删除在执行的JOB。
注意:任务会话结束后,任务不一定就停止运行了,必须删除JOB。再通过查询死锁表语句查看是否有锁表,
假如没有,此时应该可以对存储过程或者包重新编辑了,或者在调用脚本杀除锁表会话。
- oracle数据库表死锁或者存储过程,包无法编辑解决方法
- ORACLE 存储过程死锁
- Oracle数据库死锁解决方法
- oracle数据库死锁解决方法
- Oracle 存储过程 无法编译 解决方法
- Oracle 存储过程 无法编译 解决方法
- Oracle 存储过程 无法编译 解决方法
- oracle 存储过程无法编译解决方法
- Oracle 存储过程 无法编译 解决方法(转)
- 解决oracle存储过程死锁问题
- Oracle数据库(触发器、存储过程、函数、包)
- Oracle数据库(触发器、存储过程、函数、包)
- 查看数据库死锁情况的存储过程
- 查看数据库死锁的存储过程SP_WHO_LOCK
- Oracle数据库-存储过程
- Oracle 数据库存储过程
- Oracle数据库-存储过程
- Oracle数据库--存储过程
- Linux下修改tomcat内存
- php高级程序员面试题
- miniui数据集显示时可以加载自定义字段内容
- Android UI开发第四十二篇——实现实现易信的圆形图像和对话列表的图像显示部分
- 摘要:阿里云聚无线联合高德、友盟、科大讯飞等,为开发者提供一站式服务。成为扶持认证开发者,就能享受三个月免费云资源。
- oracle数据库表死锁或者存储过程,包无法编辑解决方法
- qt鼠标事件总结 (转)
- cygwin下载、安装教程和解决CDT出现“program 'make' is not found in path”bug
- 马伊俐父亲:请放过我的孩子
- 关于插件编程
- win7 64位 VS2010调试提示“ORA-12154: TNS: 无法解析指定的连接标识符”的解决方法
- 白盒测试学习总结1
- java 单例模式的优化与扩展
- CVS 项目出现两个版本号