Oracle數(shù)據(jù)庫在運(yùn)行當(dāng)中,用戶更改的數(shù)據(jù)首先會(huì)存放在數(shù)據(jù)庫高速緩沖區(qū)當(dāng)中,為了提升磁盤讀寫,oracle機(jī)制不會(huì)頻繁的將緩沖區(qū)的數(shù)據(jù)寫到磁盤,而是等到檢查點(diǎn)或者數(shù)據(jù)高速緩沖區(qū)達(dá)到一定數(shù)量時(shí)才會(huì)寫入數(shù)據(jù)庫文件;倘若在檢查點(diǎn)或者數(shù)據(jù)量等條件還沒滿足系統(tǒng)就掛了,那么此時(shí)用戶提交的數(shù)據(jù)就會(huì)丟失,因?yàn)閿?shù)據(jù)還在內(nèi)存里,為了防止數(shù)據(jù)丟失,oracle提出了重做日志。
重做日志的目的是用來做數(shù)據(jù)恢復(fù)的,LGWR進(jìn)程負(fù)責(zé)優(yōu)先把用戶更改的數(shù)據(jù)寫到重做日志文件中。
LGWR的觸發(fā)條件:
在事務(wù)提交的時(shí)候(COMMIT)
Redo Log Buffer 三分之一滿
Redo Log Buffer 多于一兆的變化記錄
在DBWn寫入數(shù)據(jù)文件之前
如果數(shù)據(jù)庫開啟了歸檔(查看是否歸檔archive log list),那么重做日志會(huì)在寫滿后,關(guān)閉當(dāng)前日志文件并把重做日志文件中的內(nèi)容移動(dòng)到歸檔文件中,歸檔完畢后輪詢下一組可用重做日志組;也叫歸檔重做日志。
查看系統(tǒng)當(dāng)前的重做日志文件信息
如上圖數(shù)據(jù)庫有5個(gè)日志組,每組日志組有2個(gè)日志成員;目測(cè)數(shù)據(jù)庫開啟了歸檔模式,當(dāng)前正在使用的重做日志為第4組重做日志;
查看重做日志文件位置
重做日志組內(nèi)的每一個(gè)重做日志文件稱為一個(gè)成員,一個(gè)組內(nèi)的每一個(gè)成員具有相同的日志序列號(hào)(log sequence number)并且成員的文件大小相同。
來個(gè)自畫原理圖
在實(shí)際生產(chǎn)中,會(huì)需要添加多個(gè)重做日志組,且每個(gè)日志組至少有一個(gè)以上的重做日志成員,并存放于不同的磁盤分區(qū)。
實(shí)戰(zhàn):添加重做日志組和日志成員。
alter database add logfile group 6 ('/u01/app/oracle/oradata/orcl/redo0601.log','/u01/app/oracle/oradata/orcl/redo0602.log') size 5M;
以上添加一個(gè)重做日志組6,重做日志成員有兩個(gè)redo0601.log和redo0602.log都為5M大小。
查看剛才添加的日志組使用情況,新添加的是未使用Unused
實(shí)戰(zhàn):刪除重做日志組
alter database drop logfile group 6——若active狀態(tài)不可刪除
重做日志組有六種狀態(tài):
UNUSED : 表示該聯(lián)機(jī)重做日志文件組對(duì)應(yīng)的文件還從未被寫入過數(shù)據(jù),通常是剛剛創(chuàng)建的聯(lián)機(jī)重做日志文件或重建后的聯(lián)機(jī)重做日志文件。
CURRENT : 表示當(dāng)前正在使用的日志文件組。該聯(lián)機(jī)重做日志組是活動(dòng)的。
ACTIVE : 表示該組是活動(dòng)的但不是當(dāng)前組,實(shí)例恢復(fù)時(shí)需要這組日志。如果處于這一狀態(tài),表示雖然當(dāng)前并未使用,文件中的數(shù)據(jù)沒有全部寫入數(shù)據(jù)文件,一旦需要實(shí)例恢復(fù),必須借助該文件中保存的內(nèi)容??梢允且褮w檔或沒歸檔。
INACTIVE: 表示實(shí)例恢復(fù)已不再需要這組聯(lián)機(jī)重做日志組了,文件中的數(shù)據(jù)全部寫入數(shù)據(jù)文件。該組聯(lián)機(jī)重做日志當(dāng)前處于空閑狀態(tài)??梢允且褮w檔或沒歸檔。
CLEARING:在執(zhí)行了 ALTER DATABASE CLEAR LOGFILE 后,表示該組重做日志文件正被重建(重建后該狀態(tài)會(huì)變成UNUSED)。
CLEARING_CURRENT:表示該組重做日志重建時(shí)出現(xiàn)錯(cuò)誤,如io錯(cuò)誤。
實(shí)戰(zhàn):添加重做日志成員
alter database add logfile member '/u01/app/oracle/oradata/orcl/redo0603.log' to group 6
實(shí)戰(zhàn):刪除重做日志成員
alter database drop logfile member '/u01/app/oracle/oradata/orcl/redo0603.log'
實(shí)戰(zhàn):切換日志
執(zhí)行:alter system switch logfile
切換后變成當(dāng)前可用狀態(tài)
如果要重設(shè)重做日志文件大小,需要?jiǎng)h除日志組重建重做日志組并設(shè)置新的重做成員大小;
1.alter database drop logfile group 6
2.alter database add logfile group 6 ('/u01/app/oracle/oradata/orcl/redo0603.log') size 100M
如果無法刪除重做日志組,請(qǐng)執(zhí)行alter system switch logfile(可以多次執(zhí)行切換)并查看日志組狀態(tài),如果為INACTIVE則可以刪除;也可以執(zhí)行alter database checkpoint,此檢查點(diǎn)的功能是LGWR進(jìn)程把重做日志緩沖區(qū)數(shù)據(jù)寫入重做日志文件中,同時(shí)通知DBWR進(jìn)程將數(shù)據(jù)庫高速緩沖區(qū)提交的數(shù)據(jù)寫入數(shù)據(jù)文件中。
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、堯都網(wǎng)絡(luò)推廣、微信小程序、堯都網(wǎng)絡(luò)營銷、堯都企業(yè)策劃、堯都品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供堯都建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cn
本文標(biāo)題:Oracle的重做日志
文章位置:http://muchs.cn/article4/iegioe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站建設(shè)、App設(shè)計(jì)、響應(yīng)式網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)