国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

oracle復(fù)制應(yīng)用實(shí)例之一

瀏覽:134日期:2023-11-21 10:42:27
;復(fù)制是一種實(shí)現(xiàn)數(shù)據(jù)分布的方法,也就是說把一個(gè)系統(tǒng)中的數(shù)據(jù)通過網(wǎng)絡(luò)分布到另外一個(gè)或者多個(gè)地理位置不同的系統(tǒng)中,以適應(yīng)可伸縮組織的需要、減輕主服務(wù)器的工作負(fù)荷和提高數(shù)據(jù)的使用效率。;Ora Oracle8針對數(shù)據(jù)分布式計(jì)算的需要,提供了一整套功能強(qiáng)大的數(shù)據(jù)庫復(fù)制解決方案。 Oracle8的數(shù)據(jù)復(fù)制按功能可以分為三類:基本(簡單)復(fù)制、高級復(fù)制和混合復(fù)制,而高級復(fù)制又可分為多主節(jié)點(diǎn)復(fù)制和可更新快照復(fù)制。在 《數(shù)據(jù)復(fù)制中的定時(shí)任務(wù)機(jī)制》 介紹了Oracle8中的定時(shí)復(fù)制的機(jī)制,本文將主要介紹一個(gè) Oracle 快照復(fù)制的實(shí)際例子及其技術(shù)實(shí)現(xiàn)細(xì)節(jié)。;一、業(yè)務(wù)需求 在一個(gè)實(shí)際的數(shù)據(jù)庫應(yīng)用中,如銀行、稅務(wù)等商業(yè)應(yīng)用中通常都采用這樣一種解決方案,在一個(gè)行政區(qū)域內(nèi),如一個(gè)省或者一個(gè)市,在不同的地理位置架設(shè)數(shù)臺數(shù)據(jù)庫服務(wù)器,這些不同地理位置的服務(wù)器具有同樣的后臺數(shù)據(jù)庫。為了維護(hù)數(shù)據(jù)庫系統(tǒng)的一致性,對于整個(gè)行政區(qū)域應(yīng)用的代碼表應(yīng)該保持一致,假如不考慮數(shù)據(jù)復(fù)制,想維護(hù)同樣的不沖突的代碼表是很困難的。下面是一個(gè)實(shí)際的業(yè)務(wù)需求,我們用這里例子來說明 Oracle快照復(fù)制的應(yīng)用。;為了維護(hù)整個(gè)系統(tǒng)代碼表的一致性,客戶提出了這樣的業(yè)務(wù)需求,對于系統(tǒng)的代碼表采用統(tǒng)一維護(hù),即在一臺服務(wù)器上維護(hù),如圖1所示。在位置1(數(shù)據(jù)庫Ora_db1,用戶userA)上維護(hù)代碼表,其他位置(數(shù)據(jù)庫ora_db2,用戶userB;ora_db3,用戶userC和ora_db4,用戶UserD)可以直接使用這些代碼表,也就是說在位置1具有對代碼表插入、刪除和更新的能力,而在其他地方只能有查詢的能力。;; 二、應(yīng)用設(shè)計(jì)針 對上述的需求,我們提出了這樣一種解決方案,也就是采用 Oracle8的快照復(fù)制。具體業(yè)務(wù)實(shí)現(xiàn)方案設(shè)計(jì)如下:;在位置1的數(shù)據(jù)庫Ora_db1維護(hù)所有的代碼表,在其余數(shù)據(jù)庫建立相對于位置1的所有代碼表的快照。為了維護(hù)快照的方便,在位置2、3和4創(chuàng)建一個(gè)單獨(dú)的快照表空間和一個(gè)模式(schema),系統(tǒng)中的其他用戶通過一個(gè)私有同義詞來存取這些快照。這里私有同義詞相對公共同義詞要好,這是因?yàn)樵谖恢?存在一個(gè)同樣規(guī)范的系統(tǒng),它的表是通過公共同義詞來存取的。對于快照的刷新,采用 Oracle系統(tǒng)包DBMS-_REFRESH進(jìn)行,并將該刷新過程的運(yùn)行定時(shí)在天天早上2:00,這樣可以減少網(wǎng)絡(luò)流量。對于快照的刷新形式,由于對于代碼表的維護(hù)不是很多而且代碼表的數(shù)據(jù)量相對較少,所以在此選擇了完全刷新,這樣就避免了治理快照日志的麻煩。下面以一個(gè)節(jié)點(diǎn)2(ora_db2)為例來說明具體的技術(shù)實(shí)現(xiàn)細(xì)節(jié)。;三、技術(shù)實(shí)現(xiàn)細(xì)節(jié) 除非非凡說明,下面的SQL命令都是在數(shù)據(jù)庫ora_db2的SYSETM用戶下運(yùn)行的。假設(shè)要復(fù)制的代碼表有三個(gè):dm_gy_rydm,dm_gy_jgdm和dm_gy_yhdm.;1.在數(shù)據(jù)庫2(ora_db2)上增加數(shù)據(jù)庫1(ora_db1)的services name;可以直接在tnsnames.ora文件中增加數(shù)據(jù)庫1的services name,包括IP地址,SID以及端口號等。Services name 命名為ora_db1.world.;2. 創(chuàng)建一個(gè)用于連接數(shù)據(jù)庫1(ora_db1)的數(shù)據(jù)庫連接(dblink);SQL> CREATE PUBLIC DATABASE LINK ora_db1.world CONNECT TO SYSTEM IDENTIFIED BY MANAGER USING 'ora_db1.world';;出于安全考慮,可以采用一個(gè)私有數(shù)據(jù)連接。;3. 創(chuàng)建一個(gè)名為Snapshot_ts的表空間來存放快照,并創(chuàng)建一個(gè)和該表空間有關(guān)的名為Snap的用戶。;SQL > CREATE TABLESPACE snapshot_ts DATAFILE 'c:orantdbfilesprodsnapshot01.dbf' SIZE 30M DEFAULT STORAGE (INITIAL 30 K NEXT 15 K MINEXTENTS 1 MAXEXTENTS 100 PCTINCREASE 0);ONLINE PERMANENT;;SQL > CREATE USER snap IDENTIFIED BY snap DEFAULT TABLESPACE snapshot_ts;;SQL > GRANT CONNECT, RESOURCE TO snap;;可以通過下面的SQL語句在ora_db1數(shù)據(jù)庫以userA用戶來粗略地估計(jì)表空間snapshot_ts的大小。;SQL > SELECT SUM(bytes);FROM USER_SEGMENTS WHERE SEGMENT_NAME IN(' dm_gy_rydm','dm_gy_jgdm','dm_gy_yhdm');;4. 運(yùn)行下面的腳本文件snapsql.sql來生成創(chuàng)建ora_db1數(shù)據(jù)庫上userA用戶下代碼表的快照腳本:;/* Snapsql.sql */ spool c:snapcreate_snapshot.sql SELECT 'CREATE SNAPSHOT SNAP.' TABLE_NAME ' PCTFREE 10 PCTUSED 40 TABLESPACE snapshot_ts ' ' STORAGE (INITIAL ' INITIAL_EXTENT ' NEXT ' NEXT_EXTENT ' PCTINCREASE 0 )' ' AS SELECT * FROM userA.' TABLE_NAME '@ora_db1.world;' FROM USER_TABLES WHERE TABLE_NAME IN( (' dm_gy_rydm', 'dm_gy_jgdm', 'dm_gy_yhdm'); spool off;注重上面這個(gè)生成所需表快照的腳本有一定的局限性,假如所需生成快照的表中含有類型為long的列,‘select *'在這里就不會起作用,上面的這個(gè)SQL腳本就不能自動建立生成所需快照的腳本,必須通過在select列表中顯式地添加long型列名來創(chuàng)建表的快照。下面是一個(gè)例子,假如我們要創(chuàng)建快照依靠的表dm_gy_note中有一個(gè)列note類型為long,就需要單獨(dú)寫出如下的創(chuàng)建快照的腳本:;CREATE SNAPSHOT snap.dm_gy_note PCTFREE 10 PCTUSED 40 TABLESPACE snapcost_ts STORAGE (INITIAL 40960 NEXT 57344 PCTINCREASE 0 ) AS SELECT dm, dmmc,note FROM userA.dm_gy_note@ora_db1.worl; SQL > @snapsql.sql;5. 通過運(yùn)行第4步創(chuàng)建的腳本文件create_snapshot.sql來創(chuàng)建所有的快照, 在腳本文件中包含下面這樣的代碼:;CREATE SNAPSHOT snap. dm_gy_rydm PCTFREE 10 PCTUSED 40 TABLESPACE snapshot_ts STORAGE (INITIAL 163840 NEXT 57344 PCTINCREASE 0);AS SELECT * FROM userA. dm_gy_rydm @ora_db1.world;;運(yùn)行腳本文件create_snapshot.sql后,就在模式snap中創(chuàng)建了所需要的快照。下一步就是考慮該如何刷新快照。對于快照的刷新,可以通過一些桌面DBA工具來刷新快照也可以通過系統(tǒng)包dbms_snapshot.refresh來刷新一個(gè)快照:;SQL > EXECUTE DBMS_SNAPSHOT.REFRESH('snap.dm_gy_rydm');6. 創(chuàng)建一個(gè)定時(shí)刷新過程來定時(shí)刷新快照:;/*sp_snapshot_refresh.sql */ CREATE OR REPLACE PROCEDURE sp_snapshot_refresh IS BEGIN DBMS_REFRESH.MAKE ( NAME=>'tax_dmb_grp', LIST=>'snap. dm_gy_rydm, 'snap.dm_gy_jgdm', 'snap.dm_gy_yhdm', NEXT_DATE=>TRUNC (SYSDATE+1)+2/24, INTERVAL=>'(SYSDATE+1)', IMPLICIT_DESTROY=>FALSE, LAX=>TRUE); END; / SQL > EXECUTE sp_snapshot_refresh;這樣就創(chuàng)建了一個(gè)定時(shí)任務(wù)來天天早晨2:00定時(shí)刷新快照。運(yùn)行下面的SQL語句就可以看到剛剛加入的這個(gè)任務(wù)。;SQL > SELECT JOB, WHAT FROM DBA_JOBS;;7. 在用戶userB下創(chuàng)建快照的私有同義詞:;SQL > CREATE SYNONYM userB.dm_gy_rydm FOR snap.dm_gy_rydm;;8. 以Snap用戶向userB用戶授與快照可以select的權(quán)限。;SQL > GRANT SELECT ON dm_gy_rydm TO userB;;同樣的步驟在位置3(ora_db2)和位置4(ora_db3)建立位置1(ora_db1)的代碼表快照和定時(shí)刷新任務(wù)。這樣就可實(shí)現(xiàn)在位置1統(tǒng)一維護(hù)代碼表,在位置2、3和4使用該代碼表的目的。如下面的SQL語句,在位置2(ora_db2)用戶UserB瀏覽在位置1(ora_db1)中的代碼表。;SQL > SELECT * FROM dm_gy_rydm;;;; 四、日常維護(hù)  無論任何時(shí)候只要出現(xiàn)網(wǎng)絡(luò)連接問題,刷新就會失敗。這些錯(cuò)誤信息可以在alert log文件中找到。下面簡單介紹一下對這種問題的處理辦法:;1. 首先在任務(wù)隊(duì)列中找到刷新快照的的任務(wù)編號;SQL > SELECT JOB,what FROM DBA_JOBS;;2. 刪除該任務(wù);SQL > EXECUTE DBMS_JOB.REMOVE (JOBNO);;3. 刪除快照組;SQL > EXECUTE DBMS_REFRESH.DESTROY ('tax_dmb_grp');;4. 重新創(chuàng)建快照組并且重新定時(shí)任務(wù)來定時(shí)刷新快照;SQL > EXECUTE sp_snapshot_refresh; 五、快照監(jiān)視;快照可以通過下面的SQL語句來監(jiān)視;SQL > SELECT NAME,TO_CHAR(last_refresh,'DD-MON-YY HH:MM:SS');FROM DBA_SNAPSHOTS;
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 欧美影院网站视频观看 | 成人久久网 | 大狠狠大臿蕉香蕉大视频 | 国产精品18久久久久久vr | 99精品国产综合久久久久 | 亚洲天堂网在线观看 | 91精品国产薄丝高跟在线看 | 一级白嫩美女毛片免费 | 一区二区三区中文国产亚洲 | 亚洲欧美日本韩国综合在线观看 | 中文字幕在亚洲第一在线 | 欧美一级鲁丝片免费看 | 自拍国内| 日韩欧美在线一区二区三区 | 男人天堂网址 | 国产一区二区三区在线观看视频 | 97在线观看完整免费 | 精品国产一区二区二三区在线观看 | 伊人狠狠丁香婷婷综合色 | 亚洲第一网站免费视频 | 欧美日韩视频一区二区 | 丁香五香天堂 | 一级做a爰片性色毛片男 | 手机福利在线 | 精品无码三级在线观看视频 | 国产三级精品美女三级 | 亚洲在线观看免费 | 国产视频久久久久 | 久久中文字幕免费视频 | 成人影院免费观看 | 欧美成人a视频 | a级毛片免费观看网站 | 91麻精品国产91久久久久 | 大狠狠大臿蕉香蕉大视频 | 精品99久久 | 久久免费看 | 久久久成人网 | 免费亚洲视频 | 宅男69免费永久网站 | 黄色wwwcom| 亚洲视频在线网站 |