oracle ora-00333 修改案例

pingdanorcale發表於2023-12-14

1.問題原因

資料庫伺服器由於斷電引起,在alter database open是報  ORA-00333: redo log read error block 9167 count 1073,

相關環境如下:單例項windows oracle11.2.0.4,無備份,沒開歸檔。

2. 處理

 備份資料檔案、控制檔案、redo檔案

select name  from v$datafile 

union 

select member from v$logfile 

union

select name  from v$controlfile;

冷備份

  修改隱含引數


啟動到mount:

執行 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], [], [], [], [], [], 

SQL>Selectcurrent_scn from v$database;

-------------------------------------------------------------------

0

設定隱含引數_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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章