• 
    

    
    

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

      ?

      Oracle超大型數(shù)據(jù)庫數(shù)據(jù)遷移方法論

      2017-03-06 16:44劉娟
      電腦知識與技術(shù) 2016年30期
      關(guān)鍵詞:遷移邏輯數(shù)據(jù)庫

      劉娟

      摘要:在實(shí)踐中,一般將容量超過1T的數(shù)據(jù)庫,稱之為超大型數(shù)據(jù)庫。在運(yùn)營過程中,經(jīng)常會遇到不同的需求,需要對這類數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行遷移,該文根據(jù)日常運(yùn)營實(shí)踐,總結(jié)了對Oracle超大型數(shù)據(jù)庫數(shù)據(jù)采用邏輯遷移的解決方案。

      關(guān)鍵詞:數(shù)據(jù)庫;邏輯;遷移;數(shù)據(jù)泵

      中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)30-0007-02

      通信企業(yè)為了支撐業(yè)務(wù)發(fā)展和企業(yè)日常管理的需要,建設(shè)了規(guī)模龐大的IT系統(tǒng)。為了保障IT系統(tǒng)的長期穩(wěn)定高效的運(yùn)轉(zhuǎn),在日常運(yùn)營過程中,常常會遇到服務(wù)器硬件升級擴(kuò)容、系統(tǒng)軟件升級等需求。為了完成這些需求,通常會對數(shù)據(jù)進(jìn)行遷移,需要遷移的數(shù)據(jù)規(guī)模從幾百G到超過10T。在長期的運(yùn)營實(shí)踐中,作者總結(jié)了一套完善、成熟的數(shù)據(jù)遷移方法論,通過該方法論,成功完成了大量系統(tǒng)的數(shù)據(jù)遷移,累計(jì)實(shí)現(xiàn)數(shù)據(jù)遷移規(guī)模超過100T,有效的支撐了系統(tǒng)穩(wěn)定高效的運(yùn)轉(zhuǎn)。

      1 不同遷移方法的對比

      數(shù)據(jù)遷移通??梢圆捎梦锢砗瓦壿媰煞N不同的方法,兩種方法的對比見表1。

      隨著x86硬件平臺的性能提高和成熟、Linux系統(tǒng)的穩(wěn)定、以及基于x86平臺虛擬化技術(shù)的發(fā)展,將會越來越多地出現(xiàn)將數(shù)據(jù)從小型機(jī)平臺遷移到x86平臺的需求,在這種情況下,邏輯遷移是最常用的一種遷移方法。本文重點(diǎn)討論邏輯遷移的方法。

      2 數(shù)據(jù)遷移準(zhǔn)備工作

      遷移前期需要完成的準(zhǔn)備工作主要包括以下內(nèi)容:目標(biāo)主機(jī)數(shù)據(jù)庫軟件的安裝、創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表空間以及下面的檢查工作(注意目標(biāo)數(shù)據(jù)庫在遷移完成之前需要置為非歸檔模式)。

      3 詳細(xì)遷移步驟

      為了減少邏輯遷移過程中的系統(tǒng)停機(jī)時(shí)間,需要對數(shù)據(jù)先進(jìn)行分類,部分歷史或者靜態(tài)數(shù)據(jù)在正式遷移前先行導(dǎo)入到目標(biāo)數(shù)據(jù)庫中,盡量縮小正式遷移過程中的數(shù)據(jù)量。

      10g以前的版本由于無數(shù)據(jù)泵技術(shù),所以分兩種情況討論。

      3.1 Oracle 9i(包括9i)之前版本數(shù)據(jù)遷移

      Oracle 9i(包括9i)之前版本數(shù)據(jù)遷移采用Export/Import+DB Link方式,主要步驟為先利用Export/Import導(dǎo)出、導(dǎo)入用戶元數(shù)據(jù),再采用DB Link方式插入數(shù)據(jù)。不直接采用Import導(dǎo)入數(shù)據(jù),主要原因是Import是串行執(zhí)行,且如果中途報(bào)錯,導(dǎo)入過程要整體回退,不容易掌控導(dǎo)入的進(jìn)度;而采用數(shù)據(jù)庫鏈接插入數(shù)據(jù)的方式則可以避免這些問題。

      1) 在目標(biāo)庫上設(shè)置參數(shù)job_queue_processes為0,暫停目標(biāo)數(shù)據(jù)庫job的執(zhí)行。

      2) 比照源數(shù)據(jù)庫,在目標(biāo)數(shù)據(jù)庫上創(chuàng)建用戶、角色和profile,并將相關(guān)權(quán)限授予角色和用戶。

      3) 在源庫上批量生成需要遷移的用戶元數(shù)據(jù)導(dǎo)出腳本。

      4) 在源庫上批量生成目標(biāo)庫導(dǎo)入用戶元數(shù)據(jù)的腳本。導(dǎo)入后,注意需要更新JOB$表來更正JOB導(dǎo)入的問題。

      5) 檢查對象總數(shù)、無效對象。首先在目標(biāo)庫上執(zhí)行無效對象編譯的腳本:@?/rdbms/admin/utlrp.sql然后對比目標(biāo)庫和源庫的遷移用戶的對象總數(shù)、無效對象數(shù),是否有遺漏和不一致,在進(jìn)行針對性的補(bǔ)充。

      6) 通過數(shù)據(jù)庫鏈接插入數(shù)據(jù)。關(guān)閉應(yīng)用,在源庫上設(shè)置job_processes=0停止所有JOB運(yùn)行,在源庫上創(chuàng)建一個(gè)端口號為1526的監(jiān)聽,停掉原來的端口號為1521的監(jiān)聽,避免有應(yīng)用連接;插入數(shù)據(jù)前,再次確認(rèn)表上是否有觸發(fā)器,如果有,做好記錄后將其刪除。

      7) 利用第三方工具,產(chǎn)生序列創(chuàng)建腳本,并傳輸?shù)侥繕?biāo)庫上直接執(zhí)行。

      8) 利用第三方工具,產(chǎn)生索引創(chuàng)建腳本,并對腳本進(jìn)行修改,增加nologging、parallel選項(xiàng),加快索引創(chuàng)建速度,并傳輸?shù)侥繕?biāo)庫上直接執(zhí)行,執(zhí)行完畢后,再取消并行,恢復(fù)logging模式。

      9) 利用第三方工具,產(chǎn)生約束創(chuàng)建腳本,并傳輸?shù)侥繕?biāo)庫上直接執(zhí)行,注意主鍵和外鍵分開執(zhí)行,先創(chuàng)建主鍵約束,再創(chuàng)建外鍵約束,兩者不能同時(shí)執(zhí)行。

      10) 利用第三方工具,產(chǎn)生觸發(fā)器創(chuàng)建腳本,并傳輸?shù)侥繕?biāo)庫上直接執(zhí)行。

      11) 收集相關(guān)統(tǒng)計(jì)信息。

      3.2 Oracle 10g之后版本數(shù)據(jù)遷移

      在Oracle 10g以后的版本,由于數(shù)據(jù)泵技術(shù)的出現(xiàn),可以直接在數(shù)據(jù)泵中使用并行,可以簡化遷移的步驟。

      1) 設(shè)置參數(shù)job_queue_processes為0,暫停新舊數(shù)據(jù)庫job的執(zhí)行。

      2) 使用IMPDP直接按照用戶遷移數(shù)據(jù)。

      使用數(shù)據(jù)泵,采用DB Link的方式,開啟并行遷移數(shù)據(jù),如果一個(gè)用戶數(shù)據(jù)量特別大,尤其是有特別大的表,可以將該表排除,或者將一個(gè)用戶的表分割成多個(gè)IMPDP腳本執(zhí)行:

      impdp system/**** network_link=dl_old_db schemas=testuser directory=dir1 parallel=4 logfile=testuser.log

      3) 按用戶遷移數(shù)據(jù)完畢后檢查用戶的對象權(quán)限、角色權(quán)限是否有缺失,并進(jìn)行補(bǔ)充。

      4) 檢查表和索引是否開啟了并行,如果有進(jìn)行關(guān)閉。

      5) 編譯失效對象。

      6) 檢查是否有失效的組件。

      7) 恢復(fù)job參數(shù)。

      8) 收集統(tǒng)計(jì)信息。

      3.3 數(shù)據(jù)遷移的后續(xù)操作

      應(yīng)用啟動后,標(biāo)志著整個(gè)遷移工作已經(jīng)完成絕大部分。但是仍然有以下幾個(gè)重要步驟需要完成。

      1) 調(diào)整JOB定時(shí)任務(wù)。

      根據(jù)業(yè)務(wù)需要,某些定時(shí)任務(wù)只能在特定時(shí)間啟動,可能需要調(diào)整定時(shí)任務(wù)的啟動時(shí)間。

      2) 復(fù)制腳本以及創(chuàng)建cron任務(wù)。

      將源庫上的以cron方式調(diào)用的定時(shí)任務(wù)以及相應(yīng)的腳本復(fù)制到目標(biāo)庫主機(jī)上。

      3) 對數(shù)據(jù)庫進(jìn)行備份。

      將目標(biāo)庫設(shè)置為歸檔模式,在目標(biāo)庫安裝備份軟件,對數(shù)據(jù)庫進(jìn)行備份。

      4) 如果數(shù)據(jù)庫使用了GoldenGate等第三方復(fù)制軟件,需要在目標(biāo)庫上重新配置。

      4 遷移測試及回退

      由于遷移操作步驟較多,操作較復(fù)雜,必須進(jìn)行測試和演練,確保方案可行,保證能夠在既定的停機(jī)時(shí)間內(nèi)完成遷移。

      由于遷移過程不影響源生產(chǎn)庫。因此,可以按本方案,將所有的操作進(jìn)行一次演練。 除了應(yīng)用切換之外,其他步驟均可進(jìn)行測試和演練。

      如果在正式遷移時(shí),發(fā)生不能修復(fù)的并且嚴(yán)重影響遷移的問題,需要切換回原生產(chǎn)庫,根據(jù)不同的情況進(jìn)行相應(yīng)的操作:

      l 如果應(yīng)用沒有啟動,因?yàn)闆]有對原生產(chǎn)庫做任何改動,那么不需要做任何其他的步驟,直接啟動應(yīng)用,保持現(xiàn)狀即可。

      l 如果應(yīng)用已經(jīng)啟動,則需要將應(yīng)用切換回原生產(chǎn)庫。并將在目標(biāo)庫上發(fā)生的新的業(yè)務(wù)數(shù)據(jù)改動應(yīng)用到原生產(chǎn)庫中。為了避免數(shù)據(jù)改動過大,建議應(yīng)用啟動和測試時(shí)分步進(jìn)行,首先進(jìn)行查詢型的業(yè)務(wù)操作測試,避免事務(wù)型的業(yè)務(wù)操作。

      5 遷移方法總結(jié)

      對超大型數(shù)據(jù)庫的數(shù)據(jù)遷移采用邏輯方式,不論是采用Export/Import、數(shù)據(jù)庫鏈接還是采用數(shù)據(jù)泵,都需要重點(diǎn)考慮以下幾個(gè)問題:

      l 要遷移的數(shù)據(jù)量有多少?

      l 是否能夠按照歷史/靜態(tài)數(shù)據(jù)、動態(tài)數(shù)據(jù)對數(shù)據(jù)進(jìn)行分類?是否能對部分垃圾或者歷史數(shù)據(jù)進(jìn)行清理?

      l 遷移過程中使用的網(wǎng)絡(luò)帶寬是100M還是1000M?這個(gè)因素直接影響遷移的速度。

      l 遷移的數(shù)據(jù)表上索引、約束、觸發(fā)器的數(shù)量?

      l 業(yè)務(wù)最長停機(jī)時(shí)間是多少?

      對遷移方案和過程的選擇,要充分考慮以上因素,盡量縮短數(shù)據(jù)遷移的時(shí)間,對創(chuàng)建索引和約束要留夠充足的時(shí)間,并對準(zhǔn)備好的遷移方案在測試環(huán)境進(jìn)行充分的測試和驗(yàn)證,如果涉及版本的升級,還需要對應(yīng)用進(jìn)行兼容性的測試,在確保穩(wěn)妥可靠以后,再進(jìn)行正式的數(shù)據(jù)遷移。

      猜你喜歡
      遷移邏輯數(shù)據(jù)庫
      刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
      邏輯
      創(chuàng)新的邏輯
      淺析遷移規(guī)律在足球教學(xué)中的影響
      合江县| 泾源县| 含山县| 重庆市| 岳阳县| 辛集市| 青田县| 顺昌县| 博湖县| 靖边县| 沈阳市| 安龙县| 凌源市| 陆河县| 辽宁省| 青川县| 平潭县| 丹阳市| 惠州市| 温泉县| 东方市| 武川县| 达孜县| 南和县| 策勒县| 金溪县| 庆安县| 抚州市| 栾川县| 普格县| 黄冈市| 斗六市| 太保市| 灵璧县| 合川市| 惠州市| 惠水县| 新营市| 措勤县| 白朗县| 寿宁县|