环境:
solaris10 64bit 、oracle10gR2 64bit
操作:
主要是做数据库软件升级,由10.2.0.1升级到10.2.0.5
当完成升级软件安装后,通过sqlplus 用DBA权限登录,执行startup时报错
-bash-3.00$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Sat Jun 9 15:47:30 2012 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to an idle instance. SQL> startup UPGRADE ORACLE instance started. Total System Global Area 167772160 bytes Fixed Size 2094800 bytes Variable Size 100665648 bytes Database Buffers 58720256 bytes Redo Buffers 6291456 bytes ora-01092 oracle instance terminated
查询错误:
查看admin/ORCL/bdump/alert_ORCL.log内容:
Sat Jun 9 14:21:41 2012
Starting background process EMN0
EMN0 started with pid=28, OS id=7636
Sat Jun 9 14:21:41 2012
Shutting down instance: further logons disabled
Sat Jun 9 14:21:41 2012
Stopping background process QMNC
Sat Jun 9 14:21:41 2012
Stopping background process CJQ0
Sat Jun 9 14:21:43 2012
Stopping background process MMNL
Sat Jun 9 14:21:44 2012
Stopping background process MMON
Sat Jun 9 14:21:45 2012
Shutting down instance (immediate)
License high water mark = 19
Sat Jun 9 14:21:45 2012
Stopping Job queue slave processes
Sat Jun 9 14:21:45 2012
Job queue slave processes stopped
All dispatchers and shared servers shutdown
Sat Jun 9 14:21:57 2012
PMON failed to acquire latch, see PMON dump
PMON failed to acquire latch, see PMON dump
PMON failed to acquire latch, see PMON dump
PMON failed to acquire latch, see PMON dump
PMON failed to acquire latch, see PMON dump
Sat Jun 9 14:22:09 2012
PMON failed to acquire latch, see PMON dump
PMON failed to acquire latch, see PMON dump
Sat Jun 9 14:22:13 2012
ALTER DATABASE CLOSE NORMAL
Sat Jun 9 14:22:14 2012
SMON: disabling tx recovery
SMON: disabling cache recovery
Sat Jun 9 14:22:14 2012
Shutting down archive processes
Archiving is disabled
Sat Jun 9 14:22:19 2012
ARCH shutting down
ARC1: Archival stopped
Sat Jun 9 14:22:24 2012
ARCH shutting down
ARC0: Archival stopped
Sat Jun 9 14:22:25 2012
Thread 1 closed at log sequence 3
Successful close of redo thread 1
Sat Jun 9 14:22:25 2012
Completed: ALTER DATABASE CLOSE NORMAL
Sat Jun 9 14:22:25 2012
ALTER DATABASE DISMOUNT
Completed: ALTER DATABASE DISMOUNT
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
Sat Jun 09 14:48:07 CST 2012
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Shared memory segment for instance monitoring created
Picked latch-free SCN scheme 3
IMODE=BR
ILAT =18
LICENSE_MAX_USERS = 0
SYS auditing is disabled
ksdpec: called for event 13740 prior to event group initialization
Starting up ORACLE RDBMS Version: 10.2.0.5.0.
System parameters with non-default values:
processes = 150
__shared_pool_size = 92274688
__large_pool_size = 4194304
__java_pool_size = 4194304
__streams_pool_size = 0
sga_target = 167772160
control_files = /oracle/oradata/ORCL/control01.ctl, /oracle/oradata/ORCL/control02.ctl, /oracle/oradata/ORCL/control03.ctl
db_block_size = 8192
__db_cache_size = 58720256
compatible = 10.2.0.1.0
log_archive_dest_1 = LOCATION=/oracle/arch/
log_archive_format = %t_%s_%r.dbf
db_file_multiblock_read_count= 8
undo_management = AUTO
undo_tablespace = UNDOTBS1
remote_login_passwordfile= EXCLUSIVE
db_domain =
dispatchers = (PROTOCOL=TCP) (SERVICE=ORCLXDB)
job_queue_processes = 10
background_dump_dest = /oracle/admin/ORCL/bdump
user_dump_dest = /oracle/admin/ORCL/udump
core_dump_dest = /oracle/admin/ORCL/cdump
audit_file_dest = /oracle/admin/ORCL/adump
db_name = ORCL
open_cursors = 300
pga_aggregate_target = 148897792
PSP0 started with pid=3, OS id=18694
PMON started with pid=2, OS id=18692
MMAN started with pid=4, OS id=18696
DBW0 started with pid=5, OS id=18698
LGWR started with pid=6, OS id=18700
CKPT started with pid=7, OS id=18702
SMON started with pid=8, OS id=18704
RECO started with pid=9, OS id=18706
CJQ0 started with pid=10, OS id=18708
MMON started with pid=11, OS id=18710
Sat Jun 09 14:48:09 CST 2012
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
MMNL started with pid=12, OS id=18712
Sat Jun 09 14:48:09 CST 2012
starting up 1 shared server(s) ...
Sat Jun 09 14:48:10 CST 2012
ALTER DATABASE MOUNT
Sat Jun 09 14:48:16 CST 2012
Setting recovery target incarnation to 2
Sat Jun 09 14:48:16 CST 2012
Successful mount of redo thread 1, with mount id 1313337388
Sat Jun 09 14:48:16 CST 2012
Database mounted in Exclusive Mode
Completed: ALTER DATABASE MOUNT
Sat Jun 09 14:48:17 CST 2012
ALTER DATABASE OPEN
Sat Jun 09 14:48:17 CST 2012
LGWR: STARTING ARCH PROCESSES
ARC0 started with pid=16, OS id=18720
Sat Jun 09 14:48:17 CST 2012
ARC0: Archival started
ARC1: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE
ARC1 started with pid=17, OS id=18722
ARC1: Becoming the 'no FAL' ARCH
ARC1: Becoming the 'no SRL' ARCH
Sat Jun 09 14:48:17 CST 2012
ARC0: Becoming the heartbeat ARCH
Sat Jun 09 14:48:17 CST 2012
Thread 1 opened at log sequence 3
Current log# 2 seq# 3 mem# 0: /oracle/oradata/ORCL/redo02.log
Successful open of redo thread 1
Sat Jun 09 14:48:17 CST 2012
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Sat Jun 09 14:48:17 CST 2012
SMON: enabling cache recovery
Sat Jun 09 14:48:19 CST 2012
Errors in file /oracle/admin/ORCL/udump/orcl_ora_18718.trc:
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
Sat Jun 09 14:48:19 CST 2012
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 18718
ORA-1092 signalled during: ALTER DATABASE OPEN...
以上红色表示出现的error info。
根据上述提示,查询/oracle/admin/ORCL/udump/orcl_ora_18718.trc文件:
/oracle/admin/ORCL/udump/orcl_ora_18718.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/10.2.0
System name: SunOS
Node name: solaris10ora10gr2x64
Release: 5.10
Version: Generic_141445-09
Machine: i86pc
Instance name: ORCL
Redo thread mounted by this instance: 1
Oracle process number: 15
Unix process pid: 18718, image: oracle@solaris10ora10gr2x64 (TNS V1-V3)
*** ACTION NAME:() 2012-06-09 14:48:19.068
*** MODULE NAME:(sqlplus@solaris10ora10gr2x64 (TNS V1-V3)) 2012-06-09 14:48:19.068
*** SERVICE NAME:(SYS$USERS) 2012-06-09 14:48:19.068
*** SESSION ID:(159.3) 2012-06-09 14:48:19.068
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
解决方案:
原因是由于在完成升级版本后,数据字典的内容被修改了,需要使用catalog.sql和catproc.sql这两个脚本再运行一下把数据字典再更新一下。于是使用命令"startup upgrade"启动数据库,再运行catupgrd.sql这个脚本,即运行"@ORACLE_HOME\rdbms\admin\catupgrd.sql",这条语句会执行比较久的时间,我是在PC机上操作的,执行了12分钟左右。执行完成以后,关闭数据库,再使用正常模式启动数据库,再运行一下utlrp.sql这个脚本来重新编译一下一些无效的对象。OK了。
-bash-3.00$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Sat Jun 9 15:47:30 2012 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to an idle instance. SQL> startup UPGRADE ORACLE instance started. Total System Global Area 167772160 bytes Fixed Size 2094800 bytes Variable Size 100665648 bytes Database Buffers 58720256 bytes Redo Buffers 6291456 bytes Database mounted. Database opened. SQL>