您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關redo文件損壞的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
第一種情況:
asm存儲方式,在數據庫open步驟時,提示某個磁盤組無法歸檔某個在線日志,無法寫入文件,此時未歸檔的redo log剛好是需要啟動時歸檔的日志。
1.確定一下 歸檔空間是否已經滿了
如果alert日志提示,沒有可用的目標空間,首先需要考慮這一點
2.如果空間釋放后(使用rman進行刪除),仍不能啟動
需要把對應的在線日志清空
alter system clear logfile group 2;
或:alter system clear unarchived logfile group2;
3.啟動后,全備份數據庫
rman>backup database plush archivelog to destination='/oracle/dbbackup';
第二種情況:
普通單實例情況下,服務器重啟無法打開,提示某個在線日志找不到無法打開,啟動到mount狀態后查詢v$log發現狀態為current:
alert日志有如下錯誤:
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 4 thread 1: '/home/oracle/oradata/orcl/redo04B.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
查看對應目錄文件,文件確實存在。
alter database open;提示 數據庫需要crash recovery;
嘗試 關閉數據庫 拷貝對應的redo4.log文件,但無法拷貝。
數據庫沒有備份,需要進行異常恢復。
alter database mount;
recover database until cancel; -- 提示需要使用resetlogs方式打開
alter database open resetlogs; -- 提示datafile 1 需要進一步恢復
recover datafile 1; -- 又回到提示redo04B.log文件無法讀取
alter system set "_allow_resetlogs_corruption"=true scope=both;
shutdown immediate;
alter dtabase mount;
recover database until cancel;
recover datafile 1;
alter database open;
此時alert中存在 ORA-00600: internal error code, arguments: [4194]錯誤,這是因為 undo中數據庫與實際數據不一致導致的。
重建-undo可以解決此問題;
create undo tablespace undotbs2 datafile '/u01/oracledata/undotbs201.dbf' size 10G autoextend on next 100M maxsize 20G;
alter system set undo_tablespace=undotbs2 scope=both;
shutdown immediate
startup
--全備份數據庫
rman>backup database plush archivelog to destination='/dbbackup/';
此時,數據庫可以啟動,正常訪問,可能有部分數據丟失
如果有些表查詢 提示ora-01555錯誤,可以通過忽略對應回滾段來處理
alter system set "_corrupted_rollback_segments"='_SYSSMU9_1790233411$';
如果提示 初始化參數不能修改,需要執行如下
alter system set "_corrupted_rollback_segments"='_SYSSMU9_1790233411$' scope=spfile;
shutdown immediate
startup
關于“redo文件損壞的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。