成熟丰满熟妇高潮XXXXX,人妻无码AV中文系列久久兔费 ,国产精品一国产精品,国精品午夜福利视频不卡麻豆

您好,歡迎來到九壹網(wǎng)。
搜索
您的當前位置:首頁oracle分布式數(shù)據(jù)解決方案

oracle分布式數(shù)據(jù)解決方案

來源:九壹網(wǎng)

Oracle相關分布式數(shù)據(jù)解決方案 可能在云計算、SOA架構下這種方案會逐漸消亡,但是目前還是比較實用的,本文簡單介紹了常用的數(shù)據(jù)同步方案,由于正在使用高級復制的解決方案,所以重點說了oracle的高級復制 一、常見的分布式數(shù)據(jù)解決方案 如果數(shù)據(jù)庫為oracle、

Oracle相關分布式數(shù)據(jù)解決方案
可能在云計算、SOA架構下這種方案會逐漸消亡,但是目前還是比較實用的,本文簡單介紹了常用的數(shù)據(jù)同步方案,由于正在使用高級復制的解決方案,所以重點說了oracle的高級復制
一、常見的分布式數(shù)據(jù)解決方案
如果數(shù)據(jù)庫為oracle、數(shù)據(jù)分散的分布式系統(tǒng),??梢砸姷饺胂碌姆植冀鉀Q方案
非實時,批量同步
1.ETL工具或者自己開發(fā)的接口
一般對應于特定格式的數(shù)據(jù)文件,使用FTP服務。
數(shù)據(jù)倉庫或者數(shù)據(jù)集市可以使用ETL工具做數(shù)據(jù)整合,一般系統(tǒng)都是自己寫的接口程序實現(xiàn)。常規(guī)思路是數(shù)據(jù)導入接口表,清洗后進入正式表
導入方式非常多,如果數(shù)據(jù)量很大可以使用sqlLoder,如果數(shù)據(jù)不大,可以逐行導入并同時清洗。就我的經(jīng)驗來看,將清洗邏輯放在數(shù)據(jù)庫比較好。
也有可能是通過http獲得的XML文件,這時需要自己定制XML的解析程序,讀出CDATA節(jié)。高級程序語言這方面的功能都很強大、簡單。
實時、小批量同步
1.第三方提供的
對于關鍵系統(tǒng),可以使用中間件保證數(shù)據(jù)的安全、穩(wěn)定。比如BEA的Tuxedo就不錯。
2.自己開發(fā)
如果都是unix機器可以使用socket編程,數(shù)據(jù)打成包發(fā)送,,穩(wěn)定性可以保證。經(jīng)常是打成XML的格式,數(shù)據(jù)文件的自描述能力比較強。
這兩種方案在電信等系統(tǒng)都可以見到,還是比較可靠的。
3.oracle自己提供的
3.1實時表接口
使用db_link和存儲過程,結合job,很靈活和強大。
3.2 oracle高級復制
如果需要保證雙向的實時數(shù)據(jù)同步,同時復制環(huán)節(jié)又比較復雜,存在多個復制結點,可以使用Oracle的高級復制,上個月 濟南網(wǎng)站建設 做的房產(chǎn)局項目中使用了這種方案。雖然就這個項目來說,不太適用使用這種方案,但由于歷史的原因,為了一期系統(tǒng)的需要我們延續(xù)了這種同步方案。這篇文章主要就高級復制的過程進行說明:

二、高級復制基本概念
1.相同數(shù)據(jù)會存在于多個結點,這種環(huán)境更適宜使用高級復制
2.在不同版本和不同操作系統(tǒng)之間的ORACLE,都可以使用advance replication
3.幾個名詞
replication object:復制對象,包括表、索引、存儲過程
replication group:復制組,復制對象的集合,一個group包含多個object,一個object只能屬于一個group
replication site:復制站點
4.multimaster replication:特點:全表復制,每個事務后都可進行復制
復制方式
異步復制:推后的時間內(nèi)復制到其它master,也叫store and forward data replication
同步復制:立刻更新到其它master,也就real time data replication
procedual replication: 包生成一個wrapper,數(shù)據(jù)變化通過存儲過程完成,某個master中的procedure被調(diào)研,wapper會保證其它site中 的procedure也被調(diào)用,在有大數(shù)據(jù)量操作時可減少網(wǎng)絡負載
異步調(diào)用過程
DML操作(或者wappers)產(chǎn)生由內(nèi)部觸發(fā)器一個延時rpc并放入延時事務隊列,1個site有延時事務隊列,1個隊列被多個group共用
出現(xiàn)錯誤將事務放入錯誤隊列,事務成功結束后,由purge job從源site的事務隊列中刪除事務
同步復制過程
DML操作被立刻捕獲,事務立刻執(zhí)行,任何一個站點出錯、事務回滾,先鎖住本地行,使用after row觸發(fā)器鎖住遠端行,所有站點提交后 oracle才會解鎖,極為依賴系統(tǒng)和網(wǎng)絡的可用性
三、高級復制創(chuàng)建步驟:
網(wǎng)上的資料很多,也很詳細,其中eygle的比較詳細的經(jīng)典,大家搜一下就可以看到,我就簡單說一下,并就自己碰到的問題描述一下解決辦法
1.調(diào)整oracle環(huán)境,建立repadmin用戶,為用法賦權
2.建立db_link
3.復制組中建立復制對象
可使用圖形化工具或者手工腳本建立,由于表很多,而且正式部署還有再次建立,這里我使用了手工腳本方式
--創(chuàng)建復制組:
DBMS_REPCAT.CREATE_MASTER_REPGROUP(
gname => '"***"',
qualifier => '',
group_comment => '');

--在復制組里加入復制對象:
DBMS_REPCAT.CREATE_MASTER_REPOBJECT(
gname => '"**"',
type => 'TABLE',
oname => '"TEST"',
sname => '"LFGISTEST"',
copy_rows => false,
use_existing_object => TRUE);

--對復制對象產(chǎn)生復制支持:
DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT(
sname => '"LFGISTEST"',
oname => '"TEST"',
type => 'TABLE');

--添加主體復制節(jié)點:
DBMS_REPCAT.ADD_MASTER_DATABASE(
gname => '"***"',
master => '***',
use_existing_objects => TRUE,
copy_rows => false,
propagation_mode => 'ASYNCHRONOUS');

--在主體定義站點啟動復制:
DBMS_REPCAT.RESUME_MASTER_ACTIVITY(gname => '"***"',true);
碰到的錯誤
1.db_link創(chuàng)建后無法使用,發(fā)現(xiàn)db_link起的名稱有問題
解決方法:如果global_names = true;db_link名稱一定要和global_name一致,修改后成功
2.添加主體復制節(jié)點時報錯:
ORA-23357: the propagator does not exist
ORA-06512: at "SYS.DBMS_REPCAT_CACHE", line 76
ORA-06512: at "SYS.DBMS_REPCAT_MAS", line 2105
ORA-06512: at "SYS.DBMS_REPCAT", line 146
ORA-06512: at line 2
可能原因:
1.global_name使用了oracle的保留字,參考:
修改(61)global_name 為OUT.WWKJ.LZFC2
alter database rename global_name to OUT.WWKJ.LZFC2;
2.REPADMIN用戶權限不足,檢查賦權限的語句,確保權限到位
3.db_link必須使用REPADMIN連接對端數(shù)據(jù)庫,我就是因為這個原因報的錯
4.據(jù)說兩臺數(shù)據(jù)庫的域必須一樣
5.兩臺機器的用戶和schema應該一致
解決方法:呵呵,很粗心啊,沒有用repadmin運行腳本
3.復制組中加入復制對象時候,報23312錯誤,當前站點不是masterdef
Oracle Error : ORA-23312: not the masterdef according to string
Cause: The group name is null, the group name is misspelled, the invocation or given database is not the masterdef, or one of the masters does not believe the invocation database is the masterdef.
Action: If the given group name and masterdef were both correct, connect to the masterdef and retry the request, or relocate the masterdef at the (errant) databases using relocate_masterdef.

Copyright ? 2019- 91gzw.com 版權所有 湘ICP備2023023988號-2

違法及侵權請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市萬商天勤律師事務所王興未律師提供法律服務