• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種基于OGG方式進行數(shù)據(jù)遷移的研究

      2015-08-22 17:05:32賈海軍
      軟件 2015年5期
      關(guān)鍵詞:數(shù)據(jù)庫

      賈海軍

      摘要:近年來,隨著110指揮中心的業(yè)務(wù)發(fā)展,接、處警數(shù)據(jù)量急劇上升,老舊數(shù)據(jù)庫服務(wù)器已經(jīng)不滿足實際工作需要,亟需將大量數(shù)據(jù)遷移到一臺高性能數(shù)據(jù)庫服務(wù)器上,同時也要滿足數(shù)據(jù)不丟失、操作簡單、停機時間短等實際要求。Oracle GoldenGate(OGG)是一種基于日志的結(jié)構(gòu)化數(shù)據(jù)復(fù)制軟件,它通過解析源數(shù)據(jù)庫在線日志或歸檔日志獲得數(shù)據(jù)的增刪改變化,再將這些變化應(yīng)用到目標(biāo)數(shù)據(jù)庫,實現(xiàn)源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫同步。

      關(guān)鍵詞:Oracle GoldenGate;數(shù)據(jù)庫;數(shù)據(jù)遷移

      中圖分類號:TP311 文獻標(biāo)識碼:A DOI:10.3969/j.issn.1003-6970.2015.05.031

      0 引言

      110接處警指揮應(yīng)用系統(tǒng)是110報警服務(wù)臺中的重要組成部分,系統(tǒng)主要由接警、處警、反饋和數(shù)據(jù)庫系統(tǒng)組成,其中數(shù)據(jù)庫系統(tǒng)使用Oracle數(shù)據(jù)庫。由于系統(tǒng)常年不間斷運行,積累了大量接處警數(shù)據(jù),系統(tǒng)硬件性能已經(jīng)不滿足應(yīng)用需求,多次出現(xiàn)故障致使110程序卡機,給110系統(tǒng)正常運行帶來重大隱患。同時,鑒于各業(yè)務(wù)部門數(shù)據(jù)共享需求增加,需要實時抽取數(shù)據(jù)庫數(shù)據(jù),也給110數(shù)據(jù)庫造成巨大壓力。為了解決上述問題,我們計劃將現(xiàn)有的110接處反數(shù)據(jù)庫系統(tǒng)遷移到新的高性能服務(wù)器上,建立新的接處反數(shù)據(jù)庫系統(tǒng),將其和原有的數(shù)據(jù)庫系統(tǒng)和備庫系統(tǒng)以GoldenGate方式進行數(shù)據(jù)同步,形成一對多的數(shù)據(jù)同步模式,其中包括110主業(yè)務(wù)庫,110備庫,110查詢統(tǒng)計業(yè)務(wù)庫和數(shù)據(jù)推送中間庫等多層次數(shù)據(jù)同步的架構(gòu)。并在遷移過程中重新存儲表及索引的數(shù)據(jù),以解決表碎片,高水位等問題,針對大表將創(chuàng)建分區(qū)表以解決數(shù)據(jù)庫的性能問題。

      1 設(shè)計思路

      由于是同構(gòu)遷移,比較常用的數(shù)據(jù)庫遷移方式如下:

      通過遷移方案的對比,我們選擇了停機時間最小回退簡單且能對表及索引進行重組的GoldenGate數(shù)據(jù)庫遷移方案。

      采用這種方式的好處是:

      一、業(yè)務(wù)連續(xù)性得到保證:原有數(shù)據(jù)庫不需要停機,業(yè)務(wù)不需要中斷。

      二、應(yīng)用測試可以隨時進行:新的數(shù)據(jù)庫可以隨時進行業(yè)務(wù)測試,看業(yè)務(wù)系統(tǒng)與新平臺數(shù)據(jù)庫之間是否有需要修改的地方。

      三、業(yè)務(wù)切換瞬間完成:待一切測試工作完成,只需要將應(yīng)用程序指向新數(shù)據(jù)庫,就可以完成數(shù)據(jù)庫的升級和遷移。

      2 Oracle GoldenGate(OGG)技術(shù)簡介

      Oracle GoldenGate是一種非插入性的基于日志的結(jié)構(gòu)化數(shù)據(jù)復(fù)制軟件,它通過解析源數(shù)據(jù)庫在線日志或歸檔日志獲得數(shù)據(jù)的增刪改變化,再將這些變化應(yīng)用到目標(biāo)數(shù)據(jù)庫,實現(xiàn)源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫同步、雙活。

      GoldenGate主要包含Manager進程、Extract進程、Pump進程、Replicat進程。

      Manager進程是GoldenGate的控制進程,它主要作用有以下幾個方面:啟動、監(jiān)控、重啟GoldenGate的其他進程,報告錯誤及時間,分配數(shù)據(jù)存儲空間,發(fā)布閥值報告等。

      Extract進程運行在數(shù)據(jù)庫源端,負(fù)責(zé)從源端數(shù)據(jù)表或日志中捕獲數(shù)據(jù)。Extract進程利用其內(nèi)在的checkpoint機制,周期性地檢查并記錄其讀寫的位置,通常是寫入到本地的trail文件。這種機制是為了保證如果Extract進程終止或者操作系統(tǒng)宕機,重啟Extract進程后,GoldenGate能夠恢復(fù)到以前的狀態(tài),從上一個斷點處繼續(xù)往下運行,而不會有任何數(shù)據(jù)損失。

      Pump進程運行在數(shù)據(jù)庫源端,其作用非常簡單。如果源端使用了本地trail文件,那么Pump進程就會把Trail文件以數(shù)據(jù)塊的形式通過TCP/IP協(xié)議發(fā)送到目標(biāo)端。Pump進程本質(zhì)是Extract進程的一種特殊形式,如果不使用Trail文件,那么Extract進程在抽取完數(shù)據(jù)后,直接投遞到目標(biāo)端。

      與Pump進程相對應(yīng)的叫Server Collector進程,這個進程不需要引起我們關(guān)注,因為在實際操作過程中無需對其進行任何配置,它運行在目標(biāo)端,任務(wù)就是把Extract/Pump進程投遞過來的數(shù)據(jù)塊重新組裝成Trail文件。

      Replicat進程運行在目標(biāo)端,是數(shù)據(jù)投遞的最后一站,負(fù)責(zé)讀取目標(biāo)端Trail文件中的內(nèi)容,并將解析其解析為DML或DDL語句,然后應(yīng)用到目標(biāo)數(shù)據(jù)庫中。

      3 遷移方案

      3.1 源數(shù)據(jù)庫的準(zhǔn)備

      1、數(shù)據(jù)庫版本,Patch檢查

      查源庫的數(shù)據(jù)庫版本號,以及該數(shù)據(jù)庫所實施的Patch,以保證遷移后的數(shù)據(jù)庫與源庫保持一致。

      2、數(shù)據(jù)庫檢查

      對源庫進行GoldenGate安裝前的檢查,檢查內(nèi)容包括:

      1)、不支持的數(shù)據(jù)類型。2)、當(dāng)前運行的JOB。3)、當(dāng)前運行的觸發(fā)器。4)、回收站的功能是否關(guān)閉。5)、是否存在無主鍵,無唯一約束的表。6)、sequence檢查。

      3、數(shù)據(jù)庫備份

      檢查數(shù)據(jù)庫備份情況,確認(rèn)數(shù)據(jù)庫的備份是否有效,并根據(jù)數(shù)據(jù)庫備份的實際情況,制定數(shù)據(jù)庫遷移前的數(shù)據(jù)庫備份策略與方法。

      3.2 目標(biāo)數(shù)據(jù)庫的準(zhǔn)備

      新數(shù)據(jù)庫服務(wù)器配置為Oraclelog RAC數(shù)據(jù)庫,Oracle版本為10.2.0.4。數(shù)據(jù)庫的存儲邏輯卷管理將使用Oracle的ASM。

      3.3 應(yīng)用層的準(zhǔn)備

      由于數(shù)據(jù)庫進行了遷移,且相應(yīng)的主機名以及IP地址都可能發(fā)生改變,故應(yīng)用系統(tǒng)以及連接到數(shù)據(jù)庫的相關(guān)應(yīng)用系統(tǒng)都要做相應(yīng)數(shù)據(jù)連接的修改,使業(yè)務(wù)程序能夠隨時連接到新的RAC數(shù)據(jù)庫。

      3.4 切換邏輯與流程設(shè)計

      由于涉及到兩套數(shù)據(jù)庫的數(shù)據(jù)切換,因此,需要根據(jù)業(yè)務(wù)特點,仔細(xì)設(shè)計切換操作的流程和順序,提供可靠的回退機制。

      3.5 創(chuàng)建Linux RAC數(shù)據(jù)庫

      在兩臺服務(wù)器上安裝Oracle RAC數(shù)據(jù)庫,其版本以及相關(guān)Patch將與110報警服務(wù)窗口系統(tǒng)的數(shù)據(jù)庫保持一致。數(shù)據(jù)庫文件將放置在由OracleASM管理的存儲上。

      1、Linux服務(wù)器的配置步驟如下:

      (1)為兩臺服務(wù)器配置存儲空間

      主機層需要準(zhǔn)備硬盤空間,以存放數(shù)據(jù)庫數(shù)據(jù)文件,存儲歸檔文件以及GoldenGate數(shù)據(jù)抓取文件。

      (2)在服務(wù)器上安裝Linux操作系統(tǒng)。

      (3)配置主機參數(shù)和網(wǎng)絡(luò)環(huán)境。

      2、Oracle 10g RAC安裝步驟如下:

      (1)兩臺服務(wù)器上安裝Oracle10g集群軟件;

      (2)兩臺服務(wù)器上安裝Oracle數(shù)據(jù)庫軟件;

      (3)為安裝的Oracle 10g集群軟件實施相關(guān)補?。?/p>

      (4)在Oracle RAC數(shù)據(jù)庫上創(chuàng)建ASM;

      (5)在Oracle RAC數(shù)據(jù)庫上創(chuàng)建RAC數(shù)據(jù)庫。

      3、Oracle 10g RAC分區(qū)表的建立。

      (1)在新安裝的數(shù)據(jù)庫按照源庫創(chuàng)建相應(yīng)的用戶;

      (2)在新安裝的數(shù)據(jù)庫按照源庫創(chuàng)建相應(yīng)的表,并根據(jù)用戶的需求把110接處警指揮應(yīng)用系統(tǒng)的業(yè)務(wù)表進行分區(qū)優(yōu)化和索引重建。

      3.6 GoldenGate軟件安裝和配置

      在源數(shù)據(jù)庫服務(wù)器上(Linux RAC)和目標(biāo)數(shù)據(jù)庫服務(wù)器上(Linux RAC)分別安裝GoldenGate軟件。為了保證GoldenGate軟件在RAC數(shù)據(jù)庫上能夠切換,請將RAC數(shù)據(jù)庫上的Goldengate軟件安裝在共享存儲上。

      1、數(shù)據(jù)庫準(zhǔn)備

      (1)在兩個數(shù)據(jù)庫上創(chuàng)建數(shù)據(jù)庫用戶ggs;

      (2)配置數(shù)據(jù)庫為SUPPLEMENTAL和FORCE LOGGING;

      (3)清空數(shù)據(jù)庫回收站;

      (4)關(guān)閉10g回收站功能;

      (5)在兩套主機安裝GoldenGate軟件;

      (6)設(shè)置LD LIBRARY PATH環(huán)境變量;

      (7)配置checkpoint表;

      (8)數(shù)據(jù)庫打開歸檔。

      2、GoldenGate配置

      (1)配置GLOBALS文件;

      (2)配置MGR;

      (3)配置extract進程;

      (4)配置pump進程;

      (5)配置replicat進程。

      3.7 目標(biāo)數(shù)據(jù)庫初始化,進行源庫到目標(biāo)庫的同步

      1、啟動源庫(Linux RAC)上的extract和pump進程;

      2、獲取并記錄源庫(Linux RAC)當(dāng)前的SCN號;

      3、數(shù)據(jù)導(dǎo)出:以FLASHBACK SCN為參數(shù),使用expdp導(dǎo)出源庫(linuxRAC)數(shù)據(jù);

      4、數(shù)據(jù)導(dǎo)入:在目標(biāo)庫(linux RAC)上使用impdp導(dǎo)入數(shù)據(jù);

      5、禁用目標(biāo)庫(lilnux RAC)trigger和job;

      6、以aftercsn參數(shù),啟動目標(biāo)庫(linux RAC)的replicate進程;

      7、觀察進程狀態(tài)以及數(shù)據(jù)復(fù)制情況。

      3.8 業(yè)務(wù)系統(tǒng)在RAC數(shù)據(jù)庫上進行驗證和測試

      1、確認(rèn)數(shù)據(jù)同步已經(jīng)完成(并正在繼續(xù));

      2、在目標(biāo)數(shù)據(jù)庫上(Linux RAC)進行數(shù)據(jù)驗證和對比;

      3、在目標(biāo)數(shù)據(jù)庫上(Linux RAC)進行業(yè)務(wù)測試。

      3.9 業(yè)務(wù)系統(tǒng)正式遷移到RAC數(shù)據(jù)庫

      經(jīng)驗證數(shù)據(jù)同步正常,將數(shù)據(jù)庫切換至新環(huán)境。

      1、停止連接源庫(Linux RAC)上的應(yīng)用;

      2、停止源庫(linux RAC)上的extract、pump進程;

      3、確認(rèn)目標(biāo)庫上replicate進程達到EOF狀態(tài),停止目標(biāo)庫(linux RAC)上replicate進程;

      4、目標(biāo)庫(linux RAC)上重建sequence;

      5、禁用源庫(linux)上trigger和job;

      6、啟動目標(biāo)庫(linuxRAC)上的extract、pump進程;

      7、啟用目標(biāo)庫(linux RAC)上trigger和job;

      8、啟動源庫(Linux RAC)上的replicat進程;

      9、啟動連接目標(biāo)庫(linuxRAC)上的應(yīng)用,進行數(shù)據(jù)驗證。

      4 回退方案

      當(dāng)原數(shù)據(jù)庫遷移到新環(huán)境的數(shù)據(jù)庫后,

      如果由此次遷移影響業(yè)務(wù)正常進行,且短時間內(nèi)未找到解決辦法。將數(shù)據(jù)庫由連接目標(biāo)庫(linux RAC)上的應(yīng)用切換回源庫(Linux RAC)。

      數(shù)據(jù)庫層要做相應(yīng)配置,使其能夠滿足GoldenGate運行要求。

      1、停止連接目標(biāo)庫(hnux RAC)上的應(yīng)用;

      2、停止目標(biāo)庫(linux RAC)上的extract、pump進程;

      3、停止源庫(Linux RAC)上的replicat進程;

      4、源庫(Linux RAC)重建sequence;

      5、禁用目標(biāo)庫(1imux RAC)上trigger和job;

      6、啟動源庫(Linux RAC)的extract、pump進程;

      7、啟用源庫(Linux RAC)的trigger和job;

      8、啟動目標(biāo)庫(linux RAC)上的replicate進程;

      9、啟動連接源庫(Linux RAC)的應(yīng)用,進行數(shù)據(jù)驗證。

      5 結(jié)語

      Oracel數(shù)據(jù)庫在業(yè)內(nèi)應(yīng)用非常廣泛,老舊服務(wù)器的硬件升級更新也是每名數(shù)據(jù)庫管理員面臨的實際問題。如何安全快捷方便地對大型數(shù)據(jù)庫進行遷移,是一個需要長期研究的課題。本文針對具體工程實踐,提出了一種切實可行的工作思路,并在實施中進行了驗證,取得了很好的效果,對數(shù)據(jù)遷移中涉及到的數(shù)據(jù)安全性、業(yè)務(wù)連續(xù)性、易用性、可回退性等都做了周密的考慮,具有一定的可移植性。

      猜你喜歡
      數(shù)據(jù)庫
      數(shù)據(jù)庫
      財經(jīng)(2017年15期)2017-07-03 22:40:49
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      數(shù)據(jù)庫
      財經(jīng)(2016年6期)2016-02-24 07:41:51
      數(shù)據(jù)庫
      財經(jīng)(2010年20期)2010-10-19 01:48:32
      新平| 阳西县| 平泉县| 历史| 洛浦县| 灵宝市| 岑巩县| 定边县| 咸宁市| 左权县| 卓资县| 武威市| 黔西县| 兰溪市| 延津县| 怀宁县| 长岭县| 张家口市| 衡东县| 蓬莱市| 敦化市| 莒南县| 凭祥市| 溧水县| 河南省| 遵化市| 大足县| 宁明县| 徐闻县| 通榆县| 博湖县| 黎平县| 类乌齐县| 江陵县| 天台县| 芮城县| 淮安市| 曲阜市| 华亭县| 化州市| 车致|