久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redo丟失怎么處理

145次閱讀
沒有評論

共計 5234 個字符,預計需要花費 14 分鐘才能閱讀完成。

這篇文章主要介紹 Redo 丟失怎么處理,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一. 說明:
1. 以下所說的當前日志指日志狀態為 CURRENT,ACTIVE, 非當前日志指日志狀態為 INACTIVE
2. 不用考慮歸檔和非歸檔模式,2 種模式下的 Redo 丟失情況一樣。

二. 丟失 Redo 的 4 種情況:
第一種情況:非當前日志,正常關閉。
第二種情況:非當前日志,非正常關閉。
第三種情況:當前日志,正常關閉。
第四種情況:當前日志,非正常關閉。

三. 處理方法:
第一、二種情況的處理方法一樣,直接把日志文件 clear 即可。
SQL alter database clear logfile group 3;
SQL alter database clear unarchived logfile group 3;// 如果 INACTIVE 狀態的在線 Redo 還未歸檔,增加關鍵字 unarchived 完成 clear 操作。(ACTIVE,INACTIVE 都有可能未完成歸檔,歸檔是否完成可以查看 v$log.archived 字段)。

例子:

SQL startup mount

ORACLE 例程已經啟動。

Total System Global Area  263639040 bytes

Fixed Size                  1384012 bytes

Variable Size             167772596 bytes

Database Buffers           88080384 bytes

Redo Buffers                6402048 bytes

數據庫裝載完畢。

SQL select group#,thread#,status,archived from v$log;

    GROUP#    THREAD# STATUS                           ARCHIV

———- ———- ——————————– ——

         1          1 CURRENT                          NO

         3          1 ACTIVE                           NO

         2          1 INACTIVE                         YES

SQL alter database clear logfile group 3;

alter database clear logfile group 3

*

第 1 行出現錯誤:

ORA-01624: 日志 3 是緊急恢復實例 orcl (線程 1) 所必需的

ORA-00312: 聯機日志 3 線程 1: E:\APP\ORADATA\ORCL\REDO03.LOG

SQL alter database clear logfile group 2;

數據庫已更改。

第三種情況的處理辦法:
SQL startup mount;
SQL recover database until cancel;
SQL alter database open resetlogs;

例子 1:

SQL shutdown immediate

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL startup mount

ORACLE 例程已經啟動。

Total System Global Area  263639040 bytes

Fixed Size                  1384012 bytes

Variable Size             167772596 bytes

Database Buffers           88080384 bytes

Redo Buffers                6402048 bytes

數據庫裝載完畢。

SQL alter database open resetlogs;

alter database open resetlogs

*

第 1 行出現錯誤:

ORA-01139: RESETLOGS 選項僅在不完全數據庫恢復后有效

SQL recover database until cancel;

完成介質恢復。

SQL alter database open resetlogs;

數據庫已更改。

例子 2(第三種情況的第二個處理方法):

SQL shutdown immediate

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL startup mount

ORACLE 例程已經啟動。

Total System Global Area  263639040 bytes

Fixed Size                  1384012 bytes

Variable Size             167772596 bytes

Database Buffers           88080384 bytes

Redo Buffers                6402048 bytes

數據庫裝載完畢。

SQL select group#,thread#,status,archived from v$log;

    GROUP#    THREAD# STATUS                           ARCHIV

———- ———- ——————————– ——

         1          1 CURRENT                          NO

         3          1 INACTIVE                         YES

         2          1 INACTIVE                         YES

SQL alter database clear logfile group 2;

數據庫已更改。

SQL alter database clear logfile group 3;

數據庫已更改。

SQL alter database clear unarchived logfile group 1;

數據庫已更改。

    這里 CURRENT 的 Redo 日志文件組能被 clear unarchived。

SQL alter database open;

數據庫已更改。

    如果 Redo 日志文件丟失,clear 操作完成之后將在原有位置創建新的 Redo 日志文件。

第四種情況的處理方法:

1. 通過備份來還原、恢復數據。
2. 通過修改參數文件中的參數
_allow_resetlogs_corruption=TRUE
來強制啟動數據庫。  雖然能夠啟動數據庫到 open 狀態,但是啟動后的數據庫數據字典、數據有可能導致不一致的情況出現,故需要在 open 下把整個數據庫 export,然后刪除庫,重建,再將 export 的數據 import 到新的數據庫中。

四. 驗證數據庫是否正常關閉的方法

SQL select open_mode from v$database;

OPEN_MODE

——————–

READ WRITE

SQL select status from v$instance;

STATUS

————

OPEN

SQL select file#,checkpoint_change#,fuzzy from v$datafile_header;

   FILE# CHECKPOINT_CHANGE# FUZ

———- —————— —

         1            1165820 YES

         2            1165820 YES

         3            1165820 YES

         4            1165820 YES

   FUZZY bit in datafile header means that there may have been writes into a datafile after the last checkpoint. E.g. there may be changes written to datafile with higher SCN than checkpoint_change# stored in datafile header (seen from v$datafile_header.checkpoint_change#).
        FUZYY 表示模糊性,意思是,該數據文件處于模糊狀態,在最近一次 CHECKPOINT 后,該文件上的數據可能被修改過了,但沒來得及更新到該文件上(或者該文件不知道),需要讀取日志信息來判斷。

SQL select file#,checkpoint_change#,last_change# from v$datafile;

   FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

———- —————— ————

         1            1165820

         2            1165820

         3            1165820

         4            1165820

    由于數據庫是打開的狀態,所以終止 SCN 是空,SCN 的內容可參考文章:http://space.itpub.net/23135684/viewspace-627343

SQL shutdown immediate

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL startup mount

ORACLE 例程已經啟動。

Total System Global Area  313860096 bytes

Fixed Size                  1384352 bytes

Variable Size             155189344 bytes

Database Buffers          150994944 bytes

Redo Buffers                6291456 bytes

數據庫裝載完畢。

SQL select file#,checkpoint_change#,fuzzy from v$datafile_header;

   FILE# CHECKPOINT_CHANGE# FUZ

———- —————— —

         1            1166324 NO

         2            1166324 NO

         3            1166324 NO

         4            1166324 NO

    在正常管理數據庫的情況下,FUZZY 字段都應該是 NO,表示沒有模糊不清的 SCN 存儲在數據文件中。

SQL select file#,checkpoint_change#,last_change# from v$datafile;

   FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

———- —————— ————

         1            1166324      1166324

         2            1166324      1166324

         3            1166324      1166324

         4            1166324      1166324

    正常關閉數據庫的終止 SCN 應該和啟動 SCN 相同。FUZZY 等于 NO,且數據庫的終止 SCN 等于啟動 SCN 等于數據文件 SCN,那么可以認為數據庫是正常關閉,且在打開數據庫之前不需要執行實例恢復或 Crash 恢復。

SQL alter database open;

數據庫已更改。

SQL shutdown abort

ORACLE 例程已經關閉。

SQL startup mount

ORACLE 例程已經啟動。

Total System Global Area  313860096 bytes

Fixed Size                  1384352 bytes

Variable Size             155189344 bytes

Database Buffers          150994944 bytes

Redo Buffers                6291456 bytes

數據庫裝載完畢。

SQL select file#,checkpoint_change#,fuzzy from v$datafile_header;

   FILE# CHECKPOINT_CHANGE# FUZ

———- —————— —

         1            1166327 YES

         2            1166327 YES

         3            1166327 YES

         4            1166327 YES

    非正常關閉數據庫實例,FUZZY 字段的值是 YES。

SQL select file#,checkpoint_change#,last_change# from v$datafile;

   FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

———- —————— ————

         1            1166327

         2            1166327

         3            1166327

         4            1166327

    非正常關閉數據庫實例,終止 SCN 依然為空。那么,在數據庫被打開之前必須使用歸檔 Redo 日志完成實例恢復或 Crash 恢復。

以上是“Redo 丟失怎么處理”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-24發表,共計5234字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 宜君县| 西宁市| 梁河县| 浏阳市| 扬州市| 横山县| 襄垣县| 浮梁县| 江油市| 德庆县| 安宁市| 柘城县| 安远县| 张家口市| 察隅县| 岳阳县| 汉沽区| 巧家县| 博爱县| 塔城市| 湘潭县| 台南市| 永丰县| 滦平县| 郎溪县| 滨州市| 韶山市| 织金县| 祥云县| 中方县| 绥滨县| 西藏| 施秉县| 乌审旗| 开江县| 太仓市| 措勤县| 垦利县| 德庆县| 如皋市| 浙江省|