首页 > 数据库 > Oracle > oracle ora-00333 修改案例
1.问题原因
数据库服务器由于断电引起,在alter database open是报 ORA-00333: redo log read error block 9167 count 1073,
相关环境如下:单实例windows oracle11.2.0.4,无备份,没开归档。
2. 处理
select name from v$datafile
union
select member from v$logfile
union
select name from v$controlfile;
冷备份
修改隐含参数
执行 recover database until cancel;10
cancel
同时查看数据文件:
SQL> col checkpoint_change# for 9999999999999999
SQL> select file#,checkpoint_change# from v$datafile;
可以看到数据库的SCN是一致的。 执行 recover database until cancel命令:
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}CANCEL ------->选择cancel
SQL> alter database open resetlogs; 执行open resetlogs报错
创建pfile文件并启动数据库 创建pfile文件
修改pfile.ora,增加如下部分
_allow_resetlogs_corruption=TRUE
*.undo_management='MANUAL'
*.rollback_segments='SYSTEM'
alter database open resetlogs ;
o RA-00600: internal error code, arguments: [2662], [0], [6202286], [0], [6211768], [12582976], [], [], [], [], [],
设置隐含参数_minimum_giga_scn
select to_char(checkpoint_change#,'99999999999999') from v$database;
16060095276884
select
distinct(to_char(checkpoint_change#,'99999999999999')) from v$datafile_header;
(TO_CHAR(CHECKP
---------------
16060095276884
SQL> select 16060095276884/1024/1024/1024 from dual;
15060095276784/1024/1024/1024
-----------------------------
15027.0930
修改pfile:
_minimum_giga_scn=15027
现次启动数据库,顺利open,但有一堆JOB报错,估计掉电时正在跑JOB.也就解释了为啥周日掉电也会把数据库redo 搞垮。
SQL> alter system setjob_queue_processes=0;
导出全部做一个逻辑导出咯。
expdp system/systemdirectory=full dumpfile=dump_%u.dmp logfile=expo2023.log full=y parallel=10
导出时也报了一个错,说回滚段不可用,忘了把undo改成真正的undo了,
SQL> create undo tablespace undotbs2 datafile size 4G;
修改pfile,改成成undotbs2;再次重启,OK。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10201716/viewspace-3000214/ ,如需转载,请注明出处,否则将追究法律责任。