今天早上连接数据发现数据不好使
报ORA-10134,ORA-27101错误,
ORA-10134:oracle not available;
ORA-27101: share memory realm does not exist'
SQL> sqlplus
sql>sys/**@orac as sysdba
sql>startup;
oracle 例程已经启动,,,,,,
ora-03113:通信通道的文件结束:
于是GOOGLE 网上说 ora-03113是数据库比较经典的错误,说其是经典的错误的主要原因是照成ora-03113的原因是很多种情况。网上看见别人的帖子里有(ora-03113错误分析):如下情况:
- 核心参数设置不当
- Oracle执行文件权限不正确/环境变量问题
- 客户端通信不能正确处理
- 数据库服务器崩溃/操作系统崩溃/进程被kill
- Oracle 内部错误
- 特定SQL、PL/SQL引起的错误
- 空间不够
- 防火墙的问题
- 其它原因
于是对照分析,照着网上的点例子一点一点做,发现并不能解决问题。但是照成这个错误的原因:应该是前一天断电照成的。于是进入oracle alert日志:
日志信息如下:
Tue Dec 04 08:19:38 2012
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 2
Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
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.1.0.
System parameters with non-default values:
processes = 150
__shared_pool_size = 130023424
__large_pool_size = 4194304
__java_pool_size = 4194304
__streams_pool_size = 0
spfile = D:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\SPFILEORABJB.ORA
sga_target = 612368384
control_files = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORABJB\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORABJB\CONTROL02.CTL, D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORABJB\CONTROL03.CTL
db_block_size = 8192
__db_cache_size = 465567744
compatible = 10.2.0.1.0
db_file_multiblock_read_count= 16
db_recovery_file_dest = D:\oracle\product\10.2.0/flash_recovery_area
db_recovery_file_dest_size= 12884901888
undo_management = AUTO
undo_tablespace = UNDOTBS1
remote_login_passwordfile= EXCLUSIVE
db_domain =
dispatchers = (PROTOCOL=TCP) (SERVICE=orabjbXDB)
job_queue_processes = 10
audit_file_dest = D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORABJB\ADUMP
background_dump_dest = D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORABJB\BDUMP
user_dump_dest = D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORABJB\UDUMP
core_dump_dest = D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORABJB\CDUMP
db_name = orabjb
open_cursors = 300
pga_aggregate_target = 203423744
PMON started with pid=2, OS id=7836
PSP0 started with pid=3, OS id=4240
MMAN started with pid=4, OS id=8020
DBW0 started with pid=5, OS id=5868
LGWR started with pid=6, OS id=5464
CKPT started with pid=7, OS id=5508
SMON started with pid=8, OS id=4516
RECO started with pid=9, OS id=8180
CJQ0 started with pid=10, OS id=4192
MMON started with pid=11, OS id=8168
MMNL started with pid=12, OS id=1096
Tue Dec 04 08:19:39 2012
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
starting up 1 shared server(s) ...
Tue Dec 04 08:19:39 2012
ALTER DATABASE MOUNT
Tue Dec 04 08:19:43 2012
Setting recovery target incarnation to 2
Tue Dec 04 08:19:43 2012
Successful mount of redo thread 1, with mount id 1546923419
Tue Dec 04 08:19:43 2012
Allocated 3981204 bytes in shared pool for flashback generation buffer
Starting background process RVWR
RVWR started with pid=16, OS id=8244
Tue Dec 04 08:19:45 2012
Database mounted in Exclusive Mode
Completed: ALTER DATABASE MOUNT
Tue Dec 04 08:19:46 2012
ALTER DATABASE OPEN
Tue Dec 04 08:19:46 2012
Beginning crash recovery of 1 threads
parallel recovery started with 2 processes
Tue Dec 04 08:19:46 2012
Started redo scan
Tue Dec 04 08:19:47 2012
Completed redo scan
4318 redo blocks read, 399 data blocks need recovery
Tue Dec 04 08:19:47 2012
Started redo application at
Thread 1: logseq 642, block 89116
Tue Dec 04 08:19:48 2012
Recovery of Online Redo Log: Thread 1 Group 3 Seq 642 Reading mem 0
Mem# 0 errs 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORABJB\REDO03.LOG
Tue Dec 04 08:19:48 2012
Completed redo application
Tue Dec 04 08:19:48 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_p000_8264.trc:
ORA-00600: internal error code, arguments: [2037], [12629040], [12629040], [162], [6], [1], [13351933], [822095872]
Tue Dec 04 08:19:48 2012
Hex dump of (file 7, block 114952) in trace file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_dbw0_5868.trc
Corrupt block relative dba: 0x01c1c108 (file 7, block 114952)
Bad header found during preparing block for write
Data in bad block:
type: 0 format: 6 rdba: 0x56003300
last change scn: 0x0000.00cbbab9 seq: 0x3 flg: 0x58
spare1: 0x0 spare2: 0x20 spare3: 0x5e86
consistency value in tail: 0xbab90003
check value in block header: 0x0
block checksum disabled
Tue Dec 04 08:19:54 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_p000_8264.trc:
ORA-00600: internal error code, arguments: [2037], [12629040], [12629040], [162], [6], [1], [13351933], [822095872]
Tue Dec 04 08:19:54 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_dbw0_5868.trc:
ORA-00600: internal error code, arguments: [kcbzpbuf_1], [4], [1], [], [], [], [], []
Tue Dec 04 08:19:55 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_dbw0_5868.trc:
ORA-00600: internal error code, arguments: [kcbzpbuf_1], [4], [1], [], [], [], [], []
DBW0: terminating instance due to error 471
Tue Dec 04 08:19:55 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_p001_8268.trc:
ORA-00471: DBWR process terminated with error
Tue Dec 04 08:19:55 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_p000_8264.trc:
ORA-00471: DBWR process terminated with error
ORA-00600: internal error code, arguments: [2037], [12629040], [12629040], [162], [6], [1], [13351933], [822095872]
Tue Dec 04 08:19:56 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_rvwr_8244.trc:
ORA-00471: DBWR process terminated with error
Tue Dec 04 08:19:56 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_pmon_7836.trc:
ORA-00471: DBWR process terminated with error
Tue Dec 04 08:19:56 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_p000_8264.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00471: DBWR process terminated with error
ORA-00600: internal error code, arguments: [2037], [12629040], [12629040], [162], [6], [1], [13351933], [822095872]
Tue Dec 04 08:19:57 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_psp0_4240.trc:
ORA-00471: DBWR process terminated with error
Tue Dec 04 08:19:57 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_mman_8020.trc:
ORA-00471: DBWR process terminated with error
Tue Dec 04 08:19:57 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_lgwr_5464.trc:
ORA-00471: DBWR process terminated with error
Tue Dec 04 08:19:57 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_reco_8180.trc:
ORA-00471: DBWR process terminated with error
Tue Dec 04 08:19:57 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_ckpt_5508.trc:
ORA-00471: DBWR process terminated with error
Tue Dec 04 08:19:57 2012
Errors in file d:\oracle\product\10.2.0\admin\orabjb\bdump\orabjb_smon_4516.trc:
ORA-00471: DBWR process terminated with error
其中
Corrupt block relative dba: 0x01c1c108 (file 7, block 114952)
Bad header found during preparing block for write
发现在数据文件7,块114952 准备写错误
我数据库只是做了逻辑备份、
没想到更好的解决方法,只能:
Sqlplus
用户名:sys/**@orac as sysdba
Sql>shutdown abort;
SQL>startup mount
SQL>alter database datafile 7 offline;
然后重启数据库:
重建用户,将数据导入