日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

解密Oracle redo生成過程

作者簡介

惠星星,現(xiàn)就職于北京海天起點(diǎn),持有OCP 10g、OCP 11g、OCM 11g證書,并有長達(dá)8年電力行業(yè)業(yè)務(wù)維護(hù)、數(shù)據(jù)庫維護(hù)服務(wù)經(jīng)驗(yàn),擅長Oracle數(shù)據(jù)庫性能優(yōu)化、故障處理及數(shù)據(jù)可視化技術(shù)研究。

online redo log files是Oracle數(shù)據(jù)庫最重要的物理結(jié)構(gòu)之一,由于Write-Ahead-Log(即日志寫入優(yōu)先)機(jī)制,確保instance failure時(shí),實(shí)例級(jí)恢復(fù)正常完成,已提交的數(shù)據(jù)被正常恢復(fù),本文主要通過dtrace工具分析redo產(chǎn)生過程中l(wèi)atch資源的申請(qǐng)過程,分析Oracle redo生成的詳細(xì)過程。

關(guān)于Redo Log Buffer

redo log buffer 是SGA中的一個(gè)循環(huán)緩沖區(qū),主要存儲(chǔ) redo entries。redo entries包含重構(gòu)或重做DML或DDL操作對(duì)數(shù)據(jù)庫所做的更改所需的信息。數(shù)據(jù)庫恢復(fù)將redo entries 應(yīng)用于數(shù)據(jù)文件,以重構(gòu)丟失的更改。

Oracle數(shù)據(jù)庫進(jìn)程將redo entries從用戶內(nèi)存空間復(fù)制到SGA中的重做日志緩沖區(qū)。redo entries占用緩沖區(qū)中連續(xù)的、順序的空間。LGWR進(jìn)程將redo log buffer 中的redo entries寫入磁盤上online redo log files。

解密Oracle redo生成過程

測(cè)試腳本

#!/usr/sbin/dtrace -s -n
dtrace:::BEGIN
{
i=1;
}


pid$1::kslgetl:entry,
pid$1::kslfre:entry
/pid == $1/
{
printf("i=%d pid:::==%s:%s:%s:%s %x %x %x %d %x %x",i, probeprov, probemod, probefunc, probename,arg0,arg1,arg2,arg3,arg4,arg5);
i=i+1;
}

測(cè)試redo entries寫入redo log buffer

【session 1】:

查詢進(jìn)程id

SQL> select spid from v$process where ADDR in (select PADDR from v$session where sid=(select sid from v$mystat where rownum=1));

SPID
------------------------------------------------------------------------
1358
SQL> create table orastar.t1(c1 varchar2(10),c2 varchar2(10));

Table created.

【session 2】:

啟動(dòng)dtrace程序

./list_latch.d -x switchrate=10hz 1391 > list_latch.log

【session 1】:

生成redo entries:

SQL> insert into orastar.t1 values(1,1);
1 row created.

SQL> commit;
Commit complete.

分析過程

【生成latch地址】

cat list_latch.log |grep kslgetl|awk '{print "'''" "00000000" $6 "'''" ","}'|sort $1 | uniq

【查詢latch查詢】

set line 200
col name for a30
select lower(addr),LATCH#,NAME,HASH,GETS,WAIT_TIME from V$LATCH_CHILDREN where lower(addr) in (
'000000006000d178',
'000000006000d370',
'000000006000d7e8',
'000000006002dab8',
'000000006010df10',
'00000000bb137e80',
'00000000bb5d6868',
'00000000bb6d6a28',
'00000000bb6d8570',
'00000000bb7d8730',
'00000000bc593120',
'00000000bc6ba8f0',
'00000000bc6e7998',
'00000000bc6ea088',
'00000000bc6ea128',
'00000000bd6c4fe0',
'00000000bd6c50d8',
'00000000bd6c5338',
'00000000be263330',
'00000000be26f100',
'00000000be95ed98'
);
解密Oracle redo生成過程

redo生成過程說明

解密Oracle redo生成過程
  • server process在user memory space中產(chǎn)生redo entry

  • server process獲取redo copy latch

  • server process 獲取redo allocation latch

  • 在log buffer中分配空間

  • 釋放redo allocation latch

  • server process將redo entry信息寫入到log buffer中

  • 釋放redo copy latch

說明

以上內(nèi)容為個(gè)人多次測(cè)試結(jié)果,由于個(gè)人原因,如有分析不足之處還請(qǐng)見諒及指正,謝謝。

參考文檔

《Oracle® Database Concepts 11g Release 2 (11.2) 》

原創(chuàng)文章,版權(quán)歸本文作者所有,如需轉(zhuǎn)載請(qǐng)注明出處

分享到:
標(biāo)簽:Oracle redo
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定