真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle中DG備庫undo工作模式是什么

這篇文章主要講解了“Oracle中DG備庫undo工作模式是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Oracle中DG備庫undo工作模式是什么”吧!

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、韓城網(wǎng)站維護(hù)、網(wǎng)站推廣。

一:修改主庫備庫undo表空間

1.在主庫創(chuàng)建undo表空間(會(huì)自動(dòng)同步到備庫)

SYS@prod>create undo tablespace smallundo datafile '/u01/app/oracle/oradata/prod/smallundo.dbf' size 2M;

修改undo表空間

SYS@prod>alter system set undo_tablespace=smallundo;

2.在備庫修改undo表空間  //由于備庫處于redo only模式,無法在線修改undo_tablespace

SYS@stddb>shutdown immediate

[oracle@service2 dbs]$ cd $ORACLE_HOME/dbs

修改參數(shù)文件 *.undo_tablespace='smallundo'

SYS@stddb>create spfile from pfile

SYS@stddb>startup

主庫:

SYS@prod>show parameter undo;  

NAME                                     TYPE         VALUE

------------------------------------ ----------- ------------------------------

undo_management                      string         AUTO

undo_retention                             integer         900

undo_tablespace                      string         SMALLUNDO

備庫:

SYS@stddb>show parameter undo

NAME                                     TYPE         VALUE

------------------------------------ ----------- ------------------------------

undo_management                      string         AUTO

undo_retention                             integer         900

undo_tablespace                      string         smallundo

二 :測試

1.在主庫創(chuàng)建test表:

SYS@prod>create table test (id number);

SYS@prod>insert into test(id) values(1);

SYS@prod>commit;

2.在備庫模擬長時(shí)間的查詢操作:

SYS@stddb>variable rfc refcursor

SYS@stddb>execute open :rfc for select * from test;

3.在主庫執(zhí)行循環(huán)更新操作:

SYS@prod>

begin

  for i in 1..20000 loop

  update test set id = 3;

  commit;

  end loop;

end;

4.在備庫獲取查詢結(jié)果:

SYS@stddb>print :rfc

ERROR:

ORA-01555: snapshot too old: rollback segment number 13 with name"_SYSSMU13_2332596898$" too small

三:結(jié)論

在備庫執(zhí)行查詢語句出現(xiàn)的ORA-01555與主庫出現(xiàn)的ORA-01555原因是沒區(qū)別的,主備的undo塊是實(shí)時(shí)同步的,

本次測試中,采用的非自動(dòng)擴(kuò)展的undo表空間,由于表空間無法自動(dòng)擴(kuò)展,會(huì)優(yōu)先保留Active有可用空間,會(huì)將已經(jīng)提交事務(wù)的undo data覆蓋掉,即使沒有滿足undo retention的保留時(shí)間,所以會(huì)出現(xiàn)ORA-01555錯(cuò)誤

當(dāng)長時(shí)間查詢的SQL語句,無法從undo中獲得前映像構(gòu)造CR塊就會(huì)出現(xiàn)ORA-01555錯(cuò)誤

例如:

A會(huì)話執(zhí)行一條查詢語句,查詢數(shù)據(jù)行數(shù)為10億行,B會(huì)話執(zhí)行一條delete語句,刪除1億行數(shù)據(jù),然后進(jìn)行提交,當(dāng)B會(huì)話事務(wù)提交成功后,A數(shù)據(jù)才查詢到這1億行數(shù)據(jù),此時(shí)需要undo data來構(gòu)造一致性讀,如果此時(shí)undo date被覆蓋,那么就會(huì)出現(xiàn)Ora-01555錯(cuò)誤。

備庫CR塊構(gòu)造:

主備同步時(shí),如果主庫進(jìn)行一個(gè)事務(wù),但是這個(gè)未提交,在備庫查詢,需要構(gòu)造CR塊滿足查詢,結(jié)合當(dāng)前塊和undo塊生成CR塊。

//與主庫構(gòu)造CR模式相同,也可以理解為在備庫上查詢和在主庫上查詢使用的undo是沒區(qū)別的

測試:

SYS@prod>select * from test;

ID

----------

 3

SYS@stddb>select object_name,object_id from dba_objects where object_name='TEST' and owner='SYS';

//查詢test表的object_id

OBJECT_NAME              OBJECT_ID

-------------------- ----------

TEST                          88641

在主庫進(jìn)行一次修改操作:

SYS@prod>update test set id = 1;

1 row updated.

在主庫備庫查詢塊狀態(tài):

SYS@prod>select obj,state from x$bh where state = 3 and obj=88641;

No rows selected.

SYS@stddb>select obj,state from x$bh where state = 3 and obj=88641;

No rows selected.

執(zhí)行查詢操作:

SYS@stddb>select * from test;

ID

----------

 3

在主備庫查詢test表構(gòu)造CR塊情況:

SYS@prod>select obj,state from x$bh where state = 3 and obj=88641;

       OBJ        STATE

---------- ----------

     88641            3

     88641            3

SYS@stddb>select obj,state from x$bh where state = 3 and obj=88641;

       OBJ        STATE

---------- ----------

     88641            3

     88641            3

3是CR模式

備庫的redo工作模式:

主庫的redo日志進(jìn)行日志切換時(shí),備庫的redo日志也會(huì)隨之切換,但是沒有任何意義,僅僅算是同步,也不記錄警告日志。

SYS@stddb>select group#,status from v$log;

    GROUP# STATUS

---------- ----------------

 1 CURRENT

 2 CLEARING

 3 CLEARING

備庫的redo只有current與clearing兩種狀態(tài)。

感謝各位的閱讀,以上就是“Oracle中DG備庫undo工作模式是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Oracle中DG備庫undo工作模式是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


文章題目:Oracle中DG備庫undo工作模式是什么
當(dāng)前地址:http://weahome.cn/article/jpdjis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部