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

Oracle重做日志文件

系統(tǒng) 2185 0

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

???? 1.系統(tǒng)崩潰后的實例恢復(fù);

???? 2.通過備份恢復(fù)數(shù)據(jù)文件之后恢復(fù)介質(zhì);

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

?

一.簡介

?

Oracle 引入重做日志的目的:數(shù)據(jù)庫的恢復(fù)。

?

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

?

重做日志性質(zhì):聯(lián)機日志文件, oracle 服務(wù)器運行時需要管理它們。

?

相關(guān)數(shù)據(jù)字典: v$log ; v$logfile 。

?

操作者權(quán)限:具有 sys 用戶或 system 用戶權(quán)限。

?

二.獲取重做日志的信息

?

1. 獲得數(shù)據(jù)庫中有多少個重做日志組,每個組中有多少個成員、日志大小及狀態(tài)。

?

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

?

FROM V$LOG;

?

結(jié)果如下圖:

?

Oracle重做日志文件

?

?

?

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

?

  • inactive :表示實例恢復(fù)已不再需要這組聯(lián)機重做日志組了。
  • active :表示該組是活動的但不是當(dāng)前組,實例恢復(fù)時需要這組日志。
  • current :表示該組日志是當(dāng)前組,該聯(lián)機重做日志組是活動的。
  • unused :表示該日志組從未寫過,是重做日志剛剛添加到狀態(tài)。

?

2. 獲得數(shù)據(jù)庫中每個重做日志組的成員所在目錄、文件名及狀態(tài)。

?

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

FROM V$LOGFILE;

?

結(jié)果如下圖:

?

??? Oracle重做日志文件

?

?

?

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

?

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

?

?

?

三.日志切換

?

聯(lián)機重做日志文件是以一種循環(huán)的方式來使用,當(dāng)一組聯(lián)機重做日志文件被寫滿時, LGWR 將開始寫下一組日志文件,這被稱為日志切換??梢栽谌魏螘r候強制性的進行重做日志切換操作。

?

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

?

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

?

Oracle重做日志文件

?

執(zhí)行命令 ALTER SYSTEM SWITCH LOGFILE 后,在寫日志組變?yōu)? 1

?

Oracle重做日志文件

?


?

四.添加和刪除聯(lián)機重做日志文件組

?

1. 添加聯(lián)機重做日志組

?

創(chuàng)建新的重做日志組 SQL 命令格式:

?

ALTER DATABASE [ 數(shù)據(jù)庫名 ]

?

ADD LOGFILE [GROUP 正整數(shù) ] 文件名

?

[, [GROUP 正整數(shù) ] 文件名 ] ……]

?

?

?

創(chuàng)建新的重做日志組例子:

?

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

?

SIZE 15M;

?

?

?

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

?

顯示結(jié)果如下,創(chuàng)建一組新的日志組,組號是 4 ,有兩個成員,成員大小為 15M 。

?

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

?

FROM V$LOG;

?

?

?

Oracle重做日志文件

?

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

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

Oracle重做日志文件

?

?

2. 刪除聯(lián)機重做日志組

?

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

?

ALTER DATABASE [ 數(shù)據(jù)庫名 ]

?

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

?

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

?

?

?

刪除重做日志組例子:

?

ALTER DATABASE DROP LOGFILE GROUP 4;

?

?

?

顯示結(jié)果如下,可以看出 GROUP 4 的日志組已經(jīng)不存在。

?

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

?

FROM V$LOG;

?

Oracle重做日志文件

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

Oracle重做日志文件

?

?

?

注意:

?

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

?

?

?

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

?

1. 添加聯(lián)機重做日志成員

?

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

?

ALTER DATABASE [ 數(shù)據(jù)庫名 ]

?

ADD LOGFILE MEMBER

?

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

?

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

?

?

?

添加重做日志成員例子:

?

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;

?

?

?

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

?

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

?

FROM V$LOG;

?

Oracle重做日志文件

?

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

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

Oracle重做日志文件

?

?

?

2. 刪除聯(lián)機重做日志成員

?

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

?

ALTER DATABASE [ 數(shù)據(jù)庫 ]

?

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

?

?

?

刪除重做日志成員例子:

?

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

?

?

?

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

?

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

?

FROM V$LOG;

?

Oracle重做日志文件

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

?

?

Oracle重做日志文件

?

注意:

?

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

?

Oracle重做日志文件

?

?

?

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

?

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

?

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

Oracle重做日志文件


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 陆河县| 江北区| 大石桥市| 梅州市| 迁西县| 如东县| 闽侯县| 诏安县| 长垣县| 阜宁县| 香港 | 清原| 西充县| 资兴市| 定兴县| 潞城市| 从化市| 勃利县| 炎陵县| 锡林郭勒盟| 萝北县| 色达县| 海淀区| 四会市| 保山市| 容城县| 张家口市| 青田县| 湘乡市| 肥东县| 望都县| 普安县| 望谟县| 垦利县| 金湖县| 黔江区| 义马市| 揭东县| 上高县| 久治县| 绵阳市|