当前位置:首页 >> 计算机软件及应用 >>

oracle 数据库 快速解决实时生产库中,包不能编译,死锁等问题


快速解决实时生产库中,包不能编译,死锁等问题

1、使用 PLSQL 登陆该用户,执行如下 SQL,查看一下是否有 oracle 自己的进程. Select a.Username, a.SID, a.SERIAL# ,b.Sql_Text,c.spid From V$Session a, V$Sqlarea b,v$process c Where a.Username Is Not Null And (a.Sql_Address = b.Address Or a.Prev_Sql_Addr = b.Address) and a.PADDR=c.ADDR and c.SPID in( select spid from v$session s,v$process p where s.paddr=p.addr and s.sid in( select sid from v$session_wait )) 2、如果没有 ORACLE 进程则执行 Select ' kill -9 '|| spid From V$Session a, V$Sqlarea b,v$process c Where a.Username Is Not Null And (a.Sql_Address = b.Address Or a.Prev_Sql_Addr = b.Address) and a.PADDR=c.ADDR and c.SPID in( select spid from v$session s,v$process p where s.paddr=p.addr and s.sid in( select sid from v$session_wait )) 3、 先关掉系统使用的服务如 WEBSERVICE, 使用 telnet 工具或 SecureCRT 4.1 工具登陆到 unix 中的 oracle 用户下,拷贝粘贴如下命令,如有双机,最好两个机器都执行一下该杀进程的命令. 执行成功后则开始服务如(webservice),这样只快速解决由于包死锁带来的问题. 备注:改涉及医保接口的表结构或编码医保接口相关包,最好能把 HIS 或接口 WEBSERVICE 停 止后才进行修改,或晚上交易少的情况下进行变动

By wat 8/21/2009

解决行锁 select a.sql_text,b.sid,b.MACHINE,b.PROGRAM,b.serial#

from v$sqlarea a,v$session b,v$locked_object and c where a.address=b.sql_address b.sid=c.SESSION_ID

alter

system

kill

session

'180,

29757'

;

查 SPID select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.status='KILLED' select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid='180' 用户 root 登陆后,进行 kill -9 spid;

一些 ORACLE 中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。 但是 shutdown immediate 又怕可能进程杀不掉会一直停留在 shutdown immediate,直接 shutdown abort 又怕损坏数据库。 现在提供一种方法解决这种问题,那就是在 ORACLE 中杀不掉的,在 OS 一级再杀。 一些 ORACLE 中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。 但是 shutdown immediate 又怕可能进程杀不掉会一直停留在 shutdown immediate,直接 shutdown abort 又怕损坏数据库。 现在提供一种方法解决这种问题,那就是在 ORACLE 中杀不掉的,在 OS 一级再杀。

1.下面的语句用来查询哪些对象被锁: SELECT S.USERNAME,S.OSUSER,S.SID,S.SERIAL#,P.SPID FROM V$SESSION S,V$PROCESS P WHERE S.PADDR=P.ADDR AND S.USERNAME IS NOT NULL;

2.下面的语句用来杀死一个进程: alter system kill session 'sid,serial#';

【注】以上两步,可以通过 Oracle 的管理控制台来执行。 如果出现题目的错误,可以 select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.status='KILLED' ;

3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在 os 一级再杀 死相应的进程(线程) ,首先执行下面的语句获得进程(线程)号: select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=33 (33 就是上面的 sid)

4.在 OS 上杀死这个进程(线程) : 1)在 unix 上,用 root 身份执行命令: #kill -9 12345(即第 3 步查询出的 spid) 2)在 windows(unix 也适用)用 orakill 杀死线程,orakill 是 oracle 提供的一个可执行命令,语法为: orakill sid thread 其中: sid:表示要杀死的进程属于的实例名 thread:是要杀掉的线程号,即第 3 步查询出的 spid。 例:c:>orakill orcl 12345 Ps:这里要注意的是 kill OS 进程是在服务端操作,而不是你程序所在客户机。


相关文章:
...快速解决实时生产库中,包不能编译,死锁等问题.doc
oracle 数据库 快速解决实时生产库中,包不能编译,死锁等问题_计算机软件及应用_IT/计算机_专业资料。oracle 数据库快速解决实时生产库中,包不能编译,死锁等问题 ...
Oracle包被锁定的原因分析及解决方案.doc
无法编译或编译时会导致 PL/SQL 无法响应的问题。 ...可以得出结论:编译包长时间无 响应说明产生了死锁。...(1)在数据库中,杀掉 ORACLE 进程: ALTER SYSTEM ...
Oracle常见死锁发生的原因以及解决方法.doc
Oracle常见死锁发生的原因以及解决方法_电脑基础知识_IT/计算机_专业资料。简单介绍oracle数据库运行过程中死锁产生的原因及解决办法! ...
Oracle数据库死锁问题研究.pdf
文中介绍了 Oracle 数据库锁机制和死锁发生的原因,Oracle 数据库检测死锁采用的相关视图? 详细叙述了 SQL 语句检测 死锁?死锁的定位方法和解决数据库死锁的方法? ...
并发访问ORACLE数据库的数据死锁分析和解决措施李雁敏.pdf
并发访问ORACLE数据库的数据死锁分析和解决措施李雁敏...一个事务要访问数据库中的数据, 首先要对这 个...
如何解决oracle数据死锁.txt
如何解决oracle数据死锁_计算机软件及应用_IT/计算机_专业资料。如何解决oracle数据死锁问题 一、数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有...
并发访问ORACLE数据库的数据死锁分析和解决措施_论文.pdf
阐述了并发访问大型数据库ORACLE时,对出现的数据死锁现象进行了理论性分析,并采用了手工和编制脚本等方法,提出了解决ORACLE的数据死锁及并发性处理的一般办法。 ...
【论文】Oracle数据库死锁问题研究.pdf
Oracle数据库死锁问题研究_计算机软件及应用_IT/计算机_专业资料。第2
数据库死锁处理方法整理.txt
数据库死锁处理整理 1.MSSQL、DB2、Oracle之类的...快于用户手动响应查询的速度,若用户不能及时反馈,则...的计算模型,或者将复杂的业务置于编译存储过程中执行...
数据库巡检内容 初步版本!.xls
检查Oracle实例状态 在正常情况下,数据库中所有对象状...的对象,则需要进一步检 查,确定是否需要重新编译。...需要将导致死锁的SQL反馈给开发 人员,以进一步解决。...
杀死Oracle数据库死锁进程的具体方法.doc
杀死Oracle数据库死锁进程的具体方法_计算机软件及应用_IT/计算机_专业资料。杀死 Oracle 数据库中客户端用户连接进程分类: 数据库管理2009-12-19 14:28 315人阅读...
数据库死锁的解决办法.txt
数据库死锁解决办法_计算机软件及应用_IT/计算机_专业资料。as400db2数据库...(其中24,111分别是上面查询出的sid,serial#) 【注】以上两步,可以通过Oracle...
Oracle数据库巡检方案.doc
Oracle 数据库巡检维护方案 一、巡检维护的目的为了...没有死锁 日巡检 2.3 日巡检 2.4 检查数据 文件...对应用系统产生的无效对象进行检查 并编译。包括:...
Oracle数据库性能优化最佳实践_图文.pdf
档案库 SQL语句调优 Oracle性能优化解决方案 数据库...视图中的提交 数和回退数,磁盘数 使用软件包的...死锁错误和超时错误 不完整的检查点 检查点的开始...
Oracle数据库设计规范建议.doc
Oracle数据库 1 数据对象的命名规范 1.1 通用规范...容易造成死锁,应该避免,单个事务 使用的数据库和系统...jad反编译执行文件 element编辑器 element支持库-ui ...
201603考试批次《Oracle数据库开发》(结课作业).doc
‘要存储在变量中的值过大’) END; 2、 要执行 pack_me 包中的 order_...0:另一个数据库诊断进程,负责检测 Oracle 数据库中的挂起(hang)和死锁处理...
Oracle数据库语句大全.doc
从而形成死锁 2.数据库对象 oracle 数据库对象又称...使用 PL/SQL 可用于创建存储过程,触发器,程序包,...,它是命名的 PL/SQL 块,编译并存储在数据库中。...
死锁问题及其解决方法.doc
(2) ORACLE 9.2.0 ORACLE 9.2.0在发生死锁时,其生成的trace文件中的信息比 ...进行重编译; 四、总结在数据库设计阶段,应对日后将有较多并发访问的数据库对象,...
sqlserver数据库死锁解决大全.doc
sqlserver数据库死锁解决大全,从网络上收集的各种解决sqlserver死锁问题的汇总 ...col owner format a10; col oracle_username format a10; col object_type ...
Oracle死锁的一些问题.doc
Oracle 死锁的一些问题 oracle 之报错:ORA-00054: 资源正忙,要求指定 NOWAIT ...TM 锁包括了 SS、SX、S、X 等多种模式,在数据库中用 0-6 来表示。不同...
更多相关标签: