使用orachk工具检查数据库实例的时候,发现报告里面有类似下面这样一些错误(最近有给Oracle 10g应用补丁PSU 10.2.0.5.180717,不清楚是这个产生的还是其他原因导致),使用脚本检查,发现有很多INVALID对象(具体参考[转载]—Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1)

[W] - P_OBJ#=37817 D_OBJ#=38416

[W] - P_OBJ#=38014 D_OBJ#=38605

[W] - P_OBJ#=38020 D_OBJ#=38611

[W] - P_OBJ#=38043 D_OBJ#=38634

[W] - P_OBJ#=38061 D_OBJ#=38652

[W] - P_OBJ#=38064 D_OBJ#=38655

[W] - P_OBJ#=38087 D_OBJ#=38678

[W] - P_OBJ#=38090 D_OBJ#=38681

select 

do.obj# d_obj,do.name d_name, do.type# d_type, 

po.obj# p_obj,po.name p_name, 

to_char(p_timestamp,'DD-MON-YYYY HH24:MI:SS') "P_Timestamp", 

to_char(po.stime ,'DD-MON-YYYY HH24:MI:SS') "STIME", 

decode(sign(po.stime-p_timestamp),0,'SAME','*DIFFER*') X 

from sys.obj$ do, sys.dependency$ d, sys.obj$ po 

where P_OBJ#=po.obj#(+) 

and D_OBJ#=do.obj# 

and do.status=1 /*dependent is valid*/ 

and po.status=1 /*parent is valid*/ 

and po.stime!=p_timestamp /*parent timestamp not match*/ 

order by 2,1;

然后在执行编译一些INVALID对象时遇到了下面错误ORA-04045,如下所示:

SQL> alter public synonym "SM$VERSION" compile;

alter public synonym "SM$VERSION" compile

*

ERROR at line 1:

ORA-00604: error occurred at recursive SQL level 1

ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS

ORA-04064: not executed, invalidated

ORA-04064: not executed, invalidated package body "LBACSYS.LBAC_EVENTS"

ORA-06508: PL/SQL: could not find program unit being called:

"LBACSYS.LBAC_EVENTS"

ORA-06512: at line 2

ORA-06508: PL/SQL: could not find program unit being called:

"LBACSYS.LBAC_EVENTS"

如下所示,LBACSYS下有很多INVALID对象,最奇怪的是,执行了上面脚本,会触发ORA-04045,似乎还会导致其他会话执行脚本时也触发这个错误:

 

SQL> col comp_name for a36;

SQL> col version for a30;

SQL> col version for a10;

col status for a8;

select comp_id, comp_name, version, status 

from dba_registry 

where comp_name='Oracle Label Security';

 

COMP_ID                        COMP_NAME                            VERSION    STATUS

------------------------------ ------------------------------------ ---------- --------

OLS                            Oracle Label Security                10.2.0.5.0 VALID

 

SQL> 

 

SQL>  select * from v$option where parameter = 'Oracle Label Security';

 

PARAMETER                                                        VALUE

---------------------------------------------------------------- --------------

Oracle Label Security                                            FALSE

 

SQL> 

 

 

Tue Jun 25 20:15:01 HKT 2019

Errors in file /u01/app/oracle/admin/xxx/udump/xxx_ora_11203.trc:

ORA-00604: error occurred at recursive SQL level 1

ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS

ORA-04064: not executed, invalidated 

ORA-04064: not executed, invalidated package body "LBACSYS.LBAC_EVENTS"

ORA-06508: PL/SQL: could not find program unit being called: "LBACSYS.LBAC_EVENTS"

ORA-06512: at line 2

ORA-06508: PL/SQL: could not find program unit being called: "LBACSYS.LBAC_EVENTS"

ORA-06512: at line 2

 

 

 

[oracle@xxxxx bdump]$ more  /u01/app/oracle/admin/xxxx/udump/xxx_ora_11203.trc

/u01/app/oracle/admin/EPPS/udump/epps_ora_11203.trc

Oracle Database 10g Release 10.2.0.5.0 - 64bit Production

ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1

System name:    Linux

Node name:      xxxx

Release:        2.6.32-200.13.1.el5uek

Version:        #1 SMP Wed Jul 27 21:02:33 EDT 2011

Machine:        x86_64

Instance name: xxx

Redo thread mounted by this instance: 1

Oracle process number: 48

Unix process pid: 11203, image: oracle@xxxx (TNS V1-V3)

 

*** ACTION NAME:() 2019-06-25 20:15:01.745

*** MODULE NAME:(sqlplus@xxxx (TNS V1-V3)) 2019-06-25 20:15:01.745

*** SERVICE NAME:(SYS$USERS) 2019-06-25 20:15:01.745

*** SESSION ID:(113.2150) 2019-06-25 20:15:01.745

Error in executing triggers on connect internal

*** 2019-06-25 20:15:01.750

ksedmp: internal or fatal error

ORA-00604: error occurred at recursive SQL level 1

ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS

ORA-04064: not executed, invalidated 

ORA-04064: not executed, invalidated package body "LBACSYS.LBAC_EVENTS"

ORA-06508: PL/SQL: could not find program unit being called: "LBACSYS.LBAC_EVENTS"

ORA-06512: at line 2

ORA-06508: PL/SQL: could not find program unit being called: "LBACSYS.LBAC_EVENTS"

ORA-06512: at line 2

当时参考“ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS”这篇文章做了如下处理,告警日志里面不会出现ORA-04045错误了,但是如果我使用

上面的语句编译INVALID对象。就又会触发这个错误出现。似乎这种方法是指标不治本

shutdown immediate; 

 

startup migrate; 

 

alter view lbacsys.lbac$all_table_policies compile; 

 

alter package lbacsys.lbac_events compile body; 

 

shutdown immediate; 

 

startup;

最后参考官方文档“ORA-07445 [zllcini] or ORA-04045 in a Database with OLS Set to FALSE (文档 ID 233110.1)“给出解决方案:

ORA-4045 related to LBACSYS.LBAC_EVENTS

---------------------------------------

ORA-00604: error occurred at recursive SQL level 1

ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS

ORA-06508: PL/SQL: could not find program unit being called

ORA-06512: at line 2

ORA-06508: PL/SQL: could not find program unit being called

ORA-06512: at line 2

Solution Description

--------------------

1. Install Oracle Label Security with the Oracle Universal Installer

2. Run $ORACLE_HOME/rdbms/admin/catnools.sql script to disable OLS

3. Optionally de-install 'The Label Security' software

Explanation

-----------

The Oracle Universal Installer may install OLS components in some cases:

patchset apply

解决方案:

 

1:卸载Oracle Label Security

@?/rdbms/admin/catnools.sql

2:运行/tmp/compiling.lst重编译失效对象

具体参考[转载]—Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1)

3:运行@?/rdbms/admin/catols.sql脚本安装Oracle Label Security

第三步可以做也可以不做,是具体情况而定。

参考资料:

http://www.itpux.com/thread-568-1-1.html

ORA-07445 [zllcini] or ORA-04045 in a Database with OLS Set to FALSE (文档 ID 233110.1)

ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS的更多相关文章

  1. 误删除AUD$所在的表空间,无法切换用户

    问题故障:数据库Open,无法切换普通用户: ---递归SQL无法执行   SQL> conn hr/hr ERROR at line 1: ORA-00604: error occurred  ...

  2. Oracle10g使用$ORACLE_HOME/rdbms/admin/awrrpt.sql报错

    Enter value for report_name: Using the report name awrrpt_1_591_593.htmlselect output from table(dbm ...

  3. 记录一次Oracle导入数据库失败的解决办法,最终报错:UDI-04045、ORA-04045、ORA-01775

    费了很大的工夫,终于解决了.做个记录. ******************************************************************************** ...

  4. Oracle的静默安装 升级和卸载 参考规范

    Oracle的静默安装 升级和卸载 参考规范 20180912 V1 一.Oracle的安装 Oracle产品的三种安装方式分别为: 1.图形化(Java向导)安装引导 2.使用应答文件静默安装 3. ...

  5. Oracle数据库迁移--->从Windows到Linux

    I did a practice to migrate the oracle database from windows to linux operation system. The followin ...

  6. 【RMAN】RMAN跨版本恢复(下)--大版本异机恢复

    [RMAN]RMAN跨版本恢复(下)--大版本异机恢复 BLOG文档结构图 ORACLE_SID=ORA1024G 关于10g的跨小版本恢复参考:http://blog.chinaunix.net/u ...

  7. Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0

    Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0 系统环境: 操作系统:RedHat EL6(64位) Oracle:    Oracle 11gR2 ...

  8. 探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1)

    探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1) 一.前言:       Oracle 12c公布距今已经一年有余了,其最大亮点是一个能够插拔的数据库(PD ...

  9. oracle重新编译失效对像

    重新编译失效对像可执行utlrp.sql文件: SQL> @?/rdbms/admin/utlrp.sql TIMESTAMP --------------------------------- ...

随机推荐

  1. 单片机内核Cortex-M3八大知识点

    单片机内核Cortex-M3的八个知识点 1.指令集 32位ARM指令集:对应ARM状态 16位Thumb指令集:对应Thumb状态(是ARM指令集的一个子集)​   指令集演进图 2.BKP备份寄存 ...

  2. 管道及 I/O 重定向

    I/O重定向 I/O Redirection 标准输入.标准输出.标准错误输出重定向及综合案例输入重定向及结合案例 标准输入.标准输出.标准错误 file descriptors (FD,文件描述符 ...

  3. IT兄弟连 HTML5教程 使用盒子模型的浮动布局

    虽然使用绝对定位可以实现页面布局,但由于调整某个盒子模型时其他盒子模型的位置并不会跟着改变,所以并不是布局的首选方式.而使用浮动的盒子模型可以向左或向右移动,直到它的外边缘碰到包含它的盒子模型边框或另 ...

  4. Mysql、ES 数据同步

    数据同步中间件 不足:不支持 ES6.X 以上.Mysql 8.X 以上 ime 标识最大时间 logstash全量.增量同步解决方案 https://www.elastic.co/cn/downlo ...

  5. Java题库——Chapter15 事件驱动编程和动画

    Chapter 15 Event-Driven Programming and Animations Section 15.2 Events and Event Sources1.    A Java ...

  6. C#_.NetCore_Web项目_EXCEL数据导出(ExcelHelper_第一版)

    项目需要引用NPOI的Nuget包:DotNetCore.NPOI-v1.2.2 A-前端触发下载Excel的方法有三种: 1-JS-Url跳转请求-后台需要返回文件流数据: window.Locat ...

  7. 修改vscode的文件,对应的磁盘文件不改变

    两种解决办法: 首先:修改VSCode默认配置文件,点击左下角设置标志图 -> 设置,出来了设置相关的东西,搜索 files.autoSave 第一种:把"files.autoSave ...

  8. SQL Server如何找出一个表包含的页信息(Page)

    在SQL Server中,如何找到一张表或某个索引拥有那些页面(page)呢? 有时候,我们在分析和研究(例如,死锁分析)的时候还真有这样的需求,那么如何做呢? SQL Server 2012提供了一 ...

  9. 【转载】【笔记】vue-router之路由传递参数

    参考博客地址:https://blog.51cto.com/4547985/2390799 1.通过<router-link> 标签中的to传参 基本语法: <router-link ...

  10. [阅读笔记]EfficientDet

    EfficientDet 文章阅读 Google的网络结构不错,总是会考虑计算性能的问题,从mobilenet v1到mobile net v2.这篇文章主要对近来的FPN结构进行了改进,实现了一种效 ...