问题描述
生产环境是 windowns Oracle11g 11203 版本的单机数据库。(建议oralce数据库千万不要装在widown上) 服务器在断电后重启服务器后,数据无法启动,日志介质损坏:
SQL
>
startup
ORACLE instance started
.
.........
ORA
-
00333
:
redo
log read error block
8194
count
8192
SQL
>
select
group
#,sequence#,archived,status from v$log;
GROUP
# SEQUENCE# ARC STATUS
----------
----------
---
----------------
1
517247
NO CURRENT
3
517246
NO INACTIVE
2
517245
NO INACTIVE
alter 日志报错如下图:

故障处理过
但是这个数据库没有备份,没有开归档,只能使用非常规恢复!
1、 通过spfile创建生成pfile
SQL> create pfile from spfile;
File created.
2、修改pfile中
同时修改undo参数,通常事情是redo出问题了,那就意味着有事务没提交完,那undo必然不一致,所以干脆把undo也改了 initorcl.ora
*.
_allow_resetlogs_corruption
=
TRUE
*.
undo_management
=
'MANUAL'
*.
rollback_segments
=
'SYSTEM'
3、使用PFILE启动数据库同时进行recover操作
sqlplus
/
as
sysdba
SQL
>
startup mount pfile
=
'e:\app\initorcl.ora'
SQL
>
RECOVER DATABASE
until
cancel
;
>>>进行自动
recover
到时间点
指定日志:
{<
RET
>=
suggested
|
filename
|
AUTO
|
CANCEL
}
cancel
4、打开数据库
SQL
>
alter database open resetlogs
;
alter database open resetlogs
ORA
-
00600Q
:
internal
error code
,
arguments
:
[
2662
,
[
2
],[
1094161685
,[
0
],[
1094218279
],[
8388625
],
此报错是数据块SCN号小于当前SCN号,用ADJUST SCN调整SCN号。
5、参数并用启动
SQL
>
startup mount pfile
=
'e:\app\initorcl.ora'
SQL
>
alter session
set
events
'10015 trace name ADJUST SCN level 1'
;
SQL
>
alter database open resetlogs
;
6、新建一个UNDO表空间
SQL
>
create undo tablespace UNDOTBS2 datafile
''
E
:
\APP\ADMINSTRATOR\ORDATA\ORCL\UNDOTBS2
.
DBF
'
SIZE 5G;
Tablespace created.
7、删除旧的UNDO表空间、修改pfile并创建spfile
_allow_resetlogs_corruption
=
TRUE
---去掉
*.
undo_management
=
'auto'
*.
undo_tablespace
=
UNDOTBS2
SQL
>
drop tablespace UNDOTBS including contents
and
datafiles
;
Tablespace
dropped
.
SQL
>
create spfile form pfile
;
8、关闭数据库实例
SQL
>
shutdown immediate
;
Database
closed
.
Database
dismounted
.
ORACLE instance shut down
.
9、启动数据库实例(使用spfile)
SQL
>
startup
;
ORACLE instance started
.
Total
System
Global
Area
1.6777E+10
bytes
Fixed
Size
2113368
bytes
Variable
Size
9982443688
bytes
Database
Buffers
6777995264
bytes
Redo
Buffers
14663680
bytes
Database
mounted
.
Database
opened
.
至此数据库无报错。
10、总节
1,在数据库异常修复时,建议进行备份操作;
2,建议对数据库开启归档操作;
3,建议定期对数据库进行备份操作。
