首页数据库Oracle数据库失效对象处理详情

Oracle数据库失效对象处理详情

时间2024-02-28 18:13:03发布访客分类数据库浏览770
导读:收集整理的这篇文章主要介绍了Oracle数据库失效对象处理详情,觉得挺不错的,现在分享给大家,也给大家做个参考。 近期对数据库进行巡检,发现数据库业务用户(非 Sys/Public)下存...
收集整理的这篇文章主要介绍了Oracle数据库失效对象处理详情,觉得挺不错的,现在分享给大家,也给大家做个参考。

近期对数据库进行巡检,发现数据库业务用户(非 Sys/Public)下存在失效对象。对失效对象进行分析,主要包括失效的视图、物化视图、函数、包、触发器等。@H_360_3@

思考:

基于以下原因,建议对失效对象进行处理:

1、通过失效的对象,可能能够反推发现业务软件问题(业务系统功能太多,可能存在测试不充分的问题);

2、如果失效对象太多,业务又频繁调用的话,担心影响数据库性能(未进行测试,个人想法,如有错误请大家指正);

处理方式:

1、先搜索发现失效对象(在sys用户下执行)

select owner, object_name, object_tyPE, status  From dba_objects t  where status='INVALID'  order by t.owner,t.object_type;
    

2、对失效对象自动生成重编译语句,进行重编译

下面是为视图、函数、物化视图、包、触发器的生成语句。

--自动生成视图重新编译语句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数据库失效对象处理内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • 关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考
  • 解析Oracle数据库中的对象集合schema

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Oracle数据库失效对象处理详情
本文地址: https://pptw.com/jishu/631770.html
详解Oracle块修改跟踪功能 Oracle表空间与权限的深入讲解

游客 回复需填写必要信息