SQL> startup Oracle instance started. Total System Global Area 285212672 bytes Fixed Size 1267044 bytes Variable Size 130026140 bytes Database Buffers 146800640 bytes Redo Buffers 7118848 bytes Database mounted. ORA-01092: ORACLEinstance terminated. Disconnection forced查看alert_rhip.log文件(/opt/oracle/admin/rhip/bdump/alert_rhip.log)Errors in file /opt/oracle/admin/rhip/udump/rhip_ora_17875.trc: ORA-00704: bootstrap process failure ORA-39700: database must be opened withUPGRADE option Tue May 19 17:35:50 CST 2015 Error 704 happened during db open, shuttingdown database USER: terminating instance due to error 704 Instance terminated by USER, pid = 17875 ORA-1092 signalled during: ALTER DATABASEOPEN...
查看rhip_ora_17875.trc文件 /opt/oracle/admin/rhip/udump/rhip_ora_17875.trc Oracle Database 10g Enterprise EditionRelease 10.2.0.5.0 - 64bit Production With the Partitioning, OLAP, Data Miningand Real Application Testing options ORACLE_HOME = /opt/oracle/product/10.2.0/db_1 System name: Linux Node name: test Release: 2.6.18-164.el5 Version: #1 SMP Tue Aug 18 15:51:48 EDT 2009 Machine: x86_64 Instance name: rhip Redo thread mounted by this instance: 1 Oracle process number: 15 Unix process pid: 17875, image: oracle@test(TNS V1-V3)
*** ACTION NAME:() 2015-05-19 17:35:50.802 *** MODULE NAME:(sqlplus@test (TNS V1-V3))2015-05-19 17:35:50.802 *** SERVICE NAME:(SYS$USERS) 2015-05-1917:35:50.802 *** SESSION ID:(159.3) 2015-05-1917:35:50.802 ORA-00704: bootstrap process failure ORA-39700: database must be opened withUPGRADE option 原因:因为今天进行了数据库升级,数据字典的一些基表内容被修改了。
解决方法:以upgrade模式启动数据库,升级数据字典 SQL>startup upgrade
SQL> select status from v$instance;
STATUS ------------------------ OPEN MIGRATE确认此时instance状态为OPEN MIGRATE()升级数据库的大版本或大的patch的时候总是需要升级现有数据库的数据字典,升级数据字段的原因是因为随着Oracle版本的升级,某些对象的属性需要改变,以便保证系统的的数据词典的完整性和有效性这些变更都是在升级脚本$ORACLE_HOME/rdbms/admin/catupgrd.sql中。 1、以升级模式启动数据库后,开始升级数据字典 1 SQL>@/opt/product/10.2.0/db_1/rdbms/catupgrd.sql升级数据字典时,可以看到相应的操作PL/SQL procedure successfully completed.
Type created.
Grant succeeded.
Package created.
No errors.
Table created.
PL/SQL procedure successfully completed.
View created.
Synonym created.
进而进一步验证了catupgrd.sql作用,升级完数据字典后,sqlplus下会出现以下信息
TIMESTAMP -------------------------------------------------------------------------------- COMP_TIMESTAMP RUL 2012-11-23 06:56:47 DBUA_TIMESTAMP RUL VALID 2012-11-23 06:56:47 COMP_TIMESTAMP UPGRD_END 2012-11-2306:58:01 . Oracle Database 10.2 Upgrade StatusUtility 11-23-2012 06:58:01 . Component Status Version HH:MM:SS Oracle Database Server VALID 10.2.0.5.0 00:07:52 JServer JAVA Virtual Machine VALID 10.2.0.5.0 00:00:56 Oracle XDK VALID 10.2.0.5.0 00:00:23 Oracle Database Java Packages VALID 10.2.0.5.0 00:00:12 Oracle Text VALID 10.2.0.5.0 00:00:18 Oracle XML Database VALID 10.2.0.5.0 00:02:02 Oracle Workspace Manager VALID 10.2.0.5.0 00:00:36 Oracle Data Mining VALID 10.2.0.5.0 00:00:15 OLAP Analytic Workspace VALID 10.2.0.5.0 00:00:16 OLAP Catalog VALID 10.2.0.5.0 00:00:42 Oracle OLAP API VALID 10.2.0.5.0 00:00:31 Oracle interMedia VALID 10.2.0.5.0 00:02:21 Spatial VALID 10.2.0.5.0 00:01:32 Oracle Expression Filter VALID 10.2.0.5.0 00:00:06 Oracle Enterprise Manager VALID 10.2.0.5.0 00:00:30 Oracle Rule Manager VALID 10.2.0.5.0 00:00:06 . Total Upgrade Time: 00:20:01 DOC>####################################################################### DOC>####################################################################### DOC> DOC> The above PL/SQL lists theSERVER components in the upgraded DOC> database, along with theircurrent version and status. DOC> DOC> Please review the statusand version columns and look for DOC> any errors in the spool logfile. If there are errors in the spool DOC> file, or any components arenot VALID or not the current version, DOC> consult the Oracle DatabaseUpgrade Guide for troubleshooting DOC> recommendations. DOC> DOC> Next shutdown immediate,restart for normal operation, and then DOC> run utlrp.sql to recompileany invalid application objects. DOC> DOC>####################################################################### DOC>#######################################################################2、 再次重启数据库SQL> shutdown immediate SQL> startup ORACLE instance started.3、编译无效对象脚本utlrp.sqlutlrp.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>#
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