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

Oracle重做日志文件

系統(tǒng) 2024 0

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

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

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

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

?

一.簡(jiǎn)介

?

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

?

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

?

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

?

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

?

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

?

二.獲取重做日志的信息

?

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

?

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

?

FROM V$LOG;

?

結(jié)果如下圖:

?

Oracle重做日志文件

?

?

?

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

?

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

?

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

?

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

FROM V$LOGFILE;

?

結(jié)果如下圖:

?

??? Oracle重做日志文件

?

?

?

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

?

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

?

?

?

三.日志切換

?

聯(lián)機(jī)重做日志文件是以一種循環(huán)的方式來(lái)使用,當(dāng)一組聯(lián)機(jī)重做日志文件被寫(xiě)滿時(shí), LGWR 將開(kāi)始寫(xiě)下一組日志文件,這被稱為日志切換。可以在任何時(shí)候強(qiáng)制性的進(jìn)行重做日志切換操作。

?

強(qiáng)制重做日志切換命令: ALTER SYSTEM SWITCH LOGFILE;

?

日志切換前,正在寫(xiě)的日志組是 3

?

Oracle重做日志文件

?

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

?

Oracle重做日志文件

?


?

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

?

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

?

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

?

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

?

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

?

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

?

?

?

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

?

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

?

SIZE 15M;

?

?

?

注意: 由于沒(méi)有使用 GROUP 選項(xiàng),所有 oracle 系統(tǒng)會(huì)自動(dòng)地在最大的組號(hào)上加 1 來(lái)產(chǎn)生新的組號(hào)。

?

顯示結(jié)果如下,創(chuàng)建一組新的日志組,組號(hào)是 4 ,有兩個(gè)成員,成員大小為 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)機(jī)重做日志組

?

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

?

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

?

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)前的重做日志組不能刪除。如果要?jiǎng)h除,先使用日志強(qiáng)制切換命令 ALTER SYSTEM SWITCH LOGFILE 進(jìn)行切換。當(dāng)一組重做日志被刪除后,它的操作系統(tǒng)文件依然存在,只能用操作系統(tǒng)命令刪除,否則會(huì)留下一些無(wú)用的垃圾文件。

?

?

?

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

?

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

?

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

?

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

?

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é)果如下,可以看出每個(gè)日志組增加了一個(gè)日志成員,有原來(lái)的 2 個(gè)增加到 3 個(gè)。

?

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

?

FROM V$LOG;

?

Oracle重做日志文件

?

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

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

Oracle重做日志文件

?

?

?

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

?

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

?

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

?

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

?

?

?

刪除重做日志成員例子:

?

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

?

?

?

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

?

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

?

FROM V$LOG;

?

Oracle重做日志文件

?

SELECT GROUP#,STATUS,TYPE,MEMBER

?

FROM V$LOGFILE;

?

?

?

Oracle重做日志文件

?

注意:

?

當(dāng)前的重做日志組不能刪除,否則會(huì)報(bào)如下錯(cuò)誤:

?

Oracle重做日志文件

?

?

?

如果要?jiǎng)h除,應(yīng)該先使用 ALTER SYSTEM SWITCH LOGFILE 命令進(jìn)行切換。

?

如果數(shù)據(jù)庫(kù)運(yùn)行在歸檔模式,而要?jiǎng)h除的成員還沒(méi)有被歸檔完,那也無(wú)法刪除它。

?

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

Oracle重做日志文件


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 新沂市| 波密县| 临西县| 河津市| 梅州市| 合作市| 霍林郭勒市| 房产| 任丘市| 密云县| 城固县| 望谟县| 新乡市| 和龙市| 荔波县| 江陵县| 托克逊县| 神木县| 长兴县| 碌曲县| 新昌县| 南召县| 子洲县| 彰化市| 霞浦县| 安康市| 策勒县| 泰州市| 资兴市| 迁安市| 正镶白旗| 开化县| 利川市| 习水县| 馆陶县| 衡水市| 青神县| 田林县| 东至县| 甘南县| 景宁|