电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:143日期:2023-11-21 10:42:27
;復(fù)制是一種實(shí)現(xiàn)數(shù)據(jù)分布的方法,也就是說把一個系統(tǒng)中的數(shù)據(jù)通過網(wǎng)絡(luò)分布到另外一個或者多個地理位置不同的系統(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ù)制中的定時任務(wù)機(jī)制》 介紹了Oracle8中的定時復(fù)制的機(jī)制,本文將主要介紹一個 Oracle 快照復(fù)制的實(shí)際例子及其技術(shù)實(shí)現(xiàn)細(xì)節(jié)。;一、業(yè)務(wù)需求 在一個實(shí)際的數(shù)據(jù)庫應(yīng)用中,如銀行、稅務(wù)等商業(yè)應(yīng)用中通常都采用這樣一種解決方案,在一個行政區(qū)域內(nèi),如一個省或者一個市,在不同的地理位置架設(shè)數(shù)臺數(shù)據(jù)庫服務(wù)器,這些不同地理位置的服務(wù)器具有同樣的后臺數(shù)據(jù)庫。為了維護(hù)數(shù)據(jù)庫系統(tǒng)的一致性,對于整個行政區(qū)域應(yīng)用的代碼表應(yīng)該保持一致,假如不考慮數(shù)據(jù)復(fù)制,想維護(hù)同樣的不沖突的代碼表是很困難的。下面是一個實(shí)際的業(yè)務(wù)需求,我們用這里例子來說明 Oracle快照復(fù)制的應(yīng)用。;為了維護(hù)整個系統(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)建一個單獨(dú)的快照表空間和一個模式(schema),系統(tǒng)中的其他用戶通過一個私有同義詞來存取這些快照。這里私有同義詞相對公共同義詞要好,這是因?yàn)樵谖恢?存在一個同樣規(guī)范的系統(tǒng),它的表是通過公共同義詞來存取的。對于快照的刷新,采用 Oracle系統(tǒng)包DBMS-_REFRESH進(jìn)行,并將該刷新過程的運(yùn)行定時在天天早上2:00,這樣可以減少網(wǎng)絡(luò)流量。對于快照的刷新形式,由于對于代碼表的維護(hù)不是很多而且代碼表的數(shù)據(jù)量相對較少,所以在此選擇了完全刷新,這樣就避免了治理快照日志的麻煩。下面以一個節(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ù)制的代碼表有三個: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)建一個用于連接數(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';;出于安全考慮,可以采用一個私有數(shù)據(jù)連接。;3. 創(chuàng)建一個名為Snapshot_ts的表空間來存放快照,并創(chuàng)建一個和該表空間有關(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;注重上面這個生成所需表快照的腳本有一定的局限性,假如所需生成快照的表中含有類型為long的列,‘select *'在這里就不會起作用,上面的這個SQL腳本就不能自動建立生成所需快照的腳本,必須通過在select列表中顯式地添加long型列名來創(chuàng)建表的快照。下面是一個例子,假如我們要創(chuàng)建快照依靠的表dm_gy_note中有一個列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來刷新一個快照:;SQL > EXECUTE DBMS_SNAPSHOT.REFRESH('snap.dm_gy_rydm');6. 創(chuàng)建一個定時刷新過程來定時刷新快照:;/*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)建了一個定時任務(wù)來天天早晨2:00定時刷新快照。運(yùn)行下面的SQL語句就可以看到剛剛加入的這個任務(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)的代碼表快照和定時刷新任務(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ù)  無論任何時候只要出現(xiàn)網(wǎng)絡(luò)連接問題,刷新就會失敗。這些錯誤信息可以在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)建快照組并且重新定時任務(wù)來定時刷新快照;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ù)庫
主站蜘蛛池模板: 广西资质代办_建筑资质代办_南宁资质代办理_新办、增项、升级-正明集团 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 建筑资质代办_工程施工资质办理_资质代办公司_北京众聚企服 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 无机纤维喷涂棉-喷涂棉施工工程-山东华泉建筑工程有限公司▲ | 济南铝方通-济南铝方通价格-济南方通厂家-山东鲁方通建材有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 考试试题_试卷及答案_诗词单词成语 - 优易学| 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 棉服定制/厂家/公司_棉袄订做/价格/费用-北京圣达信棉服 | HDPE储罐_厂家-山东九州阿丽贝防腐设备 | 留学生辅导网-在线课程论文辅导-留学生挂科申诉机构 | 上海乾拓贸易有限公司-日本SMC电磁阀_德国FESTO电磁阀_德国FESTO气缸 | 空冷器|空气冷却器|空水冷却器-无锡赛迪森机械有限公司[官网] | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | QQ房产导航-免费收录优秀房地产网站_房地产信息网 | 陕西鹏展科技有限公司| 哈尔滨治「失眠/抑郁/焦虑症/精神心理」专科医院排行榜-京科脑康免费咨询 一对一诊疗 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 十二星座查询(性格特点分析、星座运势解读) - 玄米星座网 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 安徽合肥格力空调专卖店_格力中央空调_格力空调总经销公司代理-皖格制冷设备 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 房在线-免费房产管理系统软件-二手房中介房屋房源管理系统软件 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 福州甲醛检测-福建室内空气检测_环境检测_水质检测-福建中凯检测技术有限公司 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | PO膜_灌浆膜及地膜供应厂家 - 青州市鲁谊塑料厂 |