频道栏目
首页 > 资讯 > Oracle > 正文

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

17-02-16        来源:[db:作者]  
收藏   我要投稿

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;

再删除物化视图。

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

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

相关TAG标签
上一篇:微信公众号开发模板消息推送(二) 获取openid java
下一篇:Linux-Day2
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站