日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ORACLE——重做日志文件管理

發布時間:2024/4/17 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE——重做日志文件管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聯機重做日志文件概念

聯機日志文件又叫重做日志文件,記錄了對數據庫修改的信息,包括用戶對數據修改和數據庫管理員對數據庫結構的修改。它主要用于在發生故障的時候和數據庫備份文件配合恢復數據庫,一般發生故障有2個情況:一個是介質損壞另外一個是用戶誤操作。每個數據庫至少有兩個日志文件組,每組至少包含1個或者多個日志成員,這里要多個日志成員的原因是防止日志文件組內某個日志文件損壞后及時提供備份,所以同一組的日志成員一般內容信息相同,但是存放位置不同。

在Oracle數據庫中,執行數據修改操作后,并不是馬上寫入數據文件,而是首先生成重做信息,并寫入SGA中的一塊叫LOG_BUFFER的固定區域,LOG_BUFFER的空間并不是無限大,事實上它非常小,一般設置在3~5MB左右。LOG_BUFFER有一定的觸發條件,當滿足觸發條件后,會有相應進程將LOG_BUFFER中的內容寫入一個特定類型的文件,就是傳說中的聯機重做日志文件。

聯機重做日志文件是循環使用的(見下圖)。當第一個日志文件達到一定數量時,就會停止寫入,而轉向第二個日志文件,第二個滿轉向第三個日志文件.第三個滿就向第一個日志文件寫入.而第一個日志文件有沒有自動備份就涉及到歸檔或者不歸檔的問題.當數據庫自動對原來的日志文件進行備份的話就叫歸檔模式,不需要對數據庫進行自動備份就叫非歸檔模式.

那么什么情況觸發LGWR進程寫日志文件呢?以下情況將觸發LGWR進程寫操作:

1).當commit事務發生

2).當redo log buffer存儲達到1/3

3).當重做日志緩沖區有超過一個兆字節的更改記錄

4).在DBWN將buffer cache修改過的數據塊的信息寫入到數據文件之前

觸發CHECK POINT事件的情況:

1).每次日志切換時。

2).實例通過normal,transactional,immediate選項關閉時

3).通過設置初始化參數FAST_START_MTTR_TARGET強制發生

4) .數據庫管理員手工設置ALTER SYSTEM CHECKPOINT、 ALTER TABLESPACE, DATAFILE OFFLINE時。

5).使用alter tablespace[OFFLINE NORMAL|READ ONLY|BEGIN BACKUP] 語句導致指定數據文件發生檢查點

非歸檔模式只能做冷備份,歸檔模式可以做熱備份并且可以做增量備份和部分恢復.

在非歸檔模式下執行數據庫備份時,基本上數據管理員通過重做日志文件不能夠恢復全部的數據,所以必須備份所有的數據文件和控制文件,而且必須使用 shutdown normal等命令關閉數據庫.

而在歸檔模式下.當出現介質損壞(硬盤損壞或者誤刪數據文件)或者例程失敗(服務器斷電),數據庫管理員可以通過歸檔日志來防止數據丟失,而非歸檔模式只能應對instance失敗.在歸檔模式下,數據庫處于open狀態,仍然可以備份數據庫,而不影響數據庫的正常使用.不僅可以做完全恢復而且可以將數據庫恢復到特定的點.

非歸檔模式和歸檔模式各有各的優點,選擇時可以參考:1,數據庫中數據變化的頻繁程度;2,企業對數據丟失的態度;3,數據庫是否需要7x24運行,因為非歸檔模式需要關閉數據庫才能進行備份.

查看歸檔模式

ORACLE數據庫擁有2種歸檔模式,ARCHIVELOG和NOARCHIVELOG。可以通過下面方式查看數據庫的歸檔模式

?

(1): SELECT NAME, LOG_MODE FROM V$DATABASE(2):SQL> archive log list數據庫日志模式 存檔模式自動存檔 啟用存檔終點 USE_DB_RECOVERY_FILE_DEST最早的聯機日志序列 106下一個存檔日志序列 108當前日志序列 108SQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 2861Current log sequence 2866

?

?

日志模式切換

?

非歸檔模式切換歸檔模式

1、關閉服務:

SQL> SHUTDOWN IMMEDIATE;

2、不加載數據文件(只加載控制文件和日志文件)啟動服務:

SQL> STARTUP MOUNT;

3、查看日志歸檔模式:

SQL> ARCHIVE LOG LIST

數據庫日志模式 非存檔模式

自動存檔 禁用

存檔終點 USE_DB_RECOVERY_FILE_DEST

最早的聯機日志序列 163

當前日志序列 165

4、配置數據庫啟用日志歸檔模式

SQL> ALTER DATABASE ARCHIVELOG;

數據庫已更改。

5、加載并打開數據文件:

SQL> ALTER DATABASE OPEN;

數據庫已更改。

6、再次查看日志歸檔模式

SQL> ARCHIVE LOG LIST

數據庫日志模式 存檔模式

自動存檔 啟用

存檔終點 USE_DB_RECOVERY_FILE_DEST

最早的聯機日志序列 163

下一個存檔日志序列 165

當前日志序列 165

SQL> ARCHIVE LOG START

已處理的語句

7:修改參數LOG_ARCHIVE_START

SQL> ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;

系統已更改。

歸檔模式切換到非歸檔模式

1、關閉服務

SQL> SHUTDOWN IMMEDIATE;

2、啟動服務(不加載數據文件)

SQL> STARTUP MOUNT;

3、設置數據庫為非歸檔模式

SQL> ALTER DATABASE NOARCHIVELOG;

數據庫已更改。

4、加載并打開數據文件

SQL> ALTER DATABASE OPEN;

數據庫已更改。

日志切換和檢查點切換

?

SQL>ALTER SYSTEM SWITCH LOGFILE;

?

日志切換就是停止寫當前日志組,轉而寫另外一個新的日志組、系統可以自動切換,也可以手工切換。當發生SWITCH LOGIFLE時,系統會在后臺完成CHECKPOINT的操作。CHECKPOINT是一個事件,它用于減少instant recovery的時間.當CHECKPOINT發生時,它會觸發DBWR進程,把database buffer中變化了的數據寫入數據文件,同時chkp進程更新control file和datafile header,以使它們保持一致。檢查點其實是一個后臺進程,用來保證所有修改過的數據庫緩沖區的東西都寫入數據庫文件。它由參數LOG_CHECKPOINT_TIMEOUT和LOG_CHECKPOINT_INTERVAL來決定。檢查點完成后,系統將更新數據庫頭和控制文件,也保證數據庫的同步。這里主要體現在一個系統改變號上SCN(也叫檢查點號)。它分別出現在v$log表的FIRST_CHANGE#列和V$DATAFILE的CHECKPOINT_CHANGE#列還有V$DATABASE的CHECKPOINT_CHANGE#上。 只要說明三個值相同,那么數據庫就沒有不同步的現象。否則就要進行介質恢復。這里可以通過日志切換改變新的檢驗點號。當然引起SCN改變的情況還有很多。

?

SQL>ALTER SYSTEM CHECKPOINT;

?

強制設置檢查點間隔

?

ALTER SYSTEM SET FAST_START_MTTR_TARGET = n

?

?

聯機日志文件的規劃

聯機日志文件的規劃原則如下:

1:分散放開,多路復用。一般會將同一組的不同日志成員文件放到不同的磁盤或不同的裸設備上。以提高安全性。

2:把重做日志放在速度最快的硬盤上(即:日志所在的磁盤應當具有較高的I/O),一般會將日志文件放在裸設備上。

3:把重做日志文件設為合理大小:例如,增大日志文件大小可以加快一些大型的INSERT、UPDATE、DELETE操作,也能降低日志文件切換頻率。減少一些日志等待事件。一般根據具體業務情況有所不同。一般日志組大小應滿足自動切換間隔至少15-20分鐘左右業務需求

4:ORACLE推薦,同一個重做日值組下的所有重做日志文件大小、成員個數一致.

聯機重做日志狀態

日志文件組的狀態一般有INACTIVE、ACTIVE、CURRENT、UNUSED、CLEARING、CLEARING_CURRNT等六種狀態:

SQL> SELECT STATUS FROM V$LOG;

UNUSED : 表示該聯機重做日志文件組對應的文件還從未被寫入過數據,通常剛剛創建的聯機重做日志文件組會顯示成這一狀態。當日志切換到這一組時,就會改變狀態。

CURRENT : 表示當前正在使用的日志文件組。該聯機重做日志組是活動的。當前Oracle數據庫正在使用的聯機重做日志文件組。

ACTIVE : 表示該組是活動的但不是當前組,實例恢復時需要這組日志。如果處于這一狀態,表示雖然當前并未使用,不過該文件中內容尚未歸檔,或者文件中的數據沒有全部寫入數據文件,一旦需要實例恢復,必須借助該文件中保存的內容。

INACTIVE: 表示實例恢復已不再需要這組聯機重做日志組了。表示對應的聯機重做日志文件中的內容已被妥善處理,該組聯機重做日志當前處于空閑狀態。

CLEARING:表示該組重做日志文件正被重建(重建后該狀態會變成UNUSED)。

CLEARING_CURRENT:表示該組重做日志重建時出現錯誤。

日志文件的狀態有STALE,INVALID 、DELETED、空白 四種狀態。可以通過下面語句查看

SELECT STATUS FROM V$LOGFILE

INVALID : 表示該文件是不可以被訪問的。

STALE : 表示該文件中的內容是不完全的。

空白 : 表示該文件正在使用。

DELETED : 表示該文件已不再有用了。

ARCHIVED列值為YES表示已經歸檔,NO表示未歸檔。 SEQUENCE列值表示日志序列號,每進行一次日志切換就+1。

創建新的日志組

ALTER DATABASE ADD LOGFILE GROUP 1('/oradata/redo01_1.log', '/oradata/redo01_2.log') SIZE 8G REUSE;

?

一開始增加的日志文件,日志序列為0,狀態為UNUSED,因為沒有使用過,進行切換后,就可以正常使用了。

?

刪除舊的日志組

ALTER DATABASE DROP LOGFILE GROUP 1;

注意事項:

1)執行刪除日志組命令后,其實只是在數據字典中刪掉了對于日志信息。你查看對應的日志文件,你會發現日志文件還在,只有手動刪除日志文件,才能真正的刪除日志文件。

2)不能刪除僅有的2個文件組;

例如,數據庫只有兩組重做日志文件,刪除其中一組ALTER DATABASE DROP LOGFILE GROUP 2;

ORA-01567: 刪除日志 2 時將為實例 orcl (線程 1) 保留兩個以下的日志文件

ORA-00312: 聯機日志 2 線程 1: 'E:\APP\KERRY\ORADATA\ORCL\REDO02.LOG'

3)不能刪除正在活動的文件組(即CURRENT、ACTIVE狀態的日志文件);

Windows平臺:

Linux平臺:

?

SQL> alter database drop logfile group 10;ERROR at line 1: ORA-01623: log 10 is current log for instance WFCSDB03 (thread 1) - cannot drop ORA-00312: online log 10 thread 1: '/oradata/raw/redo04_1.raw' ORA-00312: online log 10 thread 1: '/oradata/raw/redo04_2.raw'

?

?

?

SQL> alter system switch logfile; System altered.SQL> select * from v$log;GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------1 1 265 1.0733E+10 2 NO INACTIVE 54310652 08-AUG-127 1 263 4194304000 2 NO INACTIVE 54310551 08-AUG-128 1 264 4194304000 2 NO INACTIVE 54310641 08-AUG-129 1 266 4194304000 2 NO INACTIVE 54310659 08-AUG-1210 1 267 4194304000 2 NO ACTIVE 54310666 08-AUG-1211 1 268 4194304000 2 NO CURRENT 56534648 09-AUG-1212 1 262 4194304000 2 NO INACTIVE 54310376 08-AUG-127 rows selected.SQL> alter database drop logfile group 10; alter database drop logfile group 10 * ERROR at line 1: ORA-01624: log 10 needed for crash recovery of instance WFCSDB03 (thread 1) ORA-00312: online log 10 thread 1: '/oradata/raw/redo04_1.raw' ORA-00312: online log 10 thread 1: '/oradata/raw/redo04_2.raw'

?

?

?

4)不能刪除當前組的成員,當日志組只有一個成員時,不能刪除日志組成員。

5)不能刪除還沒有歸檔的文件組。

增加日志組文件

ALTER DATABASE ADD LOGFILE MEMBER 'E:\APP\KERRY\ORADATA\ORCL\REDO011.LOG' TO GROUP 1

刪除日志組文件

不能刪除日志組中唯一的日志文件,可以使用刪除組的方法直接刪除組;不能刪除沒有歸檔或者還在活動的日志;

ALTER DATABASE DROP LOGFILE MEMBER 'E:\APP\KERRY\ORADATA\ORCL\REDO011.LOG'

重命名日志組文件

?

ALTER DATABASE RENAME FILE 'E:\APP\KERRY\ORADATA\ORCL\REDO02.LOG' TO 'D:\REDO02.LOG';

注意2點:

一不能移動正在使用的日志文件,否則執行腳本會報如下錯誤:

二確保執行命令前把目標文件已經移動到新目錄下了,否則會報如下錯誤:

ORA-01511:重命名日志/數據文件時出錯

ORA-01512:重命名日志文件E:\APP\KERRY\ORADATA\ORCL\REDO02.LOG出錯,未找到新文件D:\REDO02.LOG

ORA-27041: 無法打開文件。

?
?

清空日志文件數據

清空是說刪除日志文件的內容。主要用于數據庫無法進行有效恢復的時候。比如標識為current的日志文件組所有文件都壞了等。只有非active 和非current狀態的組才能被清空

ALTER DATABASE CLEAR LOGFILE 'XXX\XXX\XX.LOG';ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP NUMBER;

查詢日志組相關信息

?

下面是重做日志相關的數據字典

?

SELECT * FROM V$LOG;SELECT * FROM V$LOGFILE;SELECT * FROM V$ARCHIVED_LOG;SELECT * FROM V$RECOVER_FILESELECT * FROM V$LOG_HISTORY;SELECT * FROM V$LOGHIST;

?

--查看閃回日志使用狀況

?

SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;

?

--查看日志組切換時間間隔

SELECT N.RECID AS RECID ,N.FIRST_TIME AS FIRST_TIME ,M.FIRST_TIME AS END_TIME ,ROUND((M.FIRST_TIME - N.FIRST_TIME) * 24 * 60, 2)AS MINUTESFROM V$LOG_HISTORY M, V$LOG_HISTORY NWHERE M.RECID = N.RECID + 1ORDER BY M.RECID

?

轉載于:https://www.cnblogs.com/kerrycode/archive/2012/08/09/2631035.html

總結

以上是生活随笔為你收集整理的ORACLE——重做日志文件管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男操女视频在线观看 | 国产a级一级片 | 黄色性视频网站 | 性渴老太作爱 | heyzo久久| 99热偷拍| 亚洲精品一区二区二区 | 最新中文字幕在线视频 | 日韩综合在线 | 美女擦边视频 | 1级性生活片 | 日本一级淫片免费放 | 久久久久久久久久久电影 | av噜噜在线观看 | 国产精品亚洲无码 | 久久成人久久 | 二区影院| 人妻体体内射精一区二区 | 久久只有这里有精品 | 男人操女人逼逼视频 | 欧美性做爰免费观看 | 免费一级欧美 | 国产精品日韩 | 色欧美88888久久久久久影院 | 久久亚洲国产精品 | 国产成人高清 | 久久久久国产一区二区三区潘金莲 | 亚洲欧美韩国 | 亚洲一区二区三区视频在线 | 一级做a爰 | 精品影视一区二区 | 善良的少妇伦理bd中字 | 韩国一区二区三区在线观看 | 欧美激情91 | 亚欧日韩av | 天天舔天天射 | 欧美黑人做爰爽爽爽 | 中文在线字幕 | 久久综合免费视频 | 超级黄色片 | 在线免费av网址 | 亚洲天堂三级 | 午夜电影一区二区 | 亚洲综合另类 | www.亚色 | 秋霞网一区 | 久久黄色网 | 亚洲18在线看污www麻豆 | 少妇色综合 | 国产一级特黄 | 天天久久综合网 | 久久激情小说 | 黑人一级黄色片 | 国产伊人自拍 | 黄色大片儿 | 欧美日色 | 欧美黄色大片免费看 | 久久久久久久精 | avxx| 日本韩国免费观看 | 伊人久久精品 | 亚洲天天影视 | 国产熟女一区二区三区五月婷 | 99热思思 | 日本精品专区 | 极品蜜桃臀肥臀-x88av | 亚洲AV无码成人精品区麻豆 | 亚洲欧美综合 | 成年人在线免费看 | 日本在线一级片 | 午夜电影你懂的 | 天堂av一区 | 热久久伊人 | 快播久久 | 日韩无码专区 | 国产精品伦子伦免费视频 | 国产欧美久久一区二区三区 | 99久久精品国产成人一区二区 | 国产在线拍 | 献给魔王伊伏洛基亚吧动漫在线观看 | 福利免费观看 | 国产日本欧美在线观看 | 免费成人结看片 | 免费看国产黄色片 | 成人在线观看网址 | 伊人色综合久久久 | 亚洲 欧美 国产 另类 | 青青草狠狠操 | 午夜视| a级淫片 | 欧美v视频 | 蜜桃av免费 | 日批的视频 | 精品96久久久久久中文字幕无 | 女同久久另类69精品国产 | 秋霞国产精品 | 97无码精品人妻 | 亚洲你懂的| 在线观看a视频 |