程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle重做日志的實現方法

Oracle重做日志的實現方法

編輯:Oracle數據庫基礎

Oracle重做日志操作是為了記錄數據的改變,提供數據庫的恢復,下面就為您介紹重做日志的運行流程,希望對您能夠有所幫助。

一、Oracle引入重做日志目的:記錄數據的改變,提供數據庫的恢復。

1、日志文件需要分組,同一個重做日志組的每個成員所存的信息完全相同。

2、每個組中的重做日志文件均被稱為成員

3、每組最好有2、3個成員,分別放置不同的物理磁盤,這樣安全性較高。

4、最少需要兩個重做日志組

二、Oracle重做日志的運行流程:

Oracle重做日志按照有序循環的方式被使用,即當一組日志文件被填滿後,循環覆蓋下一組日志文件,不斷循環。此時稱為日志切換。檢查點操作也在此時發生,檢查點操 作是用來實現同步的,它會寫數據文件的頭信息、控制文件。在歸檔模式下,當一組日志文件被填滿後,ARCH(歸檔寫進程)將這組復制到歸檔日志文件 中。(在ARCH正在寫的重做日志文件LGWR是不可以寫的)

1、Oracle重做日志文件的定稿是依靠LGWR後台進程

2、.LGWR正在寫的重做日志組稱為:當前重做日志組。

3、重做日志文件------聯機日志文件;歸檔日志文件------脫機日志文件

三、查詢重做日志組:

1、日志組:

select group#, sequence#, members, bytes, status, archived from v$log;

Status列中各值的意義:

Current:當前組。

Inactive:實例恢復已不需要這組日志了

ActivIE:這組日志是活動的,但非當前組。例如正在歸檔。

Unused:此組從未被寫過。是日志剛被添加到DB中的狀態。

2、日志文件:

Select * from v$logfile;

Status列中各值的含義:

空白:此文件正在使用。

Stale:該文件內容是不完全的。

Invalid:該文件不可以被訪問。例如剛建立

Deleted:該文件已不再有用。

四、創建與刪除重做日志文件組:

1、添加刪除重做日志文件組:

Alter database add logfile (‘d:\**.log’, ‘e:\**.log’ ) size15m;

(這樣創建的2個重做日志文件都會是同一組)

Alter database drop logfile group 4;

刪除指定組號的重做日志組(刪除後實際文件並未刪除,需手動刪除)

刪除過程中出現的各種限制條件如下:

current log group當前日志組不可刪除,要刪除當前日志組需要先對當前日志組進行切換,使用命令為alter system switch logfile;

active log group活動的日志組不可刪除

no archived log group沒有歸檔的日志組不可刪除(前提是已運行在歸檔模式下)

2、添加/刪除重做日志文件:

Alter database add logfile member‘d:\red004.log’ to group 1,‘d:\red005.log’ to group2;

Alter database drop logfile member ‘d:\red004.log’;
刪除時遇到的限制條件:

不能刪除當前組的成員,如要刪除則:強制性切換重做日志的命令:alter system switch logfile;

active log group活動的日志成員不可刪除

no archived log group沒有歸檔的日志成員不可刪除(前提是已運行在歸檔模式下)

at least one member per group當日志成員中只有一個成員

特例:

有的時候在刪除重做日志文件redo log file時,會出現如下錯誤

ERROR位於第1行:

ORA-00362:要求輸入成員以組成組4中的有效日志文件

ORA-01517:日志成員: 'C:\Oracle\ORADATA\GXCNC\REDO041.LOG'

(之所以不能drop logfile member from group 2,是因為group 2的其他redo log file的狀態不對。這種情況,應該作幾次alter system switch logfile ,使group 2的其他redo log file的狀態變為正常 就可以了。)
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved