ITPub博客

首页 > 数据库 > Oracle > 生产环境中,oracle系统包损坏如何修复

生产环境中,oracle系统包损坏如何修复

原创 Oracle 作者:wx13062302674 时间:2024-12-03 10:11:44 0 删除 编辑

生产环境中,oracle系统包损坏如何修复


1、修复介绍

** 在生产环境中,往往会遇到各种类型的系统包损坏,导致各种功能无法使用,遇到了之后很多人都是百度,google,甚至是mos等方式去查询,有些能找到解决办法,有些不能,那么有没有一种办法能够解决呢?

答案肯定是有的。

**在oracle安装目录下有对应的一个路径($ORACLE_HOME/rdbms/admin/),里面存放了所有的系统包的原始创建语句,我们可以通过它来进行重建,如常见的包对应的名称:

DBMS_JOB :dbmsjob.sql prvtjob.plb

DBMS_DDL :  dbmsutil.sql prvtutil.plb

DBMS_ROWID : dbmsutil.sql prvtutil.plb

DBMS_TRACE :  dbmspbt.sql prvtpbt.plb

...

**重建之前可以删除当前系统下损坏的包或者包体以及相关同义词,重建完成后编译无效对象就行了。根据损坏的包体不同,可选择是否停机也是不一样的,需要自己评估。就我之前恢复的几个案例来看,不需要进行任何的停机。


2、修复案例

2.1 报错现象


--通过上面查看包体缺失,这种情况我们直接重建即可。


2.2 服务器上在线重建dbms_job;

  drop package DBMS_JOB;

  @?/rdbms/admin/dbmsjob.sql

  @?/rdbms/admin/prvtjob.plb

  @?/rdbms/admin/utlrp.sql

  grant execute on dbms_job to public;



2.3 编译无效对象

2.4 测试恢复效果


3、如果是其它包怎么修复呢?

同理也是在$ORACLE_HOME/rdbms/admin/下找到对应的sql和plb文件,进行处理即可。如果太多了,可以find+xargs+grep关键字即可。





公众号:数据库技术加油站、itpub 、墨天伦同步更新,有需要的关注。












来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27147296/viewspace-3054427/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
拥有oracle ocp,mysql ocp,pg ace,精通oracle底层恢复,精通pg,如文件勒索、触发器勒索恢复,asm磁盘组各种故障处理,在各行业中帮助用户恢复了大量的数据。公众号:数据库技术加油站,欢迎关注!

注册时间:2018-08-30

  • 博文量
    44
  • 访问量
    58094