波多在线播放_激情深爱五月_久久欧美精品_成人超碰_国产久_www.pixiv.moe
[Full]
完整版
[Rss]
訂閱
[Xml]
無圖版
[Xhtml]
無圖版
Rss
& SiteMap
曙海教育集團論壇
http://www.bjzhda.cn
曙海教育集團論壇
◎
曙海教育集團論壇
→
Oracle數(shù)據(jù)庫
→
有關(guān)oracle高可靠性的一些討論和想法
共1 條記錄, 每頁顯示 10 條, 頁簽:
[1]
[瀏覽完整版]
標題:有關(guān)oracle高可靠性的一些討論和想法
1樓
wangxinxin
發(fā)表于:2010-12-11 10:49:48
Oracle 數(shù)據(jù)庫復(fù)制常用腳本 Oracle的數(shù)據(jù)復(fù)制是一個Oracle數(shù)據(jù)庫產(chǎn)品中比較成熟的一項技術(shù),它是整個分布式計算解決方案的一個重要組成部分。 對于具有復(fù)制環(huán)境的數(shù)據(jù)庫系統(tǒng),和Oracle DBA一樣,同樣要有一個人來專門負責(zé)維護Oracle的數(shù)據(jù)復(fù)制問題,稱之為Oracle Replication Administrator(Oracle復(fù)制治理員)。本文就Oracle數(shù)據(jù)復(fù)制中復(fù)制治理員經(jīng)常關(guān)心的一些關(guān)于復(fù)制系統(tǒng)的問題,編寫了不同的存儲過程。當(dāng)然,通過Oracle提供的復(fù)制治理器也可以達到這些目的,但在實際應(yīng)用中,Oracle復(fù)制治理器具有不靈活,速度慢,同時我們不能對其查詢結(jié)果進行隨意控制等等的缺點。一、查看Oracle8x延遲事務(wù)隊列調(diào)用及調(diào)用個數(shù)
IT我最牛-程序員的技術(shù)討論與分享園地U Zh:uwC*f [`
推(push)一個大的延遲事務(wù)(Deferred Transactions)隊列是非常慢的。一個常見的問題就是一個事務(wù)中含有非常多的調(diào)用(calls)。假如系統(tǒng)檢測到一個錯誤,如ora-01403(數(shù)據(jù)未找到錯誤),也就是我們常說的檢測到?jīng)_突,而且沒有沖突消除方法,寫到deferror錯誤表和回滾事務(wù)的時間就會更長,事務(wù)中假如調(diào)用calls很多,則消耗在任何一個調(diào)用的時間就會以指數(shù)形式增長。對于數(shù)據(jù)復(fù)制中每個事務(wù)的調(diào)用數(shù)Oracel強烈建議不超過50個。下面的存儲過程提供了一個快速查看延遲事務(wù)隊列中的事務(wù)列表以及每個事務(wù)中調(diào)用數(shù)的腳本。輸出是以傳輸順序排列的,這個順序就是事務(wù)將要傳播到主節(jié)點的順序。這對于確定傳播中的延遲以及掛起等是非常有幫助的。在搭建Oracle數(shù)據(jù)復(fù)制環(huán)境中,有一個經(jīng)驗是值得注重的,那就是一定要設(shè)置沖突解決方案,即可使用Oracle系統(tǒng)提供的幾種方案,也可以自己編寫腳本來完成沖突處理。為什么這樣說,一定要設(shè)置沖突解決方案,也許我們可以說,我們的復(fù)制環(huán)境是一個單項復(fù)制,不可能出現(xiàn)沖突現(xiàn)象。在這里我講一個自己的親身經(jīng)歷的例子來說明這個問題,在實際工作中,我搭建了一個具有15個節(jié)點的高級復(fù)制環(huán)境,一個主定義節(jié)點,14個主節(jié)點,其中14個主節(jié)點向主定義節(jié)點單向傳遞數(shù)據(jù)。一般來講這種情況下不會出現(xiàn)沖突。但是在實際應(yīng)用中,問題就出現(xiàn)了,其中幾個節(jié)點在傳輸了一些數(shù)據(jù)后,就掛(hang)了起來。所有可能查找的原因到查了,始終發(fā)現(xiàn)不了問題的根結(jié)。最后發(fā)現(xiàn)是由于數(shù)據(jù)傳播到遠程節(jié)點后,出現(xiàn)了錯誤,而在該節(jié)點又沒有設(shè)置沖突解決方案,同時出現(xiàn)錯誤的該事務(wù)又具有超過1000條的調(diào)用。其中有一條調(diào)用出錯了,事務(wù)需要回滾,而這個在本地和遠程節(jié)點間的回滾時間就會以幾何基數(shù)增長。就出現(xiàn)了前面談到的系統(tǒng)掛起(hang)的表現(xiàn)。這也就是說即是在根本不可能出現(xiàn)沖突的系統(tǒng)中,由于偶然的不定的錯誤進程,批量數(shù)據(jù)的處理以及沒有考慮復(fù)制情況下的數(shù)據(jù)導(dǎo)入都可造成在傳播過程中嚴重的性能問題,最嚴重的情況就是系統(tǒng)掛起,不能完成正常的復(fù)制工作。最簡單和有效的辦法就是在多路復(fù)制環(huán)境下設(shè)置一個系統(tǒng)確省的沖突處理方法來避免這種情況的發(fā)生。下面這個存儲過程就是在Oracle 8 環(huán)境下列出延遲事務(wù)隊列中的事務(wù)和事務(wù)中調(diào)用個數(shù)的腳本,該腳本對Oracle 7 不支持,這是因為Oracle 8 和Oracle 7 的復(fù)制機制發(fā)生了變化。存儲過程調(diào)用方法:在SQL/PLUS下,首先運行下面的設(shè)置,使存儲過程的輸出到屏幕上, SET SERVEROUTPUT ON SIZE 200000
IT我最牛-程序員的技術(shù)討論與分享園地 [QN1b/S{p
EXEC P_LIST_TRANSACTIONS(ORA_SJJK); 其中,存儲過程的參數(shù)as_destination為所要查看的事務(wù)傳播到目的節(jié)點的延遲隊列,為數(shù)據(jù)庫聯(lián)接(DBLINK)名。假如我們看到一個事務(wù)具有很多的調(diào)用(超過50個),這個事務(wù)很可能就是造成延遲事務(wù)隊列推過程延遲甚至是掛起的原因。附:存儲過程腳本:下載該腳本 CREATE OR REPLACE PROCEDURE REPADMIN.P_LIST_TRANSACTION(as_destination in VARCHAR2) IS
IT我最牛-程序員的技術(shù)討論與分享園地.iF8N-]X)]
local_node VARCHAR2(128);
h}6G.w-Ynvo xm0
remote_node VARCHAR2(128);
-rt;~'~S5t;H$_0
last_scn NUMBER;
]-IYARd!C0
last_tid VARCHAR2(22);
A(G:f1^/zEg0
last_tdb VARCHAR2(128);
-k7e1jF8x~%Y2U0
cnt NUMBER; CURSOR c(last_delivered NUMBER, last_tid VARCHAR2, last_tdb VARCHAR2) IS
%K} iw5^+U0@.p#l_;Y0
select cscn, enq_tid,
"mfj?wQPR?0
dscn, DECODE(c.recipient_key, 0, 'D', 'R')
IT我最牛-程序員的技術(shù)討論與分享園地"|T iM&C
from system.def$_aqcall c where
IT我最牛-程序員的技術(shù)討論與分享園地 ]7{z(V)Y r
(c.cscn >= last_delivered)
r3j^ qN(Q dJ0
and ((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 = 0
IT我最牛-程序員的技術(shù)討論與分享園地 S9X"R0rr [
and exists ( select /*+ index(cd def$_calldest_primary) */ null
IT我最牛-程序員的技術(shù)討論與分享園地)}6g9X,VW6rSI
from system.def$_calldest cd
Qu RoT0
where cd.enq_tid = c.enq_tid
c:|F}H:U8H0
and cd.dblink = remote_node ) )
IT我最牛-程序員的技術(shù)討論與分享園地o:xlN-\~&RW
or ( c.recipient_key > 0
/n.C.U#x+@^r9i0
and ( ( exists (
RJn1N X8L0
select null from system.repcat$_repprop P
p0K"SHo0
where P.dblink = remote_node
(v/@uPB S#Z+BK0
and P.how = 1
IT我最牛-程序員的技術(shù)討論與分享園地z8c/d,_dl:k)V z4v c?\)I
and P.recipient_key = c.recipient_key
IT我最牛-程序員的技術(shù)討論與分享園地8^#XZ esRGsV7@X
and ((P.delivery_order is NULL)
J,A8YJF&R.rk7i0
or (P.delivery_order < c.cscn))))
IT我最牛-程序員的技術(shù)討論與分享園地Q~QMzj2qu
or ( exists
IT我最牛-程序員的技術(shù)討論與分享園地h0u!g4u`n]Fk
( select /*+ ordered use_nl(rp) */ null
IT我最牛-程序員的技術(shù)討論與分享園地xi7JU%o8k ?rK6^
from system.def$_aqcall cc, system.repcat$_repprop rp
]LI(_ iW*Lq0
where cc.enq_tid = c.enq_tid
IT我最牛-程序員的技術(shù)討論與分享園地 j L]1po+OO$}
and cc.cscn is null
DT:w:s K mV%Zi)e-eE0
and rp.recipient_key = cc.recipient_key
T Sk,Q3Yi0
and rp.how = 1
IT我最牛-程序員的技術(shù)討論與分享園地#oJ'FE/m:oZ
and rp.dblink = remote_node
5Sq cXFi0
and ((rp.delivery_order is NULL)
IT我最牛-程序員的技術(shù)討論與分享園地W%i]?['Q H"w%c t6R
or (rp.delivery_order < c.cscn)))))))
)Jz,Z _.v8sKK0
order by c.cscn, c.enq_tid;
-bX3g%})S0
BEGIN
IT我最牛-程序員的技術(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#Vb0
WHERE dblink LIKE UPPER (as_destination'%') AND ROWNUM < 2;
IT我最牛-程序員的技術(shù)討論與分享園地Ot {l0Y3r
IF (remote_node IS NULL) THEN
IT我最牛-程序員的技術(shù)討論與分享園地 M0?+t&J!i7K7A
DBMS_OUTPUT.PUT_LINE ('不能確定目標節(jié)點,輸入?yún)?shù)有誤!');
IT我最牛-程序員的技術(shù)討論與分享園地h!OAf1V!p$_%a\
RETURN;
J#| ~8K)\(~0
ELSE
IT我最牛-程序員的技術(shù)討論與分享園地r1TMy#X-ycB A
DBMS_OUTPUT.PUT_LINE ('延遲事務(wù)目標節(jié)點為: 'remote_node);
}@3Q4B hX0QNU0
DBMS_OUTPUT.PUT_LINE ('-------------------------------------------');
j#O*A.|9l*x't0
END IF;
]Zu\p!M;oL0
SELECT last_delivered, last_enq_tid, dblink
M+},sK&?kTW0yy0
INTO last_scn, last_tid, last_tdb
IT我最牛-程序員的技術(shù)討論與分享園地 K6p)_&{{.w9j\F'l
FROM system.def$_destination
IT我最牛-程序員的技術(shù)討論與分享園地1TReDRJ&S@M
WHERE dblink = remote_node; FOR R IN C(last_scn,last_tid,last_tdb) LOOP
/d7paN2i0
SELECT count(*) INTO cnt FROM system.def$_aqcall WHERE enq_tid = r.enq_tid;
'ZsC8D&i1VPn0
DBMS_OUTPUT.PUT_LINE ('延遲事務(wù) ID='r.enq_tid' 調(diào)用個數(shù)='to_char(cnt));
mCj!Dqr$Y/n#}0
END LOOP;
rune`K0
END;
9yy'z{9dB0
/
@5wg:b|6{0
二、Oracle 8高級復(fù)制環(huán)境設(shè)置問題診斷腳本要保證搭建的一個高級復(fù)制環(huán)境工作,必須保證所有的復(fù)制對象處于正常狀態(tài),對于一個高級復(fù)制環(huán)境,要檢查一個復(fù)制環(huán)境中是否所有對象均處于正常工作狀態(tài),需要檢查不同的系統(tǒng)字典對象,包括復(fù)制組對象,復(fù)制對象,復(fù)制方案對象等等。假如搭建的這個高級復(fù)制環(huán)境包含很多節(jié)點,每個節(jié)點又包含幾個復(fù)制方案(schema)以及每個方案又包含多個復(fù)制對象,則完成一遍檢查需要作很多的重復(fù)工作,這里針對這個問題,編寫了一個復(fù)制設(shè)置問題診斷包,只有運行該包中相應(yīng)的過程,即可完成對上面提到的相關(guān)對象的診斷,給出相應(yīng)診斷結(jié)果。運行方法是,在SQL/PLUS環(huán)境下, SQL> spool <文件名>
IT我最牛-程序員的技術(shù)討論與分享園地}M(~$p;~+u
SQL> set serveroutput on
Y'krMK/REE0
SQL> exec rep_diag.rep_diag; 這里強調(diào)一點,運行該包的用戶,必須具有對系統(tǒng)字典表dba_repschema、dba_diagnose、dba_repcat以及dba_repcatlog的檢索(select)權(quán)限,當(dāng)然,復(fù)制治理員(RepAdmin)用戶是均有這些權(quán)限的。附:高級復(fù)制環(huán)境設(shè)置問題診斷包腳本。下載該腳本 CREATE OR REPLACE PACKAGE REP_DIAG IS
RmHX+AO kyL0
PROCEDURE 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*W0
PROCEDURE 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%O3s0
PROCEDURE REP_DIAG IS
IT我最牛-程序員的技術(shù)討論與分享園地E^B3{9N(z.Q{
BEGIN
IT我最牛-程序員的技術(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\0
END REP_DIAG; PROCEDURE REP_SCHEMA AS
IT我最牛-程序員的技術(shù)討論與分享園地)\)v7|aZZ
CURSOR C_SCHEMA IS SELECT SNAME, DBLINK, MASTERDEF
IT我最牛-程序員的技術(shù)討論與分享園地DQ$h#G;g1E:o'Xb
FROM SYS.DBA_REPSCHEMA;
IT我最牛-程序員的技術(shù)討論與分享園地0zD+A pfcN[7L
BEGIN
IT我最牛-程序員的技術(shù)討論與分享園地Zr)Ci[5ij
DBMS_OUTPUT.PUT_LINE('復(fù)制方案明細信息');
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é)點: 'T_SCHEMA.MASTERDEF);
IT我最牛-程序員的技術(shù)討論與分享園地H9b2r}4U
DBMS_OUTPUT.PUT_LINE('數(shù)據(jù)庫聯(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[0
END 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, STATUS
IT我最牛-程序員的技術(shù)討論與分享園地 ?w.KLAU r V@^1m(B
共1 條記錄, 每頁顯示 10 條, 頁簽:
[1]
Copyright © 2000 - 2009
曙海
教育集團
Powered By
曙海教育集團
Version 2.2
Processed in .01758 s, 2 queries.
[Full]
完整版
[Rss]
訂閱
[Xml]
無圖版
[Xhtml]
無圖版
主站蜘蛛池模板:
澳门特级 片免费观看视频 久草最新在线
|
国产三级在线
|
久久99精品国产
|
色综合天天综合中文网
|
日本在线视频一区二区
|
99久久免费国产精品
|
91视频专区
|
欧美日韩精品一区二区三区蜜桃
|
成人涩涩屋福利视频
|
99re热精品视频
|
青娱乐综合
|
粉嫩粉嫩一区二区三区在线播放
|
日韩欧美片
|
亚洲欧美日韩中文综合在线不卡
|
丝袜诱惑一区二区
|
国产精品一卡二卡三卡
|
99pao成人国产永久免费视频
|
九九九九九热
|
午夜亚洲精品
|
曰本一级毛片免费
|
亚洲精品久久久久久中文字幕小说
|
日本精品视频
|
热99在线视频
|
亚洲欧美日韩中文综合在线不卡
|
av黄色在线
|
天天操天天插
|
亚洲日韩欧美视频
|
欧美变态口味重另类日韩毛片
|
亚洲午夜精品视频
|
国产激爽大片高清在线观看
|
久久穴
|
国产精品揄拍100视频最近
|
美国免费黄色片
|
日韩欧美综合在线二区三区
|
天天看片网
|
色综合天天综合网国产成人
|
成人精品视频 成人影院
|
亚洲成av人片在线观看
|
久久99精品热在线观看15
|
青娱乐极品在线
|
日韩专区中文字幕
|