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