utlrp.sql脚本可以在数据库运行的状态下执行以编译、数据库中的invalid对象,oracle建议在对数据库进行迁移、升级、降级后都运行一遍utlrp.sql以编译无效对象。
以sysdba登陆来执行脚本
[oracle@Oel_10 ~]$ sqlplus / as sysdba
SQL> @/opt/product/10.2.0/db_1/rdbms/admin/utlrp.sql 
注:要写全脚本路径 
TIMESTAMP 
-------------------------------------------------------------------------------- 
COMP_TIMESTAMP UTLRP_BGN  2012-11-2307:04:44 
   
DOC>   The following PL/SQL blockinvokes UTL_RECOMP to recompile invalid 
DOC>   objects in the database.Recompilation time is proportional to the 
DOC>   number of invalid objectsin the database, so this command may take 
DOC>   a long time to execute on adatabase with a large number of invalid 
DOC>   objects. 
DOC> 
DOC>   Use the following queriesto track recompilation progress: 
DOC> 
DOC>   1. Query returning thenumber of invalid objects remaining. This 
DOC>      number shoulddecrease with time. 
DOC>         SELECTCOUNT(*) FROM obj$ WHERE status IN (4, 5, 6); 
DOC> 
DOC>   2. Query returning thenumber of objects compiled so far. This number 
DOC>      shouldincrease with time. 
DOC>         SELECTCOUNT(*) FROM UTL_RECOMP_COMPILED; 
DOC> 
DOC>   This script automaticallychooses serial or parallel recompilation 
DOC>   based on the number of CPUsavailable (parameter cpu_count) multiplied 
DOC>   by the number of threadsper CPU (parameter parallel_threads_per_cpu). 
DOC>   On RAC, this number isadded across all RAC nodes. 
DOC> 
DOC>   UTL_RECOMP usesDBMS_SCHEDULER to create jobs for parallel 
DOC>   recompilation. Jobs arecreated without instance affinity so that they 
DOC>   can migrate across RACnodes. Use the following queries to verify 
DOC>   whether UTL_RECOMP jobs arebeing created and run correctly: 
DOC> 
DOC>   1. Query showing jobscreated by UTL_RECOMP 
DOC>         SELECTjob_name FROM dba_scheduler_jobs 
DOC>           WHERE job_name like 'UTL_RECOMP_SLAVE_%'; 
DOC> 
DOC>   2. Query showing UTL_RECOMPjobs that are running 
DOC>         SELECTjob_name FROM dba_scheduler_running_jobs 
DOC>           WHERE job_name like 'UTL_RECOMP_SLAVE_%'; 
DOC># 
   
PL/SQL procedure successfully completed. 
   
   
TIMESTAMP 
-------------------------------------------------------------------------------- 
COMP_TIMESTAMP UTLRP_END  2012-11-2307:05:46 
   
   
PL/SQL procedure successfully completed. 
   
DOC> The following query reports thenumber of objects that have compiled 
DOC> with errors (objects that compilewith errors have status set to 3 in
DOC> obj$). If the number is higherthan expected, please examine the error 
DOC> messages reported with each object(using SHOW ERRORS) to see if they 
DOC> point to system misconfigurationor resource constraints that must be 
DOC> fixed before attempting torecompile these objects. 
DOC># 
   
OBJECTS WITH ERRORS 
------------------- 
                 0 
   
DOC> The following query reports thenumber of errors caught during 
DOC> recompilation. If this number isnon-zero, please query the error 
DOC> messages in the table UTL_RECOMP_ERRORSto see if any of these errors 
DOC> are due to misconfiguration orresource constraints that must be 
DOC> fixed before objects can compilesuccessfully. 
DOC># 
   
ERRORS DURING RECOMPILATION 
--------------------------- 
                         0 
   
PL/SQL procedure successfully completed 
SQL> shutdown  immediate 
Database closed. 
Database dismounted. 
ORACLE instance shut down. 
SQL> startup 
ORACLE instance started. 
   
Total System Global Area 7516192768 bytes 
Fixed Size                 2107936 bytes 
Variable Size           1258292704 bytes 
Database Buffers        6241124352 bytes 
Redo Buffers              14667776 bytes 
Database mounted. 
Database opened.
Oracle 10g升级后启动失败(Oracle instance terminated.(2)
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://www.heiqu.com/b85e5db7165c867712121b4850315337.html

