有的人可能還不知道什麼是重作日誌文件,其實就是你的oradata目錄下面的那幾個redo.log文件。數據庫
做用:當你的數據庫崩潰的時候,管理員能夠經過重作日誌文件和數據庫備份文件,把數據庫恢復到最近一次記錄日誌時的狀態。oracle
在建立oracle數據庫的時候,默認建立了3個重作日誌組(對於數據庫來講,至少須要2個重作日誌組),每個日誌組包含一個或者多個重作日誌文件。ide
每個重作日誌組都有本身的內部序號,oracle按照序號從小到大的順序向日志組中寫入日誌信息。當一個重作日誌組寫滿後,後臺進程LGWR開始寫入下一個重作日誌組,依次類推,假如說全部的重作日誌組都寫滿了,則從第一個日誌組開始覆蓋重寫,如此循環寫入。spa
其中,重作日誌文件有三種狀態:3d
current(當前狀態):正在被lgwr進程寫入日誌
active(活動狀態):正在被實例用於數據庫恢復blog
inactive(未活動狀態):顧名思義,就是沒被使用的狀態進程
日誌組狀態能夠經過視圖v$log進行查看:get
好,接下來咱們開始搞一下以下幾個技術點:產品
⒈增長日誌組及其成員
實際工做中,爲了防止後臺進程LGWR等待寫入日誌組致使效率過低,做爲管理員,咱們要增長重作日誌組。注意:重作日誌文件的大小通常在10M - 50M之間,默認是50M。
接下來我就在數據庫中添加一個日誌組(日誌組是由日誌文件組成的,咱們只能查到日誌組序號,看到的只是日誌文件):
如上圖所示,紅框中是直接建立了日誌組4,默認序號是日後面自動排的。也能夠在增長日誌組的時候直接指定組序號,如藍框中的語句。
⒉建立日誌組中的日誌文件
舉例:爲第5個重作日誌組添加一個新的日誌文件
注意:
A:若是咱們在工做中發現存放某個日誌文件的磁盤損壞了,這時候就須要刪除該損壞磁盤的日誌文件,防止oracle將重作日誌繼續寫入到損壞的日誌文件中。
① 若是整個日誌文件組都再也不須要(刪除日誌組,其中的成員日誌文件也會刪除)
其中:
Ⅰ.一個數據庫至少須要兩個重作日誌組,刪除時不能超過這個限制;
Ⅱ.只能刪除處於inactive狀態的日誌組,若是要刪除處於current狀態的日誌組,則必須手動切換日誌,將它切換到inactive狀態。
切換日誌組方法以下:
Ⅲ.若是數據庫處於歸檔狀態,在刪除重作日誌組以前必須肯定目標日誌組已經歸檔。
② 僅僅只是刪除日誌組成員
舉例:刪除第4個日誌組中的成員redo4_2.log,以下圖所示:
須要注意的是,不管是刪除日誌組仍是刪除日誌成員,刪除的都只是數據字典和控制文件中的日誌組和日誌成員信息,對應的物理文件並無刪除。打開個人Linux裏面,給你們看一下就會發現,個人物理文件仍是存在的。若要刪除,則須要手工幹掉。(window更簡單,這裏不講)
③ 清空日誌文件
舉例:清空第4個日誌組中的全部日誌文件內容
B:若是你的某一個日誌文件存放在/home目錄下,結果磁盤空間不足,是否是應該把日誌文件移動到別的盤呢?怎麼移動呢?步驟以下:
① 關閉數據庫
② 手動複製源文件到目標位置
③ 啓動實例,加載數據庫,但不打開數據庫
④ 從新設置重作日誌文件的路徑
注意:to上面的是源文件路徑,下面的是目標文件路徑。
⑤ 打開數據庫
OK,到此爲止已經成功更改了重作日誌文件路徑,如今系統使用的redo4*.log的路徑是/home/oracle/backup下面的redo4_1bak.log,來,咱們經過查看數據字典視圖v$logfile證明一把:
特別地,查看重作日誌信息經常使用視圖:
v$log 查看重作日誌組信息
v$logfile 查看日誌組中日誌文件信息
v$log_history 查看日誌歷史信息
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!
看到了吧?
就是這麼好玩
就是這麼6
有木有?