<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇開(kāi)發(fā)語(yǔ)言培訓(xùn)專區(qū)Oracle數(shù)據(jù)庫(kù) → 有關(guān)oracle高可靠性的一些討論和想法


      共有5832人關(guān)注過(guò)本帖樹形打印

    主題:有關(guān)oracle高可靠性的一些討論和想法

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


    加好友 發(fā)短信
    等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
    有關(guān)oracle高可靠性的一些討論和想法  發(fā)帖心情 Post By:2010-12-11 10:49:48

    Oracle 數(shù)據(jù)庫(kù)復(fù)制常用腳本 Oracle的數(shù)據(jù)復(fù)制是一個(gè)Oracle數(shù)據(jù)庫(kù)產(chǎn)品中比較成熟的一項(xiàng)技術(shù),它是整個(gè)分布式計(jì)算解決方案的一個(gè)重要組成部分。 對(duì)于具有復(fù)制環(huán)境的數(shù)據(jù)庫(kù)系統(tǒng),和Oracle DBA一樣,同樣要有一個(gè)人來(lái)專門負(fù)責(zé)維護(hù)Oracle的數(shù)據(jù)復(fù)制問(wèn)題,稱之為Oracle Replication Administrator(Oracle復(fù)制治理員)。本文就Oracle數(shù)據(jù)復(fù)制中復(fù)制治理員經(jīng)常關(guān)心的一些關(guān)于復(fù)制系統(tǒng)的問(wèn)題,編寫了不同的存儲(chǔ)過(guò)程。當(dāng)然,通過(guò)Oracle提供的復(fù)制治理器也可以達(dá)到這些目的,但在實(shí)際應(yīng)用中,Oracle復(fù)制治理器具有不靈活,速度慢,同時(shí)我們不能對(duì)其查詢結(jié)果進(jìn)行隨意控制等等的缺點(diǎn)。一、查看Oracle8x延遲事務(wù)隊(duì)列調(diào)用及調(diào)用個(gè)數(shù)IT我最牛-程序員的技術(shù)討論與分享園地U Zh:uwC*f [`
    推(push)一個(gè)大的延遲事務(wù)(Deferred Transactions)隊(duì)列是非常慢的。一個(gè)常見(jiàn)的問(wèn)題就是一個(gè)事務(wù)中含有非常多的調(diào)用(calls)。假如系統(tǒng)檢測(cè)到一個(gè)錯(cuò)誤,如ora-01403(數(shù)據(jù)未找到錯(cuò)誤),也就是我們常說(shuō)的檢測(cè)到?jīng)_突,而且沒(méi)有沖突消除方法,寫到deferror錯(cuò)誤表和回滾事務(wù)的時(shí)間就會(huì)更長(zhǎng),事務(wù)中假如調(diào)用calls很多,則消耗在任何一個(gè)調(diào)用的時(shí)間就會(huì)以指數(shù)形式增長(zhǎng)。對(duì)于數(shù)據(jù)復(fù)制中每個(gè)事務(wù)的調(diào)用數(shù)Oracel強(qiáng)烈建議不超過(guò)50個(gè)。下面的存儲(chǔ)過(guò)程提供了一個(gè)快速查看延遲事務(wù)隊(duì)列中的事務(wù)列表以及每個(gè)事務(wù)中調(diào)用數(shù)的腳本。輸出是以傳輸順序排列的,這個(gè)順序就是事務(wù)將要傳播到主節(jié)點(diǎn)的順序。這對(duì)于確定傳播中的延遲以及掛起等是非常有幫助的。在搭建Oracle數(shù)據(jù)復(fù)制環(huán)境中,有一個(gè)經(jīng)驗(yàn)是值得注重的,那就是一定要設(shè)置沖突解決方案,即可使用Oracle系統(tǒng)提供的幾種方案,也可以自己編寫腳本來(lái)完成沖突處理。為什么這樣說(shuō),一定要設(shè)置沖突解決方案,也許我們可以說(shuō),我們的復(fù)制環(huán)境是一個(gè)單項(xiàng)復(fù)制,不可能出現(xiàn)沖突現(xiàn)象。在這里我講一個(gè)自己的親身經(jīng)歷的例子來(lái)說(shuō)明這個(gè)問(wèn)題,在實(shí)際工作中,我搭建了一個(gè)具有15個(gè)節(jié)點(diǎn)的高級(jí)復(fù)制環(huán)境,一個(gè)主定義節(jié)點(diǎn),14個(gè)主節(jié)點(diǎn),其中14個(gè)主節(jié)點(diǎn)向主定義節(jié)點(diǎn)單向傳遞數(shù)據(jù)。一般來(lái)講這種情況下不會(huì)出現(xiàn)沖突。但是在實(shí)際應(yīng)用中,問(wèn)題就出現(xiàn)了,其中幾個(gè)節(jié)點(diǎn)在傳輸了一些數(shù)據(jù)后,就掛(hang)了起來(lái)。所有可能查找的原因到查了,始終發(fā)現(xiàn)不了問(wèn)題的根結(jié)。最后發(fā)現(xiàn)是由于數(shù)據(jù)傳播到遠(yuǎn)程節(jié)點(diǎn)后,出現(xiàn)了錯(cuò)誤,而在該節(jié)點(diǎn)又沒(méi)有設(shè)置沖突解決方案,同時(shí)出現(xiàn)錯(cuò)誤的該事務(wù)又具有超過(guò)1000條的調(diào)用。其中有一條調(diào)用出錯(cuò)了,事務(wù)需要回滾,而這個(gè)在本地和遠(yuǎn)程節(jié)點(diǎn)間的回滾時(shí)間就會(huì)以幾何基數(shù)增長(zhǎng)。就出現(xiàn)了前面談到的系統(tǒng)掛起(hang)的表現(xiàn)。這也就是說(shuō)即是在根本不可能出現(xiàn)沖突的系統(tǒng)中,由于偶然的不定的錯(cuò)誤進(jìn)程,批量數(shù)據(jù)的處理以及沒(méi)有考慮復(fù)制情況下的數(shù)據(jù)導(dǎo)入都可造成在傳播過(guò)程中嚴(yán)重的性能問(wèn)題,最嚴(yán)重的情況就是系統(tǒng)掛起,不能完成正常的復(fù)制工作。最簡(jiǎn)單和有效的辦法就是在多路復(fù)制環(huán)境下設(shè)置一個(gè)系統(tǒng)確省的沖突處理方法來(lái)避免這種情況的發(fā)生。下面這個(gè)存儲(chǔ)過(guò)程就是在Oracle 8 環(huán)境下列出延遲事務(wù)隊(duì)列中的事務(wù)和事務(wù)中調(diào)用個(gè)數(shù)的腳本,該腳本對(duì)Oracle 7 不支持,這是因?yàn)镺racle 8 和Oracle 7 的復(fù)制機(jī)制發(fā)生了變化。存儲(chǔ)過(guò)程調(diào)用方法:在SQL/PLUS下,首先運(yùn)行下面的設(shè)置,使存儲(chǔ)過(guò)程的輸出到屏幕上, SET SERVEROUTPUT ON SIZE 200000IT我最牛-程序員的技術(shù)討論與分享園地 [QN1b/S{p
    EXEC P_LIST_TRANSACTIONS(ORA_SJJK); 其中,存儲(chǔ)過(guò)程的參數(shù)as_destination為所要查看的事務(wù)傳播到目的節(jié)點(diǎn)的延遲隊(duì)列,為數(shù)據(jù)庫(kù)聯(lián)接(DBLINK)名。假如我們看到一個(gè)事務(wù)具有很多的調(diào)用(超過(guò)50個(gè)),這個(gè)事務(wù)很可能就是造成延遲事務(wù)隊(duì)列推過(guò)程延遲甚至是掛起的原因。附:存儲(chǔ)過(guò)程腳本:下載該腳本 CREATE OR REPLACE PROCEDURE REPADMIN.P_LIST_TRANSACTION(as_destination in VARCHAR2) ISIT我最牛-程序員的技術(shù)討論與分享園地.iF8N-]X)]
    local_node VARCHAR2(128);
    h}6G.w-Ynvo xm0remote_node VARCHAR2(128);
    -rt;~'~S5t;H$_0last_scn NUMBER;
    ]-IYARd!C0last_tid VARCHAR2(22);
    A(G:f1^/zEg0last_tdb VARCHAR2(128);
    -k7e1jF8x~%Y2U0cnt NUMBER; CURSOR c(last_delivered NUMBER, last_tid VARCHAR2, last_tdb VARCHAR2) IS
    %K} iw5^+U0@.p#l_;Y0select cscn, enq_tid,
    "mfj?wQPR?0dscn, DECODE(c.recipient_key, 0, 'D', 'R')IT我最牛-程序員的技術(shù)討論與分享園地"|T iM&C
    from system.def$_aqcall c whereIT我最牛-程序員的技術(shù)討論與分享園地 ]7{z(V)Y r
    (c.cscn >= last_delivered)
    r3j^ qN(Q dJ0and ((c.cscn > last_delivered) or (c.enq_tid > last_tid))IT我最牛-程序員的技術(shù)討論與分享園地#cM`Sy2|z"J!mkd
    and (IT我最牛-程序員的技術(shù)討論與分享園地 uGND5w^zK
    ( c.recipient_key = 0IT我最牛-程序員的技術(shù)討論與分享園地 S9X"R0rr [
    and exists ( select /*+ index(cd def$_calldest_primary) */ nullIT我最牛-程序員的技術(shù)討論與分享園地)}6g9X,VW6rSI
    from system.def$_calldest cd
    Qu RoT0where cd.enq_tid = c.enq_tid
    c:|F}H:U8H0and cd.dblink = remote_node ) )IT我最牛-程序員的技術(shù)討論與分享園地o:xlN-\~&RW
    or ( c.recipient_key > 0
    /n.C.U#x+@^r9i0and ( ( exists (
    RJn1N X8L0select null from system.repcat$_repprop P
    p0K"SHo0where P.dblink = remote_node
    (v/@uPB S#Z+BK0and P.how = 1IT我最牛-程序員的技術(shù)討論與分享園地z8c/d,_dl:k)V z4v c?\)I
    and P.recipient_key = c.recipient_keyIT我最牛-程序員的技術(shù)討論與分享園地8^#XZ esRGsV7@X
    and ((P.delivery_order is NULL)
    J,A8YJF&R.rk7i0or (P.delivery_order < c.cscn))))IT我最牛-程序員的技術(shù)討論與分享園地Q~QMzj2qu
    or ( existsIT我最牛-程序員的技術(shù)討論與分享園地h0u!g4u`n]Fk
    ( select /*+ ordered use_nl(rp) */ nullIT我最牛-程序員的技術(shù)討論與分享園地xi7JU%o8k ?rK6^
    from system.def$_aqcall cc, system.repcat$_repprop rp
    ]LI(_ iW*Lq0where cc.enq_tid = c.enq_tidIT我最牛-程序員的技術(shù)討論與分享園地 j L]1po+OO$}
    and cc.cscn is null
    DT:w:s K mV%Zi)e-eE0and rp.recipient_key = cc.recipient_key
    T Sk,Q3Yi0and rp.how = 1IT我最牛-程序員的技術(shù)討論與分享園地#oJ'FE/m:oZ
    and rp.dblink = remote_node
    5Sq cXFi0and ((rp.delivery_order is NULL)IT我最牛-程序員的技術(shù)討論與分享園地W%i]?['Q H"w%c t6R
    or (rp.delivery_order < c.cscn)))))))
    )Jz,Z _.v8sKK0order by c.cscn, c.enq_tid;
    -bX3g%})S0 BEGINIT我最牛-程序員的技術(shù)討論與分享園地cg;O {S;P,C
    SELECT NLS_UPPER(global_name) INTO local_node FROM global_name;IT我最牛-程序員的技術(shù)討論與分享園地6V*YiVDf1V
    SELECT dblink INTO remote_node from deftrandest
    4rwJ,K)J%T#Vb0WHERE dblink LIKE UPPER (as_destination'%') AND ROWNUM < 2;IT我最牛-程序員的技術(shù)討論與分享園地Ot {l0Y3r
    IF (remote_node IS NULL) THENIT我最牛-程序員的技術(shù)討論與分享園地 M0?+t&J!i7K7A
    DBMS_OUTPUT.PUT_LINE ('不能確定目標(biāo)節(jié)點(diǎn),輸入?yún)?shù)有誤!');IT我最牛-程序員的技術(shù)討論與分享園地h!OAf1V!p$_%a\
    RETURN;
    J#| ~8K)\(~0ELSEIT我最牛-程序員的技術(shù)討論與分享園地r1TMy#X-ycB A
    DBMS_OUTPUT.PUT_LINE ('延遲事務(wù)目標(biāo)節(jié)點(diǎn)為: 'remote_node);
    }@3Q4B hX0QNU0DBMS_OUTPUT.PUT_LINE ('-------------------------------------------');
    j#O*A.|9l*x't0END IF;
    ]Zu\p!M;oL0SELECT last_delivered, last_enq_tid, dblink
    M+},sK&?kTW0yy0INTO last_scn, last_tid, last_tdbIT我最牛-程序員的技術(shù)討論與分享園地 K6p)_&{{.w9j\F'l
    FROM system.def$_destinationIT我最牛-程序員的技術(shù)討論與分享園地1TReDRJ&S@M
    WHERE dblink = remote_node; FOR R IN C(last_scn,last_tid,last_tdb) LOOP
    /d7paN2i0SELECT count(*) INTO cnt FROM system.def$_aqcall WHERE enq_tid = r.enq_tid;
    'ZsC8D&i1VPn0DBMS_OUTPUT.PUT_LINE ('延遲事務(wù) ID='r.enq_tid' 調(diào)用個(gè)數(shù)='to_char(cnt));
    mCj!Dqr$Y/n#}0END LOOP;
    rune`K0END;
    9yy'z{9dB0/
    @5wg:b|6{0  二、Oracle 8高級(jí)復(fù)制環(huán)境設(shè)置問(wèn)題診斷腳本要保證搭建的一個(gè)高級(jí)復(fù)制環(huán)境工作,必須保證所有的復(fù)制對(duì)象處于正常狀態(tài),對(duì)于一個(gè)高級(jí)復(fù)制環(huán)境,要檢查一個(gè)復(fù)制環(huán)境中是否所有對(duì)象均處于正常工作狀態(tài),需要檢查不同的系統(tǒng)字典對(duì)象,包括復(fù)制組對(duì)象,復(fù)制對(duì)象,復(fù)制方案對(duì)象等等。假如搭建的這個(gè)高級(jí)復(fù)制環(huán)境包含很多節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)又包含幾個(gè)復(fù)制方案(schema)以及每個(gè)方案又包含多個(gè)復(fù)制對(duì)象,則完成一遍檢查需要作很多的重復(fù)工作,這里針對(duì)這個(gè)問(wèn)題,編寫了一個(gè)復(fù)制設(shè)置問(wèn)題診斷包,只有運(yùn)行該包中相應(yīng)的過(guò)程,即可完成對(duì)上面提到的相關(guān)對(duì)象的診斷,給出相應(yīng)診斷結(jié)果。運(yùn)行方法是,在SQL/PLUS環(huán)境下, SQL> spool <文件名>IT我最牛-程序員的技術(shù)討論與分享園地}M(~$p;~+u
    SQL> set serveroutput on
    Y'krMK/REE0SQL> exec rep_diag.rep_diag; 這里強(qiáng)調(diào)一點(diǎn),運(yùn)行該包的用戶,必須具有對(duì)系統(tǒng)字典表dba_repschema、dba_diagnose、dba_repcat以及dba_repcatlog的檢索(select)權(quán)限,當(dāng)然,復(fù)制治理員(RepAdmin)用戶是均有這些權(quán)限的。附:高級(jí)復(fù)制環(huán)境設(shè)置問(wèn)題診斷包腳本。下載該腳本 CREATE OR REPLACE PACKAGE REP_DIAG IS
    RmHX+AO kyL0PROCEDURE REP_DIAG;IT我最牛-程序員的技術(shù)討論與分享園地} g W'f)wR*`3\4H
    PROCEDURE REP_SCHEMA;IT我最牛-程序員的技術(shù)討論與分享園地O L][Y'i:h
    PROCEDURE REP_OBJECT;
    ?sl|$N)G*W0PROCEDURE REP_ERROR;IT我最牛-程序員的技術(shù)討論與分享園地t(sw~2W%d,O ES3j
    PROCEDURE REP_STAT;IT我最牛-程序員的技術(shù)討論與分享園地glC a aHf{f
    END REP_DIAG;
    9tosP r2i9iQ0/ CREATE OR REPLACE PACKAGE BODY REP_DIAG IS
    %}GF'Ll%O3s0PROCEDURE REP_DIAG ISIT我最牛-程序員的技術(shù)討論與分享園地E^B3{9N(z.Q{
    BEGINIT我最牛-程序員的技術(shù)討論與分享園地 q\ EDRj0w m
            REP_SCHEMA;IT我最牛-程序員的技術(shù)討論與分享園地M-H3HX.F{
            REP_OBJECT;IT我最牛-程序員的技術(shù)討論與分享園地 s+]'[rz'w
            REP_ERROR;IT我最牛-程序員的技術(shù)討論與分享園地l0nO9l q#K&L2o
            REP_STAT;       
    mP"SO\0END REP_DIAG; PROCEDURE REP_SCHEMA ASIT我最牛-程序員的技術(shù)討論與分享園地)\)v7|aZZ
       CURSOR C_SCHEMA IS SELECT SNAME, DBLINK, MASTERDEFIT我最牛-程序員的技術(shù)討論與分享園地DQ$h#G;g1E:o'Xb
                    FROM SYS.DBA_REPSCHEMA;IT我最牛-程序員的技術(shù)討論與分享園地0zD+A pfcN[7L
    BEGINIT我最牛-程序員的技術(shù)討論與分享園地Zr)Ci[5ij
            DBMS_OUTPUT.PUT_LINE('復(fù)制方案明細(xì)信息');IT我最牛-程序員的技術(shù)討論與分享園地v[!I](f
            DBMS_OUTPUT.PUT_LINE('-------------------------');
    "ly?a a4V P ?W ww z%w0        FOR T_SCHEMA IN C_SCHEMA LOOP
    (?&A[1uJ W:\/JA2w0                DBMS_OUTPUT.PUT_LINE('方案名稱:    'T_SCHEMA.SNAME);IT我最牛-程序員的技術(shù)討論與分享園地V"|+sC ZH6c
                    DBMS_OUTPUT.PUT_LINE('是否為主定義節(jié)點(diǎn): 'T_SCHEMA.MASTERDEF);IT我最牛-程序員的技術(shù)討論與分享園地H9b2r}4U
                    DBMS_OUTPUT.PUT_LINE('數(shù)據(jù)庫(kù)聯(lián)接名稱:    'T_SCHEMA.DBLINK);IT我最牛-程序員的技術(shù)討論與分享園地p+D6?J/mxl {(`5\*k
                    DBMS_OUTPUT.PUT_LINE('.');IT我最牛-程序員的技術(shù)討論與分享園地]J,Cp7txXe5`
            END LOOP;
    )p@P'v[0END REP_SCHEMA;
    q5~:i"^ E?f? IN0 PROCEDURE REP_OBJECT AS
    Q E-|1|bn.z0   CURSOR C_REP_OBJECT IS SELECT SNAME, ONAME, TYPE, STATUSIT我最牛-程序員的技術(shù)討論與分享園地 ?w.KLAU r V@^1m(B
       

    支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    有關(guān)oracle高可靠性的一些討論和想法








    簽名
    主站蜘蛛池模板: 小仙女app2021版最新| 波多野结衣和黑人| 国产精品香蕉在线观看| 中文字幕校园春色| 最近2019中文字幕mv免费看 | 久久国产成人精品| 欧美亚洲一二三区| 免费播放特黄特色毛片| 自拍偷自拍亚洲精品播放| 国产精品久久久亚洲| qvod激情视频在线观看| 成人黄18免费视频| 亚洲AV无一区二区三区久久| 欧美日韩国产不卡在线观看| 午夜剧场免费体验| 色噜噜狠狠成人网| 国产精品WWW夜色视频| japonensisjava野外vt| 成人性生话视频| 久久综合图区亚洲综合图区| 欧美丰满熟妇XXXX性ppX人交| 免费人成在线观看视频高潮| 老司机亚洲精品影院在线| 国产欧美精品区一区二区三区| WWW免费视频在线观看播放| 娇小bbb搡bbb搡bbb| 久久久久99精品成人片试看| 日韩不卡中文字幕| 亚洲图片第一页| 欧美特黄三级在线观看| 免费无码一区二区三区蜜桃大| 2021果冻传媒剧情在线观看| 在线观看亚洲人成网站| 东北疯狂xxxxbbbb中国| 扶着大肚子从后面进| 久久综合图区亚洲综合图区 | 国产成人麻豆精品午夜福利在线 | 欧美乱大交xxxxx| 亚洲综合精品香蕉久久网| 男人j进女人p里动态图| 四虎永久在线日韩精品观看|