数据库

 首页 > 数据库 > Oracle > Oracle创建Job时遇到ORA-04063 SYS.DBMS_INTERNAL_LOGSTDBY的解决办法

Oracle创建Job时遇到ORA-04063 SYS.DBMS_INTERNAL_LOGSTDBY的解决办法

分享到:
【字体:
导读:
         摘要:Oracle创建Job时遇到ORA-04063SYS.DBMS_INTERNAL_LOGSTDBY的解决办法项目上需要使用job在每月月初重置序列,在我本机的Oracle上创建job成功了,但在项目的测试平台上创建却报了ORA-04063的错误,详见下图:在网... SyntaxH...

Oracle创建Job时遇到ORA-04063 SYS.DBMS_INTERNAL_LOGSTDBY的解决办法
Oracle创建Job时遇到ORA-04063 SYS.DBMS_INTERNAL_LOGSTDBY的解决办法
 
项目上需要使用job在每月月初重置序列,在我本机的Oracle上创建job成功了,
但在项目的测试平台上创建却报了ORA-04063的错误,详见下图:
 
 
在网上搜索,有人说要重新编译DBMS_INTERNAL_LOGSTDBY这个包体,尝试了一下,编译后还是有错。  www.2cto.com  
在PL/SQL中查看DBMS_INTERNAL_LOGSTDBY,发现其依赖的视图“DBA_LOGSTDBY_PROGRESS”有错误,打开“DBA_LOGSTDBY_PROGRESS”的DDL语句并执行,报“找不到system.logmnr_session$”的错误:
 
 
经过查找发现system用户下的确没有logmnr_session$这张表,于是我从其他数据库拷贝system.logmnr_session$的DDL语句过来执行。然后再执行创建“DBA_LOGSTDBY_PROGRESS”
的DDL语句,依然报错:
 
 
查看LOGSTDBY_LOG的DDL语句,并执行:
 
 
提示找不到“system.logmnr_log$”,再从其他数据库拷贝system.logmnr_log$的
DDL语句过来执行,然后再创建LOGSTDBY_LOG,成功了:
 
 
从上图可见“LOGSTDBY_LOG”上的红叉没有了,而且依赖它的“DBA_LOGSTDBY_PROGRESS”
也正常了。至此解决了“DBMS_INTERNAL_LOGSTDBY”包体依赖的错误中的“DBA_LOGSTDBY_PROGRESS”。
  www.2cto.com  
回头查看“DBMS_INTERNAL_LOGSTDBY”发现其依赖仍有错误,这次是视图“DBA_LOGSTDBY_LOG”:
 
 
重新执行“DBA_LOGSTDBY_LOG”的DDL语句竟然成功了,没有报错,但是红叉还在,
将其重新编译,红叉消失了。再重新编译“DBMS_INTERNAL_LOGSTDBY”,也正常了,
这样就解决了“ORA-04063”的错误。
 
接下来创建个job验证一下:
 
 
可见job创建成功。
 
写的这么绕关键就是缺少了system.logmnr_session$和system.logmnr_log$这两张表。
 
 
 
作者 cuihaiyang
Oracle创建Job时遇到ORA-04063 SYS.DBMS_INTERNAL_LOGSTDBY的解决办法
分享到:
ORA-00845:MEMORY_TARGET导致Ubuntu升级1...
ORA-00845:MEMORY_TARGET导致Ubuntu升级12.04无法启动的问题 ORA-00845:MEMORY_TARGET导致Ubuntu升级12.04无法启动的问题   安装了oracle11g的ubuntu升级到12.04启动是报错误ORA-00845: MEMORY_TARGET not supported on this system。  原因12.04中将/dev/shm目录改成了/run/shm,虽然已经有符号链接但是仍然报错。    ...
日志文件管理和nologging的实现
日志文件管理和nologging的实现 日志文件管理和nologging的实现   该实验的目的是验证我们学习的日志文件的原理,管理维护日志文件. 如何减少日志的产生.用到了一些后 面的语法,克服一下. 查看当前日志文件的路径 Select member from v$logfile; 增加组  www.2cto.com   alter database add logfile group 9 'D:\ORA...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……