国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

用ORACLE的高級(jí)復(fù)制實(shí)現(xiàn)內(nèi)外網(wǎng)數(shù)據(jù)同步

2024-08-29 13:37:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  本文簡(jiǎn)要介紹了Oracle的高級(jí)復(fù)制功能,并通過(guò)一個(gè)實(shí)際項(xiàng)目,討論了在內(nèi)外網(wǎng)的兩級(jí)DB中如何采用高級(jí)復(fù)制達(dá)到內(nèi)外網(wǎng)的數(shù)據(jù)統(tǒng)一,最后給出配置腳本供大家參考。
  
  1、基本概念
  ORACLE
  
  ORACLE是以高級(jí)結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫(kù),通俗地講它是用方便邏輯治理的語(yǔ)言操縱大量有規(guī)律數(shù)據(jù)的集合。是客戶/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。
  
  高級(jí)復(fù)制
  
  什么是復(fù)制?簡(jiǎn)單地說(shuō)復(fù)制就是在由兩個(gè)或者多個(gè)數(shù)據(jù)庫(kù)系統(tǒng)構(gòu)成的一個(gè)分布式數(shù)據(jù)庫(kù)環(huán)境中拷貝數(shù)據(jù)的過(guò)程。
  
  高級(jí)復(fù)制,是在組成分布式數(shù)據(jù)庫(kù)系統(tǒng)的多個(gè)數(shù)據(jù)庫(kù)中復(fù)制和維護(hù)數(shù)據(jù)庫(kù)對(duì)象的過(guò)程。 Oracle 高級(jí)復(fù)制答應(yīng)應(yīng)用程序更新數(shù)據(jù)庫(kù)的任何副本,并將這些更改自動(dòng)傳遞到其他數(shù)據(jù)庫(kù),同時(shí)確保全局事務(wù)處理的一致性和數(shù)據(jù)完整性。
  
  同步復(fù)制,復(fù)制數(shù)據(jù)在任何時(shí)間在任何復(fù)制節(jié)點(diǎn)均保持一致。假如復(fù)制環(huán)境中的任何一個(gè)節(jié)點(diǎn)的復(fù)制數(shù)據(jù)發(fā)生了更新操作,這種變化會(huì)馬上反映到其他所有的復(fù)制節(jié)點(diǎn)。這種技術(shù)適用于那些對(duì)于實(shí)時(shí)性要求較高的商業(yè)應(yīng)用中。
  
  異步復(fù)制,所有復(fù)制節(jié)點(diǎn)的數(shù)據(jù)在一定時(shí)間內(nèi)是不同步的。假如復(fù)制環(huán)境中的其中的一個(gè)節(jié)點(diǎn)的復(fù)制數(shù)據(jù)發(fā)生了更新操作,這種改變將在不同的事務(wù)中被傳播和應(yīng)用到其他所有復(fù)制節(jié)點(diǎn)。這些不同的事務(wù)間可以間隔幾秒,幾分種,幾小時(shí),也可以是幾天之后。復(fù)制節(jié)點(diǎn)之間的數(shù)據(jù)臨時(shí)是不同步的,但傳播最終將保證所有復(fù)制節(jié)點(diǎn)間的數(shù)據(jù)一致。
  
  2、項(xiàng)目情況
  需求描述
  
  這是一個(gè)內(nèi)外網(wǎng)結(jié)構(gòu)的審批系統(tǒng)。
  
  外網(wǎng)有一個(gè)WEB(+APPSERVER),一個(gè)DB(ORACLE9.2,雙網(wǎng)卡),負(fù)責(zé)接收申報(bào)和反饋審批結(jié)果。
  
  內(nèi)網(wǎng)有一個(gè)WEB(+APPSERVER),一個(gè)DB(ORACLE9.2,雙網(wǎng)卡),負(fù)責(zé)接收申報(bào)和反饋審批結(jié)果,以及通過(guò)審批流程處理來(lái)自外網(wǎng)的審批申報(bào)。
  
  由上可知,內(nèi)網(wǎng)功能包括外網(wǎng)功能,不過(guò)外網(wǎng)申報(bào)需要CA認(rèn)證,內(nèi)網(wǎng)則不需要。
  
  根據(jù)國(guó)家保密有關(guān)規(guī)定,政務(wù)系統(tǒng)的內(nèi)外網(wǎng)必須物理隔絕,所以外網(wǎng)接收到的申報(bào)并不能馬上反應(yīng)到內(nèi)網(wǎng),同理,內(nèi)網(wǎng)的處理結(jié)果也不能迅速反饋到外網(wǎng)。
  
  技術(shù)選擇
  
  我們選擇ORACLE異步手工復(fù)制,復(fù)制主要完如下功能:
  
  1. 把外網(wǎng)新申報(bào)數(shù)據(jù)復(fù)制到內(nèi)網(wǎng);
  
  2. 把內(nèi)網(wǎng)對(duì)申報(bào)的處理結(jié)果反饋到外網(wǎng)。
  
  操作實(shí)現(xiàn)
  
  因?yàn)檎9ぷ鲿r(shí)間,內(nèi)外網(wǎng)均不能停頓,而內(nèi)外網(wǎng)又不能物理連通。于是設(shè)定在天天晚上18:00至18:15(或其它時(shí)段)為維護(hù)時(shí)段,該時(shí)段內(nèi)外網(wǎng)均停止作業(yè),由系統(tǒng)治理員把與內(nèi)外網(wǎng)DB相連的所有網(wǎng)線均斷開(kāi),用一根直連網(wǎng)線把兩臺(tái)DB連接,通過(guò)ORACLE提供的操作界面,在外網(wǎng)端手工刷新記錄。
  
  3、具體實(shí)現(xiàn)步驟
  以下是腳本中用到的技術(shù)參數(shù),內(nèi)外網(wǎng)表結(jié)構(gòu)相同,且都有主鍵。
  
  
  內(nèi)網(wǎng) 外網(wǎng)
  ip 192.168.0.50 192.168.0.100
  SID ORANEI ORAWAI
  表 LAWTABLE
  REGISTER
  USERINFO
  ……
  共68張表 LAWTABLE
  REGISTER
  共2張表
  登錄名/密碼 HOLEN/HOLEN HOLEN/HOLEN
  
  以下是我們到客戶處安裝所用的SQL腳本
  
  第一步:配置內(nèi)網(wǎng),即MASTER端
  --版本:2.0
  --修訂者:陳光 holen@263.net
  --時(shí)間:2003-6-8 15:30
  --內(nèi)網(wǎng)作為MASTER
  --創(chuàng)建內(nèi)網(wǎng)用戶HOLEN
  
  CONN SYSTEM/PASSWord@ORANEI
  
  CREATE USER "HOLEN" PROFILE "DEFAULT" IDENTIFIED BY "HOLEN" ;
  GRANT "CONNECT" TO "HOLEN";
  GRANT "DBA" TO "HOLEN";
  GRANT "RESOURCE" TO "HOLEN";
  --導(dǎo)入內(nèi)網(wǎng)數(shù)據(jù)庫(kù)備份,在dos下到入完成(表LAWTABLE,REGISTER及其他表)
  
  第二步:配置內(nèi)網(wǎng),即MASTER端(續(xù))
  --需要復(fù)制(同步)的表為HOLEN用戶下的LAWTABLE,REGISTER
  
  --創(chuàng)建repadmin用戶治理復(fù)制環(huán)境
  
  CREATE USER REPADMIN IDENTIFIED BY REPADMIN;
  
  ALTER USER REPADMIN DEFAULT TABLESPACE USERS;

  
  ALTER USER REPADMIN TEMPORARY TABLESPACE TEMP;
  
  GRANT connect, resource TO REPADMIN;
  
  --授予repadmin用戶權(quán)限可以治理當(dāng)前站點(diǎn)中任何主體組
  
  EXECUTE dbms_repcat_admin.grant_admin_any_schema('REPADMIN');
  
  --授予repadmin用戶權(quán)限可以為任何表創(chuàng)建snapshot logs
  
  GRANT comment any table TO REPADMIN;
  
  GRANT lock any table TO REPADMIN;
  
  --指定repadmin用戶為propagator,并授予執(zhí)行任何procedure的權(quán)限
  
  EXECUTE dbms_defer_sys.register_propagator('REPADMIN');
  
  GRANT execute any procedure TO REPADMIN;
  
  --分配proxy snapshot administration權(quán)限給repadmin,list_of_gnames為null,意味著可以治理所有對(duì)象組
  
  BEGIN
  
  dbms_repcat_admin.register_user_repgroup(
  
  username => 'repadmin',
  
  privilege_type => 'proxy_snapadmin',
  
  list_of_gnames => NULL);
  
  END;
  
  /
  
  --分配'receiver'權(quán)限給repadmin
  
  BEGIN
  
  dbms_repcat_admin.register_user_repgroup(
  
  username => 'repadmin',
  
  privilege_type => 'receiver',
  
  list_of_gnames => NULL);
  
  END;
  
  /
  
  GRANT select any table TO repadmin;
  
  --在ORANEI上建立主體組,主體組名為HOLEN_MASTER,并往主體組中加入一個(gè)表
  
  --建立復(fù)制主體組
  
  BEGIN
  
  DBMS_REPCAT.CREATE_MASTER_REPGROUP(
  
  gname => '"HOLEN_MASTER"',
  
  qualifier => '',
  
  group_comment => '');
  
  END;
  
  /
  
  CONNECT REPADMIN/REPADMIN;
  
  --向復(fù)制組中加入表對(duì)象LAWTABLE
  
  BEGIN
  
  DBMS_REPCAT.CREATE_MASTER_REPOBJECT(
  
  gname => '"HOLEN_MASTER"',
  
  type => 'TABLE',
  
  oname => '"LAWTABLE"',
  
  sname => '"HOLEN"',
  
  copy_rows => TRUE,
  
  use_existing_object => TRUE);
  
  END;
  
  /
  
  --建立相應(yīng)的快照日志
  
  CREATE SNAPSHOT LOG
  
  ON "HOLEN"."LAWTABLE"
  
  TABLESPACE "SYSTEM"
  
  WITH PRIMARY KEY
  
  EXCLUDING NEW VALUES;
  
  --生成復(fù)制支持
  
  BEGIN
  
  DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT(
  
  sname => '"HOLEN"',
  
  oname => '"LAWTABLE"',
  
  type => 'TABLE',
  
  min_communication => TRUE,
  
  generate_80_compatible => FALSE);
  
  END;
  
  /
  
  --向復(fù)制組中加入表對(duì)象REGISTER
  
  BEGIN
  
  DBMS_REPCAT.CREATE_MASTER_REPOBJECT(
  
  gname => '"HOLEN_MASTER"',
  
  type => 'TABLE',
  
  oname => '"REGISTER"',
  
  sname => '"HOLEN"',
  
  copy_rows => TRUE,
  
  use_existing_object => TRUE);
  
  END;
  
  /
  
  CREATE SNAPSHOT LOG
  
  ON "HOLEN"."REGISTER"
  
  TABLESPACE "SYSTEM"
  
  WITH PRIMARY KEY
  
  EXCLUDING NEW VALUES;

  
  BEGIN
  
  DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT(
  
  sname => '"HOLEN"',
  
  oname => '"REGISTER"',
  
  type => 'TABLE',
  
  min_communication => TRUE,
  
  generate_80_compatible => FALSE);
  
  END;
  
  /
  
  --MASTER端配置完畢
  
  第三步:配置外網(wǎng),即SNAPSHOT端
  --外網(wǎng)作為SNAPSHOT
  
  --創(chuàng)建外網(wǎng)用戶HOLEN
  
  CONN SYSTEM/PASSWORD@ORAWAI
  
  --創(chuàng)建普通用戶
  
  CREATE USER "HOLEN" PROFILE "DEFAULT" IDENTIFIED BY "HOLEN";
  
  GRANT "CONNECT" TO "HOLEN";
  
  GRANT "DBA" TO "HOLEN";
  
  GRANT "RESOURCE" TO "HOLEN";
  
  --創(chuàng)建repadmin用戶治理快照端復(fù)制環(huán)境
  
  CREATE USER REPADMIN IDENTIFIED BY REPADMIN;
  
  ALTER USER REPADMIN DEFAULT TABLESPACE USERS;
  
  ALTER USER REPADMIN TEMPORARY TABLESPACE TEMP;
  
  GRANT connect, resource TO REPADMIN;
  
  --授予repadmin用戶權(quán)限可以治理當(dāng)前站點(diǎn)中任何主體組
  
  EXECUTE dbms_repcat_admin.grant_admin_any_schema('REPADMIN');

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 洮南市| 织金县| 桃园县| 华亭县| 山东省| 明光市| 农安县| 邛崃市| 志丹县| 柳州市| 精河县| 会昌县| 开化县| 且末县| 祥云县| 凉城县| 榕江县| 东港市| 遂昌县| 阳高县| 德江县| 松阳县| 松阳县| 曲阜市| 巴南区| 班戈县| 敖汉旗| 宜兴市| 盐边县| 元江| 通州区| 兰西县| 礼泉县| 晋州市| 武汉市| 商城县| 连南| 天峨县| 额尔古纳市| 黄龙县| 区。|