康哥教你如何有效管理重做日誌文件

有的人可能還不知道什麼是重做日誌文件,其實就是你的oradata目錄下面的那幾個redo.log文件。

作用:當你的數據庫崩潰的時候,管理員可以通過重做日誌文件和數據庫備份文件,把數據庫恢復到最近一次記錄日誌時的狀態。


在創建oracle數據庫的時候,默認創建了3個重做日誌組(對於數據庫來說,至少需要2個重做日誌組),每一個日誌組包含一個或者多個重做日誌文件。

每一個重做日誌組都有自己的內部序號,oracle按照序號從小到大的順序向日志組中寫入日誌信息。當一個重做日誌組寫滿後,後臺進程LGWR開始寫入下一個重做日誌組,依次類推,假如說所有的重做日誌組都寫滿了,則從第一個日誌組開始覆蓋重寫,如此循環寫入。

其中,重做日誌文件有三種狀態:

current(當前狀態):正在被lgwr進程寫入

active(活動狀態)正在被實例用於數據庫恢復

inactive(未活動狀態):顧名思義,就是沒被使用的狀態

日誌組狀態可以通過視圖v$log進行查看:

wKioL1mD3h3CA97iAAA0-wMJ3So875.png

好,接下來我們開始搞一下如下幾個技術點:


⒈增加日誌組及其成員

實際工作中,爲了防止後臺進程LGWR等待寫入日誌組導致效率太低,作爲管理員,我們要增加重做日誌組。注意:重做日誌文件的大小一般在10M - 50M之間,默認是50M。

接下來我就在數據庫中添加一個日誌組(日誌組是由日誌文件組成的,我們只能查到日誌組序號,看到的只是日誌文件):

wKiom1mD4WLyoQ8aAACFBHI9X6s829.png


如上圖所示,紅框中是直接創建了日誌組4,默認序號是往後面自動排的。也可以在增加日誌組的時候直接指定組序號,如藍框中的語句。


⒉創建日誌組中的日誌文件

舉例:爲第5個重做日誌組添加一個新的日誌文件

wKioL1mD4mviSCi9AABxJBKV8As572.png


注意:

A:如果我們在工作中發現存放某個日誌文件的磁盤損壞了,這時候就需要刪除該損壞磁盤的日誌文件,防止oracle將重做日誌繼續寫入到損壞的日誌文件中。

① 如果整個日誌文件組都不再需要(刪除日誌組,其中的成員日誌文件也會刪除)

wKioL1mD4_uBrSTBAABPjO-6jk4548.png

其中:

Ⅰ.一個數據庫至少需要兩個重做日誌組,刪除時不能超過這個限制;

Ⅱ.只能刪除處於inactive狀態的日誌組,如果要刪除處於current狀態的日誌組,則必須手動切換日誌,將它切換到inactive狀態。

切換日誌組方法如下:

wKioL1mD5SzRGVDvAAB_UlVYK30699.png

Ⅲ.如果數據庫處於歸檔狀態,在刪除重做日誌組之前必須確定目標日誌組已經歸檔。


② 僅僅只是刪除日誌組成員

舉例:刪除第4個日誌組中的成員redo4_2.log,如下圖所示:

wKioL1mD5mGhBZnOAABJLSfUPZE954.png


需要注意的是,無論是刪除日誌組還是刪除日誌成員,刪除的都只是數據字典和控制文件中的日誌組和日誌成員信息,對應的物理文件並沒有刪除。打開我的Linux裏面,給大家看一下就會發現,我的物理文件還是存在的。若要刪除,則需要手工幹掉。(window更簡單,這裏不講)

wKioL1mD5wSDa71LAABoyiGu8fg322.png


③ 清空日誌文件

舉例:清空第4個日誌組中的所有日誌文件內容

wKiom1mD56Him6UZAAAMapZkMhI799.png


B:如果你的某一個日誌文件存放在/home目錄下,結果磁盤空間不足,是不是應該把日誌文件移動到別的盤呢?怎麼移動呢?步驟如下:

① 關閉數據庫

wKioL1mD7oviOuEgAAAQ6Hjj83M587.png


② 手動複製源文件到目標位置

wKioL1mD71WwKlgxAAAIF3uWz9I461.png


③ 啓動實例,加載數據庫,但不打開數據庫

wKiom1mD7--yPIN3AAA2daC-XsE933.png


④ 重新設置重做日誌文件的路徑

wKioL1mD8MXgHBOFAAAaegPP-zc859.png


注意:to上面的是源文件路徑,下面的是目標文件路徑。


⑤ 打開數據庫

wKioL1mD8RvRMl1EAAAM9KaLHbk726.png


OK,到此爲止已經成功更改了重做日誌文件路徑,現在系統使用的redo4*.log的路徑是/home/oracle/backup下面的redo4_1bak.log,來,我們通過查看數據字典視圖v$logfile證實一把:

wKiom1mD8aniL-2AAAA1z9-CCH4020.png


特別地,查看重做日誌信息常用視圖:

v$log 查看重做日誌組信息

v$logfile 查看日誌組中日誌文件信息

v$log_history 查看日誌歷史信息



。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!


  看到了吧?


      就是這麼好玩

        

           就是這麼6

 

                  有木有?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章