今天有人说数据库挂了,请我帮忙看一下。是9i的库,测试环境的。
启动报错如下:
[oracle@xxx oracle]$ sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Thu Jan 12 03:54:18 2012
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 303109300 bytes
Fixed Size 451764 bytes
Variable Size 268435456 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
SQL>
先看一下日志文件。
Thu Jan 12 04:40:58 2012
Starting ORACLE instance (normal)
Thu Jan 12 04:40:58 2012
WARNING: EINVAL creating segment of size 0x0000000013400000
fix shm parameters in /etc/system or equivalent
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
SCN scheme 2
Using log_archive_dest parameter default value
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 9.2.0.4.0.
System parameters with non-default values:
processes = 150
timed_statistics = TRUE
shared_pool_size = 117440512
large_pool_size = 16777216
java_pool_size = 117440512
control_files = /opt/oracle/product/9.2.0/oradata/testdb/control01.ctl, /opt/oracle/product/9.2.0/oradata/testdb/control02.ctl, /opt/oracle/product/9.2.0/oradata/testdb/control03.ctl
db_block_size = 8192
db_cache_size = 33554432
compatible = 9.2.0.0.0
log_archive_start = TRUE
log_archive_dest_1 = LOCATION=/opt/oracle/product/9.2.0/oradata/testdb/archive
log_archive_format = %t_%s.dbf
db_file_multiblock_read_count= 16
fast_start_mttr_target = 300
undo_management = AUTO
undo_tablespace = UNDOTBS2
undo_retention = 10800
remote_login_passwordfile= EXCLUSIVE
db_domain = webex.com
instance_name = testdb
dispatchers = (PROTOCOL=TCP)
job_queue_processes = 10
hash_join_enabled = TRUE
background_dump_dest = /opt/oracle/product/9.2.0/admin/testdb/bdump
user_dump_dest = /opt/oracle/product/9.2.0/admin/testdb/udump
core_dump_dest = /opt/oracle/product/9.2.0/admin/testdb/cdump
sort_area_size = 524288
db_name = testdb
open_cursors = 300
star_transformation_enabled= FALSE
query_rewrite_enabled = FALSE
pga_aggregate_target = 25165824
aq_tm_processes = 1
PMON started with pid=2
DBW0 started with pid=3
LGWR started with pid=4
CKPT started with pid=5
SMON started with pid=6
RECO started with pid=7
CJQ0 started with pid=8
QMN0 started with pid=9
Thu Jan 12 04:40:58 2012
starting up 1 shared server(s) ...
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
ARCH: STARTING ARCH PROCESSES
ARC0 started with pid=12
ARC0: Archival started
ARC1 started with pid=13
Thu Jan 12 04:40:59 2012
ARC1: Archival started
Thu Jan 12 04:40:59 2012
ARCH: STARTING ARCH PROCESSES COMPLETE
ARC1: Thread not mounted
Thu Jan 12 04:40:59 2012
ARC0: Thread not mounted
Thu Jan 12 04:40:59 2012
ALTER DATABASE MOUNT
Thu Jan 12 04:41:03 2012
Successful mount of redo thread 1, with mount id 3969289179.
Thu Jan 12 04:41:03 2012
Database mounted in Exclusive Mode.
Completed: ALTER DATABASE MOUNT
Thu Jan 12 04:41:03 2012
ALTER DATABASE OPEN
Thu Jan 12 04:41:03 2012
Beginning crash recovery of 1 threads
Thu Jan 12 04:41:03 2012
Started first pass scan
Thu Jan 12 04:41:03 2012
Completed first pass scan
57 redo blocks read, 4 data blocks need recovery
Thu Jan 12 04:41:03 2012
Started recovery at
Thread 1: logseq 94, block 2, scn 2612.28455232
Recovery of Online Redo Log: Thread 1 Group 3 Seq 94 Reading mem 0
Mem# 0 errs 0: /opt/oracle/product/9.2.0/oradata/testdb/redo03.log
Thu Jan 12 04:41:03 2012
Completed redo application
Thu Jan 12 04:41:03 2012
Ended recovery at
Thread 1: logseq 94, block 59, scn 2612.28475290
4 data blocks read, 4 data blocks written, 57 redo blocks read
Crash recovery completed successfully
Thu Jan 12 04:41:03 2012
Thread 1 advanced to log sequence 95
Thread 1 opened at log sequence 95
Current log# 1 seq# 95 mem# 0: /opt/oracle/product/9.2.0/oradata/testdb/redo01.log
Successful open of redo thread 1.
Thu Jan 12 04:41:03 2012
SMON: enabling cache recovery
Thu Jan 12 04:41:03 2012
ARC0: Media recovery disabled
Thu Jan 12 04:41:03 2012
Undo Segment 4 Onlined
Undo Segment 5 Onlined
Undo Segment 6 Onlined
Undo Segment 7 Onlined
Undo Segment 8 Onlined
Undo Segment 9 Onlined
Undo Segment 10 Onlined
Undo Segment 11 Onlined
Undo Segment 12 Onlined
Thu Jan 12 04:41:03 2012
Errors in file /opt/oracle/product/9.2.0/admin/testdb/udump/testdb_ora_4247.trc:
ORA-00600: internal error code, arguments: [kcbgcur_6], [41], [], [], [], [], [], []
Thu Jan 12 04:41:04 2012
Errors in file /opt/oracle/product/9.2.0/admin/testdb/udump/testdb_ora_4247.trc:
ORA-00600: internal error code, arguments: [kcbgcur_6], [41], [], [], [], [], [], []
Error 600 happened during db open, shutting down database
USER: terminating instance due to error 600
Instance terminated by USER, pid = 4247
ORA-1092 signalled during: ALTER DATABASE OPEN...
提示是open的时候出错了。
这个600的错误,还真不好找。网上看了一下,也没有找到什么。以前记得有个分析600的几个类型的,当时没有保存,可惜啊。不过有个文章提到类似的错误,是undo引起的,不是600。 先试试。 URL:
http://blog.csdn.net/pengle/article/details/1448576
先mount起来:
startup mount
看了一下,当前用的是UNDOTBS2, 系统里面还有UNDOTBS3,那就替换试一下了。
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 10800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS2
SQL>
SQL> select name from v$tablespace;
NAME
------------------------------
CWMLITE
DRSYS
EXAMPLE
INDX
ODM
SYSTEM
TOOLS
TEMP2
USERS
XDB
UNDOTBS3
PERFSTAT
UNDOTBS2
SQL> create pfile='/opt/oracle/product/9.2.0/admin/testdb/pfile/inittestdb_20120112.ora' from spfile;
File created.
SQL>
SQL> shutdown
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL>
编辑文件,启动
SQL> startup pfile='/opt/oracle/product/9.2.0/admin/testdb/pfile/inittestdb_20120112.ora';
ORACLE instance started.
Total System Global Area 303109300 bytes
Fixed Size 451764 bytes
Variable Size 268435456 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 10800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS3
SQL>
SQL> create spfile from pfile='/opt/oracle/product/9.2.0/admin/testdb/pfile/inittestdb_20120112.ora';
File created.
SQL>