国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

賈海軍

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

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

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

0 引言

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

1 設(shè)計(jì)思路

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

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

采用這種方式的好處是:

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

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

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

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

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

GoldenGate主要包含Manager進(jìn)程、Extract進(jìn)程、Pump進(jìn)程、Replicat進(jìn)程。

Manager進(jìn)程是GoldenGate的控制進(jìn)程,它主要作用有以下幾個(gè)方面:?jiǎn)?dòng)、監(jiān)控、重啟GoldenGate的其他進(jìn)程,報(bào)告錯(cuò)誤及時(shí)間,分配數(shù)據(jù)存儲(chǔ)空間,發(fā)布閥值報(bào)告等。

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

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

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

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

3 遷移方案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(1)為兩臺(tái)服務(wù)器配置存儲(chǔ)空間

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

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

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

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

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

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

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

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

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

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

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

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

3.6 GoldenGate軟件安裝和配置

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

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

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

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

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

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

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

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

(7)配置checkpoint表;

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

2、GoldenGate配置

(1)配置GLOBALS文件;

(2)配置MGR;

(3)配置extract進(jìn)程;

(4)配置pump進(jìn)程;

(5)配置replicat進(jìn)程。

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

1、啟動(dòng)源庫(kù)(Linux RAC)上的extract和pump進(jìn)程;

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

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

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

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

6、以aftercsn參數(shù),啟動(dòng)目標(biāo)庫(kù)(linux RAC)的replicate進(jìn)程;

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

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

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

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

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

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

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

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

2、停止源庫(kù)(linux RAC)上的extract、pump進(jìn)程;

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

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

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

6、啟動(dòng)目標(biāo)庫(kù)(linuxRAC)上的extract、pump進(jìn)程;

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

8、啟動(dòng)源庫(kù)(Linux RAC)上的replicat進(jìn)程;

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

4 回退方案

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

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

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

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

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

3、停止源庫(kù)(Linux RAC)上的replicat進(jìn)程;

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

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

6、啟動(dòng)源庫(kù)(Linux RAC)的extract、pump進(jìn)程;

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

8、啟動(dòng)目標(biāo)庫(kù)(linux RAC)上的replicate進(jìn)程;

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

5 結(jié)語(yǔ)

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

猜你喜歡
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
洛隆县| 南皮县| 辽阳县| 长沙县| 南昌县| 南通市| 成安县| 襄汾县| 邹平县| 万全县| 禄丰县| 巴楚县| 抚松县| 内江市| 商南县| 靖州| 抚顺市| 四子王旗| 老河口市| 西安市| 蒙自县| 丰宁| 固阳县| 策勒县| 榆社县| 扬中市| 邹城市| 田阳县| 当阳市| 台安县| 灵山县| 万荣县| 惠东县| 陈巴尔虎旗| 集安市| 贵港市| 门源| 卓资县| 凤城市| 无锡市| 安图县|