UNDO 表空间错误,无法OPEN DATABASE
应用环境: Solaris 10(X86) + Oracle 10g
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
错误现象: 数据库在启动时,出现以下错误信息: Errors in file /export/home/oracle/orcl/admin/cuug/udump/cuug_ora_1959.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] Tue Dec 13 17:39:36 2011 DEBUG: Replaying xcb 0x588c40e4, pmd 0x58a54c7c for failed op 8
Doing block recovery for file 2 block 2116 -------------文件2 错误
No block recovery was needed Tue Dec 13 17:40:05 2011 Errors in file /export/home/oracle/orcl/admin/cuug/udump/cuug_ora_1959.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] Tue Dec 13 17:40:22 2011 Errors in file /export/home/oracle/orcl/admin/cuug/udump/cuug_ora_1959.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] 以下内容选自告警日志: Starting ORACLE instance (normal) ...... processes = 150
__shared_pool_size = 75497472
__large_pool_size = 4194304
__java_pool_size = 4194304
__streams_pool_size = 0
sga_target = 167772160
control_files = /export/home/oracle/orcl/oradata/cuug/control01.ctl, /export/home/oracle/orcl/oradata/cuug/control02.ctl, /export/home/oracle/orcl/oradata/cuug/control03.ctl
db_block_size = 8192
__db_cache_size = 79691776
compatible = 10.2.0.2.0
db_file_multiblock_read_count= 16
db_recovery_file_dest = /export/home/oracle/orcl/flash_recovery_area
db_recovery_file_dest_size= 2147483648
undo_management = AUTO
undo_tablespace = UNDOTBS1
remote_login_passwordfile= EXCLUSIVE
db_domain =
dispatchers = (PROTOCOL=TCP) (SERVICE=cuugXDB)
job_queue_processes = 10
background_dump_dest = /export/home/oracle/orcl/admin/cuug/bdump
user_dump_dest = /export/home/oracle/orcl/admin/cuug/udump
core_dump_dest = /export/home/oracle/orcl/admin/cuug/cdump
audit_file_dest = /export/home/oracle/orcl/admin/cuug/adump
db_name = cuug
open_cursors = 300
pga_aggregate_target = 16777216
...... Completed: ALTER DATABASE MOUNT Tue Dec 13 17:38:47 2011 ALTER DATABASE RECOVER datafile 2 Tue Dec 13 17:38:48 2011 Media Recovery Start SMON: enabling cache recovery ARC2 started with pid=18, OS id=1982
Tue Dec 13 17:39:11 2011 ARC2: Archival started ARC0: STARTING ARCH PROCESSES COMPLETE ARC0: Becoming the heartbeat ARCH fTue Dec 13 17:39:22 2011 Successfully onlined Undo Tablespace 1. Tue Dec 13 17:39:22 2011 SMON: enabling tx recovery Tue Dec 13 17:39:23 2011 Database Characterset is ZHS16GBK Tue Dec 13 17:39:32 2011 Errors in file /export/home/oracle/orcl/admin/cuug/udump/cuug_ora_1959.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] Tue Dec 13 17:39:36 2011 DEBUG: Replaying xcb 0x588c40e4, pmd 0x58a54c7c for failed op 8
Doing block recovery for file 2 block 2116 -------------文件2 错误
No block recovery was needed Tue Dec 13 17:40:05 2011 Errors in file /export/home/oracle/orcl/admin/cuug/udump/cuug_ora_1959.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] Tue Dec 13 17:40:22 2011 Errors in file /export/home/oracle/orcl/admin/cuug/udump/cuug_ora_1959.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] Tue Dec 13 17:40:22 2011 DEBUG: Replaying xcb 0x588c40e4, pmd 0x58a54c7c for failed op 8
Doing block recovery for file 2 block 2116
No block recovery was needed Tue Dec 13 17:40:53 2011 Errors in file /export/home/oracle/orcl/admin/cuug/bdump/cuug_smon_1945.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] Tue Dec 13 17:40:56 2011 DEBUG: Replaying xcb 0x588c40e4, pmd 0x58a54c7c for failed op 8
Tue Dec 13 17:40:56 2011 Non-fatal internal error happenned while SMON was doing shrinking of rollback segments.
SMON encountered 1 out of maximum 100 non-fatal internal errors. Tue Dec 13 17:40:56 2011 Doing block recovery for file 2 block 2116
No block recovery was needed Tue Dec 13 17:41:32 2011 Errors in file /export/home/oracle/orcl/admin/cuug/bdump/cuug_pmon_1933.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] Tue Dec 13 17:41:37 2011 Errors in file /export/home/oracle/orcl/admin/cuug/bdump/cuug_pmon_1933.trc:
ORA-00600: internal error code, arguments: [4194], [38], [40], [], [], [], [], [] Tue Dec 13 17:41:37 2011 PMON: terminating instance due to error 472 Instance terminated by PMON, pid = 1933 --------Oracle 内部错误,无法正常open database 启动数据库到mount 状态:
----------查看数据文件,发现file 2 是undo datafile SQL> select checkpoint_change # ,file# from v$datafile;
CHECKPOINT_CHANGE # FILE#
------------------ ---------- 785377 1
785377 2
785377 3
785377 4
785377 5
SQL> select checkpoint_change # ,file# from v$datafile_header;
CHECKPOINT_CHANGE # FILE#
------------------ ---------- 785377 1
785377 2
785377 3
785377 4
785377 5
SQL> col name for a50
SQL> select file # ,name from v$datafile;
FILE # NAME
---------- -------------------------------------------------- 1 /export/home/oracle/orcl/oradata/cuug/system01.dbf
2 /export/home/oracle/orcl/oradata/cuug/undotbs01.dbf
3 /export/home/oracle/orcl/oradata/cuug/sysaux01.dbf
4 /export/home/oracle/orcl/oradata/cuug/users01.dbf
5 /export/home/oracle/orcl/oradata/cuug/example01.dbf
SQL> show parameter undo NAME TYPE ------------------------------------ --------------------------------- VALUE ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1 ---------设置undo management 为手工方式(manual) SQL> alter system set undo_management = manual scope=spfile; System altered. SQL> alter system set undo_tablespace= '' scope=spfile;
System altered. SQL> startup force mount; ORACLE instance started. Total System Global Area 167772160 bytes Fixed Size 1279120 bytes Variable Size 83889008 bytes Database Buffers 79691776 bytes Redo Buffers 2912256 bytes Database mounted. ----------正常打开库 SQL>alter database open; Database altered. -----------添加新的undo 表空间 SQL> create undo tablespace rtbs 2 datafile '/export/home/oracle/orcl/oradata/cuug/rtbs01.dbf' size 100m;
Tablespace created. SQL> select file_id,file_name,tablespace_name from dba_data_files; FILE_ID FILE_NAME TABLESPACE_NAME
---------- -------------------------------------------------- -------------------- 4 /export/home/oracle/orcl/oradata/cuug/users01.dbf USERS
3 /export/home/oracle/orcl/oradata/cuug/sysaux01.dbf SYSAUX
2 /export/home/oracle/orcl/oradata/cuug/undotbs01.dbf UNDOTBS1
1 /export/home/oracle/orcl/oradata/cuug/system01.dbf SYSTEM
5 /export/home/oracle/orcl/oradata/cuug/example01.dbf EXAMPLE
6 /export/home/oracle/orcl/oradata/cuug/rtbs01.dbf RTBS
6 rows selected. SQL> alter system set undo_management =auto scope=spfile; System altered. SQL> alter system set undo_tablespace = rtbs scope=spfile; System altered. ----------重新启动数据库,正常后,删除旧的undo tablespace SQL> drop tablespace undotbs1 including contents and datafiles; Tablespace dropped. ----------重新启动数据库,数据库恢复正常 SQL> startup force ORACLE instance started. Total System Global Area 167772160 bytes Fixed Size 1279120 bytes Variable Size 83889008 bytes Database Buffers 79691776 bytes Redo Buffers 2912256 bytes Database mounted. Database opened. SQL> col file_name for a50
SQL> select file_id,file_name ,tablespace_name from dba_data_files; FILE_ID FILE_NAME TABLESPACE_NAME
---------- -------------------------------------------------- -------------------- 4 /export/home/oracle/orcl/oradata/cuug/users01.dbf USERS
3 /export/home/oracle/orcl/oradata/cuug/sysaux01.dbf SYSAUX
1 /export/home/oracle/orcl/oradata/cuug/system01.dbf SYSTEM
5 /export/home/oracle/orcl/oradata/cuug/example01.dbf EXAMPLE
6 /export/home/oracle/orcl/oradata/cuug/rtbs01.dbf RTBS
SQL> show parameter undo NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string |
本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/741124,如需转载请自行联系原作者