且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ebs 编译无效对象——adutlrcmp.sql not giving promt

更新时间:2022-08-22 10:33:49

今天在给R12升级到12.1.3的时候,要安装一个补丁,  打最大的一个patch  p9239090 的时候, 前面还算正常, 到了数据库

编译无效对象的时候,一直不结束,第一次做,有点束手无措,最后从网上找了一些参考,整理了一下:

首先,我的环境是这样提示的:
Telling workers to quit...
All workers have quit.
Dropping FND_INSTALL_PROCESSES table...
FND_INSTALL_PROCESSES table dropped.
Dropping AD_DEFERRED_JOBS table...
AD_DEFERRED_JOBS table dropped.
Done running SQL and EXEC commands in parallel.
  Updating the checkfile repository if necessary...
  Did not update the checkfile repository...
Done running SQL scripts and EXEC commands.
Compiling invalid objects...
sqlplus -s APPS/***** @/u01/prod/apps/apps_st/appl/ad/12.0.0/sql/adutlrcmp.sql APPLSYS ***** APPS ***** ***** 4  0 NONE FALSE
——   一直就停在这里不动了。

搜到了这个帖子https://forums.oracle.com/thread/2170368:
告诉我要查看一些无效的对象是否在减少,如果一直在减少的话,说明运行良好,只要等待就行.
adutlrcmp.sq running for long time, it is not completing, we checked log files ..no error messages in log file. This issue is happend upgrade the Instance from 11.5.10.2 to R12.1.3.
Check the number of invalid objects and see if it is reducing or not. If it is changing then this is an expected behavior and you will have to wait for the script to finish.

按照他说的,我在数据库中执行:
SQL> select count(*) from dba_objects where status='INVALID';

  COUNT(*)
----------
     64353
确实在不断减少,但是。。太特么多了,正在想别的办法.....
这哥们跟我一样遇到了相同的问题:博客:http://www.itpub.net/thread-1602399-1-1.html


2、ebs编译无效对象的步骤

1. 查看数据库中的无效对象

 check oracle object
     SQL> select count(*) from dba_objects where status='INVALID';

            COUNT(*)
        ----------
           1808

2. 关闭应用,数据库和监听不能关闭
      cd  $ADMIN_SCRIPTS_HOME
      ./adadstpall.sh apps apps

3. APP用户,执行adadmin打开维护模式重新编译APPS Schema
     打开维护模式
     adadmin->Change Maintenance Mode->1.    Enable Maintenance Mode
     重新编译APPS Schema
     Compile/Reload Applications Database Entities menu-> 1.    Compile APPS schema

4.  检查无效对象的数量,关闭维护模式,启动应用
      SQL> select count(*) from dba_objects where status='INVALID';
      adadmin->Change Maintenance Mode->2.    Disenable Maintenance Mode
     再重启应用即可 
      cd  $ADMIN_SCRIPTS_HOME
      ./adadstral.sh apps apps
 
 
附:
1、编译整个数据库中的无效对象
2、编译数据库中单个的无效对象:
     编译无效包体:  alter package package_name complie;
     编译无效的函数:alter function function_name complies;