日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Oracle重做日志文件

系統 2165 0

??? 重做日志文件(redo log file) 對于Oracle數據庫至關重要。它們是數據庫的事務日志。通常只用于恢復,不過也可以用于以下工作:

???? 1.系統崩潰后的實例恢復;

???? 2.通過備份恢復數據文件之后恢復介質;

???? 3.備用(standby)數據庫處理;

?

一.簡介

?

Oracle 引入重做日志的目的:數據庫的恢復。

?

Oracle 相關進程:重做日志寫進程( LGWR )。

?

重做日志性質:聯機日志文件, oracle 服務器運行時需要管理它們。

?

相關數據字典: v$log ; v$logfile

?

操作者權限:具有 sys 用戶或 system 用戶權限。

?

二.獲取重做日志的信息

?

1. 獲得數據庫中有多少個重做日志組,每個組中有多少個成員、日志大小及狀態。

?

SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVED

?

FROM V$LOG;

?

結果如下圖:

?

Oracle重做日志文件

?

?

?

狀態列( status )所顯示常用狀態的含義:

?

  • inactive :表示實例恢復已不再需要這組聯機重做日志組了。
  • active :表示該組是活動的但不是當前組,實例恢復時需要這組日志。
  • current :表示該組日志是當前組,該聯機重做日志組是活動的。
  • unused :表示該日志組從未寫過,是重做日志剛剛添加到狀態。

?

2. 獲得數據庫中每個重做日志組的成員所在目錄、文件名及狀態。

?

??? SELECT GROUP#,STATUS,TYPE,MEMBER

FROM V$LOGFILE;

?

結果如下圖:

?

??? Oracle重做日志文件

?

?

?

狀態列( status )所顯示常用狀態的含義:

?

  • 空白:表示該文正在使用。
  • stale :表示該文件中的內容是不完全的。
  • invalid :表示該文件是不可以被訪問的。
  • deleted :表示該文件已不在有用了。

?

?

?

三.日志切換

?

聯機重做日志文件是以一種循環的方式來使用,當一組聯機重做日志文件被寫滿時, LGWR 將開始寫下一組日志文件,這被稱為日志切換。可以在任何時候強制性的進行重做日志切換操作。

?

強制重做日志切換命令: ALTER SYSTEM SWITCH LOGFILE;

?

日志切換前,正在寫的日志組是 3

?

Oracle重做日志文件

?

執行命令 ALTER SYSTEM SWITCH LOGFILE 后,在寫日志組變為 1

?

Oracle重做日志文件

?


?

四.添加和刪除聯機重做日志文件組

?

1. 添加聯機重做日志組

?

創建新的重做日志組 SQL 命令格式:

?

ALTER DATABASE [ 數據庫名 ]

?

ADD LOGFILE [GROUP 正整數 ] 文件名

?

[, [GROUP 正整數 ] 文件名 ] ……]

?

?

?

創建新的重做日志組例子:

?

ALTER DATABASE ADD LOGFILE ('d:\logfile\redo 04a.log','e:\logfile\redo04b.log')

?

SIZE 15M;

?

?

?

注意: 由于沒有使用 GROUP 選項,所有 oracle 系統會自動地在最大的組號上加 1 來產生新的組號。

?

顯示結果如下,創建一組新的日志組,組號是 4 ,有兩個成員,成員大小為 15M

?

SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVED

?

FROM V$LOG;

?

?

?

Oracle重做日志文件

?

下面的結果顯示了新建日志的文件路徑和文件名。

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

Oracle重做日志文件

?

?

2. 刪除聯機重做日志組

?

刪除重做日志組 SQL 命令格式:

?

ALTER DATABASE [ 數據庫名 ]

?

DROP LOGFILE {GROUP 正整數 | (‘ 文件名 ’[, ‘ 文件名 ’]……)}

?

[,{GROUP 正整數 | (‘ 文件名 ’[, ‘ 文件名 ’]……)}]…….

?

?

?

刪除重做日志組例子:

?

ALTER DATABASE DROP LOGFILE GROUP 4;

?

?

?

顯示結果如下,可以看出 GROUP 4 的日志組已經不存在。

?

SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVED

?

FROM V$LOG;

?

Oracle重做日志文件

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

Oracle重做日志文件

?

?

?

注意:

?

當前的重做日志組不能刪除。如果要刪除,先使用日志強制切換命令 ALTER SYSTEM SWITCH LOGFILE 進行切換。當一組重做日志被刪除后,它的操作系統文件依然存在,只能用操作系統命令刪除,否則會留下一些無用的垃圾文件。

?

?

?

五.添加和刪除聯機重做日志成員(文件)

?

1. 添加聯機重做日志成員

?

創建新的重做日志成員(文件) SQL 格式:

?

ALTER DATABASE [ 數據庫名 ]

?

ADD LOGFILE MEMBER

?

[ ‘ 文件名 ’ [REUSE] [, ’ 文件名 ’ [REUSE]]]……

?

TO {GROUP 正整數 | (‘ 文件名 ’[, ‘ 文件名 ’]……)}

?

?

?

添加重做日志成員例子:

?

ALTER DATABASE ADD LOGFILE MEMBER

?

'd:\logfile\redo01b.log' TO GROUP 1,

?

'd:\logfile\redo02b.log' TO GROUP 2,

?

'e:\logfile\redo03b.log' TO GROUP 3;

?

?

?

顯示結果如下,可以看出每個日志組增加了一個日志成員,有原來的 2 個增加到 3 個。

?

SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVED

?

FROM V$LOG;

?

Oracle重做日志文件

?

下面的結果,顯示了新增日志文件的路徑和文件名。

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

Oracle重做日志文件

?

?

?

2. 刪除聯機重做日志成員

?

刪除聯機重做日志成員(文件) SQL 命令格式:

?

ALTER DATABASE [ 數據庫 ]

?

DROP LOGFILE MEMBER ‘ 文件名 ’ [, ‘ 文件名 ’] ……

?

?

?

刪除重做日志成員例子:

?

ALTER DATABASE DROP LOGFILE MEMBER 'd:\logfile\redo02b.log';

?

?

?

結果顯示如下,可以看出刪除了組 2 一個日志成員。

?

SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVED

?

FROM V$LOG;

?

Oracle重做日志文件

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

?

?

Oracle重做日志文件

?

注意:

?

當前的重做日志組不能刪除,否則會報如下錯誤:

?

Oracle重做日志文件

?

?

?

如果要刪除,應該先使用 ALTER SYSTEM SWITCH LOGFILE 命令進行切換。

?

如果數據庫運行在歸檔模式,而要刪除的成員還沒有被歸檔完,那也無法刪除它。

?

當一個重做日志成員被刪除后,它的操作系統文件依然存在,只能用操作系統命令刪除。

Oracle重做日志文件


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 黄梅县| 崇阳县| 于田县| 龙川县| 弥勒县| 绥滨县| 新巴尔虎右旗| 济阳县| 高唐县| 枣强县| 嘉黎县| 石首市| 正宁县| 化德县| 富裕县| 广德县| 澄迈县| 日照市| 桦川县| 岑巩县| 鄂州市| 广汉市| 垫江县| 巴彦县| 西华县| 钟山县| 余姚市| 房山区| 章丘市| 泰州市| 曲水县| 霍山县| 雅安市| 定襄县| 拉孜县| 新疆| 任丘市| 衡山县| 遵义县| 平江县| 拉萨市|