Oracle数据库失效对象处理详情
各位用户为了找寻关于Oracle数据库失效对象处理详情的资料费劲了很多周折。这里教程网为您整理了关于Oracle数据库失效对象处理详情的相关资料,仅供查阅,以下为您介绍关于Oracle数据库失效对象处理详情的详细内容
近期对数据库进行巡检,发现数据库业务用户(非 SYS/Public
)下存在失效对象。对失效对象进行分析,主要包括失效的视图、物化视图、函数、包、触发器等。
思考:
基于以下原因,建议对失效对象进行处理:
1、通过失效的对象,可能能够反推发现业务软件问题(业务系统功能太多,可能存在测试不充分的问题);
2、如果失效对象太多,业务又频繁调用的话,担心影响数据库性能(未进行测试,个人想法,如有错误请大家指正);
处理方式:
1、先搜索发现失效对象(在sys用户下执行)
? 1select
owner, object_name, object_type, status
from
dba_objects t
where
status=
'INVALID'
order
by
t.owner,t.object_type;
2、对失效对象自动生成重编译语句,进行重编译
下面是为视图、函数、物化视图、包、触发器的生成语句。
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20--自动生成视图重新编译语句
select
owner, object_name, object_type, status ,
'alter view '
|| t.owner||
'.'
|| object_name ||
' compile'
||
';'
from
dba_objects t
where
status=
'INVALID'
and
t.object_type=
'VIEW'
order
by
t.owner,t.object_type;
--自动生成函数重新编译语句
select
owner, object_name, object_type, status ,
'alter FUNCTION '
|| t.owner||
'.'
|| object_name ||
' compile'
||
';'
from
dba_objects t
where
status=
'INVALID'
and
t.object_type=
'FUNCTION'
order
by
t.owner,t.object_type;
--自动生成视物化图重新编译语句
select
owner, object_name, object_type, status ,
'alter MATERIALIZED VIEW '
|| t.owner||
'.'
|| object_name ||
' compile'
||
';'
from
dba_objects t
where
status=
'INVALID'
and
t.object_type=
'MATERIALIZED VIEW'
order
by
t.owner,t.object_type;
--自动生成包重新编译语句
select
owner, object_name, object_type, status ,
'alter PACKAGE '
|| t.owner||
'.'
|| object_name ||
' compile'
||
';'
from
dba_objects t
where
status=
'INVALID'
and
t.object_type=
'PACKAGE BODY'
order
by
t.owner,t.object_type;
--自动生成触发器重新编译语句
select
owner, object_name, object_type, status ,
'alter TRIGGER '
|| t.owner||
'.'
|| object_name ||
' compile'
||
';'
from
dba_objects t
where
status=
'INVALID'
and
t.object_type=
'TRIGGER'
order
by
t.owner,t.object_type;
生成语句后复制处理批量执行即可
3、重新编译应该会解决掉一部分的失效对象,但是仍然会有部分对象无法通过重新编译解决。对于这部分对象,需要进行人工的逐个分析,现场可以确认的进行确认处理(有用则修改,无用则删除),现场不能确认的可以和研发确认,最终完成对失效对象处理的目的。
如果最终仍有部分无人可以确认,建议先暂时保留即可。
到此这篇关于Oracle
数据库失效对象处理详情的文章就介绍到这了,更多相关Oracle
数据库失效对象处理内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://www.cnblogs.com/Jingkunliu/p/14755021.html