您好,登錄后才能下訂單哦!
有的人可能還不知道什么是重做日志文件,其實就是你的oradata目錄下面的那幾個redo.log文件。
作用:當你的數據庫崩潰的時候,管理員可以通過重做日志文件和數據庫備份文件,把數據庫恢復到最近一次記錄日志時的狀態。
在創建oracle數據庫的時候,默認創建了3個重做日志組(對于數據庫來說,至少需要2個重做日志組),每一個日志組包含一個或者多個重做日志文件。
每一個重做日志組都有自己的內部序號,oracle按照序號從小到大的順序向日志組中寫入日志信息。當一個重做日志組寫滿后,后臺進程LGWR開始寫入下一個重做日志組,依次類推,假如說所有的重做日志組都寫滿了,則從第一個日志組開始覆蓋重寫,如此循環寫入。
其中,重做日志文件有三種狀態:
current(當前狀態):正在被lgwr進程寫入
active(活動狀態):正在被實例用于數據庫恢復
inactive(未活動狀態):顧名思義,就是沒被使用的狀態
日志組狀態可以通過視圖v$log進行查看:
好,接下來我們開始搞一下如下幾個技術點:
⒈增加日志組及其成員
實際工作中,為了防止后臺進程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
有木有?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。