ORACLE10.2.0.4物化视图死锁问题处理手记-Oracle

Oracle 21NN 3周前 (06-27) 17次浏览 未收录 0个评论 扫描二维码

ORACLE10.2.0.4物化视图死锁问题处理手记

物化视图查询相关

select * from user_mviews;

SELECT * FROM user_mview_refresh_times;

SELECT * FROM DBA_MVIEW_LOGS;

建立物化视图

CREATE MATERIALIZED VIEW LOG ON MEMBER_ORDER;

建立时是很快的,然后在远端建立同步物化视图

CREATE MATERIALIZED VIEW MV_SPMEMBERORDER

REFRESH FAST

AS

SELECT * FROM member_order@remote;

问题来了

因为表的数据量很大,你会发现如果对这个表进行大量读写的时候,会把整个表都会锁住,正好此时有个大存储过程在里面执行,把整个应用全部锁住了。

停止应用,你查询锁定的情况

select object_name,machine,s.sid,s.serial#,s.TYPE,l.LOCKED_MODE,O.,l.

from vlockedobjectl,dbaobjectso,vsession s

where l.object_id = o.object_id and l.session_id=s.sid;

发现已经没有锁定,但是只要一打开应用,系统马上锁住。

无奈,只能删除,

drop materialized view log on MEMBER_ORDER;

再删除物化视图。

但是,问题仍然存在,是否是表空间的问题,加上,还是有问题,起初以为是应用问题,对应用的代码进行优化,仍然无法解决死锁的问题。

此时,发现有个存储过程还在跑,因为这个过程,不会对应用系统的表进行锁定,他只是读写自己的表,按理不会死锁的。 没有办法,先把这个存储过程结束了,试试看。。。竟然好了。死锁解除了。 没有想明白是怎么一回事。


21NN.CN , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:ORACLE10.2.0.4物化视图死锁问题处理手记-Oracle
喜欢 (0)
[1353713598@qq.com]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址