999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于地震資料處理的數(shù)據(jù)庫遷移方法研究

2023-10-05 08:10:20金弟邵萌珠何嘉誠葉月明王宗仁
電子設(shè)計(jì)工程 2023年19期
關(guān)鍵詞:數(shù)據(jù)庫

金弟,邵萌珠,何嘉誠,葉月明,王宗仁

(中國石油杭州地質(zhì)研究院計(jì)算機(jī)應(yīng)用研究所,浙江杭州 310023)

地震資料處理平臺是油氣勘探開發(fā)領(lǐng)域重要的科研裝備[1-2],對油氣井位部署和規(guī)模油氣藏發(fā)現(xiàn)起到重要作用。杭州地質(zhì)研究院是以海相海洋為特色的中國石油下屬油氣勘探研究院,開展國內(nèi)外油氣勘探地震資料目標(biāo)處理研究。隨著油氣勘探深入開展,需對現(xiàn)有地震資料處理平臺的數(shù)據(jù)庫系統(tǒng)進(jìn)行升級改造,為了有高性價(jià)比以及快速有效方便完整進(jìn)行數(shù)據(jù)庫遷移,提出將Oracle 數(shù)據(jù)庫[3-4]遷移到PostgreSQL 數(shù)據(jù)庫[5-7]的數(shù)據(jù)遷移解決方案。為油氣勘探開發(fā)領(lǐng)域的數(shù)據(jù)庫數(shù)據(jù)遷移提供借鑒參考。

1 數(shù)據(jù)庫遷移設(shè)計(jì)方案

1.1 數(shù)據(jù)組織結(jié)構(gòu)分析

現(xiàn)有地震資料處理的Oracle 數(shù)據(jù)庫系統(tǒng)共有OPM、OCM、RDM 等7 個(gè)數(shù)據(jù)庫實(shí)例,涉及的處理工區(qū)有常規(guī)處理、交互式處理、時(shí)間偏移、深度偏移四種地震工區(qū)類型[8]。如圖1 所示,整個(gè)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)組織架構(gòu)以地震項(xiàng)目工區(qū)為核心,每個(gè)地震項(xiàng)目工區(qū)在物理上對應(yīng)一個(gè)表空間,邏輯上對應(yīng)一個(gè)Schema,每個(gè)Schema 對應(yīng)所屬的數(shù)據(jù)庫對象集。

圖1 地震資料處理數(shù)據(jù)組織邏輯結(jié)構(gòu)

可以看出,數(shù)據(jù)庫數(shù)據(jù)組織結(jié)構(gòu)具有多數(shù)據(jù)庫實(shí)例、多地震項(xiàng)目工區(qū)類型、多Schema、多數(shù)據(jù)庫對象、多數(shù)據(jù)變化等特點(diǎn)。這些特點(diǎn)增加了數(shù)據(jù)庫數(shù)據(jù)遷移過程的復(fù)雜性,提升了對數(shù)據(jù)遷移完整性的要求,是數(shù)據(jù)庫數(shù)據(jù)遷移的難點(diǎn)所在。也是在設(shè)計(jì)數(shù)據(jù)遷移方案時(shí),重點(diǎn)需要解決的關(guān)鍵性問題。

1.2 數(shù)據(jù)遷移技術(shù)流程

通過上述對地震資料處理平臺Oracle 數(shù)據(jù)庫數(shù)據(jù)組織邏輯結(jié)構(gòu)的闡述與分析,數(shù)據(jù)庫系統(tǒng)有多個(gè)數(shù)據(jù)庫實(shí)例和一定規(guī)模數(shù)量不同類型的地震資料處理項(xiàng)目工區(qū)Schema。

數(shù)據(jù)庫數(shù)據(jù)遷移以地震資料處理項(xiàng)目工區(qū)為一個(gè)邏輯遷移單位,數(shù)據(jù)庫數(shù)據(jù)遷移方法的核心思想是采用模板機(jī)制方法設(shè)計(jì)來解決。

1)分析源數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)庫實(shí)例層的數(shù)據(jù)組織結(jié)構(gòu),構(gòu)建數(shù)據(jù)庫實(shí)例級模板及相關(guān)參數(shù),分析源數(shù)據(jù)庫系統(tǒng)的不同地震項(xiàng)目工區(qū)層的數(shù)據(jù)組織結(jié)構(gòu),構(gòu)建地震工區(qū)級模板及相關(guān)參數(shù),完成二類模板構(gòu)建及參數(shù)選擇。

2)設(shè)計(jì)模板轉(zhuǎn)換程序,針對具體的數(shù)據(jù)庫實(shí)例名稱、項(xiàng)目工區(qū)類型、項(xiàng)目工區(qū)名稱等參數(shù)輸入完成模板到項(xiàng)目工區(qū)級數(shù)據(jù)遷移的SQL 執(zhí)行腳本集。

3)根據(jù)SQL 執(zhí)行腳本集完成數(shù)據(jù)庫數(shù)據(jù)遷移和數(shù)據(jù)完整性、一致性檢查。數(shù)據(jù)遷移技術(shù)流程如圖2所示。

圖2 數(shù)據(jù)遷移技術(shù)流程

1.3 創(chuàng)建模板與參數(shù)選擇

隨著地震資料處理平臺長期使用和地震資料處理項(xiàng)目工區(qū)增多,7 個(gè)數(shù)據(jù)庫實(shí)例與不同地震項(xiàng)目工區(qū)的組合在源數(shù)據(jù)庫系統(tǒng)中產(chǎn)生大量的Schema,每個(gè)Schema 又產(chǎn)生眾多所屬的數(shù)據(jù)庫對象集,因此源數(shù)據(jù)庫系統(tǒng)的各個(gè)數(shù)據(jù)庫實(shí)例中具有Schema 數(shù)量的動(dòng)態(tài)變化和數(shù)據(jù)庫對象集合的數(shù)量規(guī)模不確定性等特性,通過模板機(jī)制能很好地解決這些問題。

針對7 個(gè)數(shù)據(jù)庫實(shí)例設(shè)計(jì)7 個(gè)數(shù)據(jù)庫實(shí)例級的模板。如圖3,針對四種地震資料處理項(xiàng)目工區(qū)類型設(shè)計(jì)四類地震項(xiàng)目工區(qū)級模板,針對每個(gè)數(shù)據(jù)庫實(shí)例模板和每類地震項(xiàng)目工區(qū)類型的特點(diǎn),結(jié)合對應(yīng)地震項(xiàng)目工區(qū)Schema 中的數(shù)據(jù)庫對象類型,每類地震項(xiàng)目工區(qū)級模板由若干數(shù)據(jù)庫對象子模板構(gòu)成,結(jié)合模板的參數(shù)選擇實(shí)現(xiàn)模板到可執(zhí)行遷移腳本程序集的生成。

1.4 遷移工具設(shè)計(jì)

遷移工具主要由SQL 模板集、Perl[9]轉(zhuǎn)換程序、SQL 腳本集等構(gòu)成。

1)SQL 模板實(shí)現(xiàn)在1.3 節(jié)闡述的各類模板。

2)Perl 轉(zhuǎn)換程序是遷移工具的主程序執(zhí)行代碼,主要包括把SQL 模板轉(zhuǎn)換成SQL 腳本集和執(zhí)行SQL 腳本集兩項(xiàng)功能。

圖3 二類模板創(chuàng)建與執(zhí)行腳本生成關(guān)系

3)SQL 腳本集分為創(chuàng)建、拷貝、修改三種類型,創(chuàng)建類SQL 腳本主要完成表、序列、視圖、觸發(fā)器等數(shù)據(jù)庫對象的創(chuàng)建功能,拷貝類SQL 腳本完成對應(yīng)數(shù)據(jù)庫對象的實(shí)體數(shù)據(jù)從源數(shù)據(jù)庫系統(tǒng)服務(wù)器遷移到目標(biāo)數(shù)據(jù)庫系統(tǒng)服務(wù)器,修改類SQL 腳本通過追加約束、索引等數(shù)據(jù)庫操作修改數(shù)據(jù)庫的地震資料處理項(xiàng)目工區(qū)相關(guān)聯(lián)的Schema 所屬數(shù)據(jù)庫對象集。

2 數(shù)據(jù)庫數(shù)據(jù)遷移實(shí)現(xiàn)

該節(jié)以O(shè)PM 為數(shù)據(jù)庫實(shí)例,某海域的一個(gè)時(shí)間偏移地震項(xiàng)目工區(qū)作為數(shù)據(jù)遷移案例。源數(shù)據(jù)庫系統(tǒng)為2010 年建設(shè)的Oracle 數(shù)據(jù)庫,目標(biāo)數(shù)據(jù)庫系統(tǒng)為2022 年建設(shè)的PostgrepSQL,源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫的遷移環(huán)境如表1所示,案例數(shù)據(jù)信息如表2所示。

表1 數(shù)據(jù)遷移環(huán)境

表2 案例數(shù)據(jù)信息

2.1 遷移前相關(guān)準(zhǔn)備工作

2.1.1 遷移數(shù)據(jù)備份

在進(jìn)行數(shù)據(jù)遷移之前,為了解決在數(shù)據(jù)遷移過程中出現(xiàn)數(shù)據(jù)缺失、數(shù)據(jù)錯(cuò)誤導(dǎo)致數(shù)據(jù)無法恢復(fù)的問題,需對源數(shù)據(jù)庫系統(tǒng)Oracle 進(jìn)行備份。由于遷移數(shù)據(jù)以地震資料處理項(xiàng)目工區(qū)為遷移單位,因此需要對遷移的項(xiàng)目工區(qū)進(jìn)行備份。在源數(shù)據(jù)庫服務(wù)器上,利用Oracle Export 工具[10]對該項(xiàng)目工區(qū)對應(yīng)的Schema 的數(shù)據(jù)庫對象集合進(jìn)行邏輯備份。

2.1.2 Oracle_FDW安裝配置與互連

數(shù)據(jù)遷移工作需要在目標(biāo)數(shù)據(jù)庫服務(wù)器上對源數(shù)據(jù)庫服務(wù)器執(zhí)行遠(yuǎn)程數(shù)據(jù)遷移任務(wù),通過PostgreSQL 的 Oralce_FDW(ForeignDataWrapper for Oracle Database)[11]方式創(chuàng)建源數(shù)據(jù)庫系統(tǒng)與目標(biāo)數(shù)據(jù)庫系統(tǒng)互連數(shù)據(jù)遷移通道。目標(biāo)數(shù)據(jù)庫服務(wù)器需要進(jìn)行如下安裝配置:

2.2 創(chuàng)建OPM數(shù)據(jù)庫實(shí)例

2.2.1 創(chuàng)建OPM數(shù)據(jù)庫實(shí)例模板

在目標(biāo)數(shù)據(jù)庫服務(wù)器上,OPM 數(shù)據(jù)庫實(shí)例創(chuàng)建主要包括兩項(xiàng)功能,一是創(chuàng)建OPM 數(shù)據(jù)庫用戶名、實(shí)例名以及相關(guān)授權(quán)操作,二是創(chuàng)建OPM 數(shù)據(jù)庫用戶對應(yīng)的Schema 數(shù)據(jù)庫對象集合。下面為OPM 數(shù)據(jù)庫實(shí)例模板中創(chuàng)建數(shù)據(jù)庫的部分SQL 代碼,其中$dbuser、$dbpassword 等以$開頭的為參數(shù)輸入(下同):

2.2.2 生成創(chuàng)建數(shù)據(jù)庫實(shí)例執(zhí)行SQL腳本

通過轉(zhuǎn)換程序模塊把OPM 數(shù)據(jù)庫實(shí)例模板轉(zhuǎn)換成可執(zhí)行的SQL 腳本,以下為轉(zhuǎn)換程序函數(shù)調(diào)用入口:

PGUtils 是轉(zhuǎn)換程序工具包,ConvertToDBSQL 函數(shù)共有5 個(gè)參數(shù)。第一個(gè)參數(shù)為OPM 數(shù)據(jù)庫實(shí)例模板;第二個(gè)參數(shù)為除模板之外新追加的執(zhí)行程序代碼變化部分;第三個(gè)參數(shù)為轉(zhuǎn)換成可執(zhí)行的SQL 腳本的存儲位置;第四個(gè)參數(shù)為模板中需要被替換的部分參數(shù)列表,一般是$開頭的參數(shù),如$dbuser 等;第五個(gè)參數(shù)為實(shí)際替換的具體參數(shù)值列表,如hzopm001。

2.3 創(chuàng)建時(shí)間偏移地震項(xiàng)目工區(qū)

2.3.1 動(dòng)態(tài)構(gòu)建時(shí)間偏移地震項(xiàng)目工區(qū)模板

針對源數(shù)據(jù)庫服務(wù)器,根據(jù)地震項(xiàng)目工區(qū)模板類型、源數(shù)據(jù)庫的OPM 數(shù)據(jù)庫名稱、源OPM 數(shù)據(jù)庫中被遷移的Schema 名稱,生成該Schema 對應(yīng)的數(shù)據(jù)庫對象集數(shù)據(jù),為轉(zhuǎn)換程序生成最后的數(shù)據(jù)庫對象創(chuàng)建提供源數(shù)據(jù)庫對象信息。在hzopm001 數(shù)據(jù)庫實(shí)例中,ZZ99 項(xiàng)目工區(qū)對應(yīng)的Schema 主要包括表、視圖、序列、角色、觸發(fā)器等數(shù)據(jù)庫對象類型。模板生成信息函數(shù)如下:

2.3.2 地震項(xiàng)目工區(qū)數(shù)據(jù)庫對象創(chuàng)建

在已經(jīng)創(chuàng)建目標(biāo)數(shù)據(jù)庫服務(wù)器的OPM 數(shù)據(jù)庫實(shí)例中,完成批量自動(dòng)創(chuàng)建地震項(xiàng)目工區(qū)對應(yīng)的表空間、用戶、權(quán)限等。對于一些特殊的數(shù)據(jù)庫對象集,如數(shù)據(jù)庫對象索引index、約束constraint、序列sequence 等與源數(shù)據(jù)庫對應(yīng)不一致,需要在目標(biāo)數(shù)據(jù)庫系統(tǒng)中額外重建。

如在模板數(shù)據(jù)庫對象集中,對地震項(xiàng)目工區(qū)輸入表PROJECT_INPUT_DATA、作業(yè)運(yùn)行狀態(tài)視圖JOB_RUN_VIEW 等自動(dòng)創(chuàng)建,而相關(guān)索引、約束、序列需另外重建。

2.4 執(zhí)行數(shù)據(jù)遷移

完成創(chuàng)建數(shù)據(jù)庫實(shí)例OPM 和時(shí)間偏移地震項(xiàng)目工區(qū)ZZ99,對應(yīng)Schema 所屬數(shù)據(jù)庫對象集的元信息在目標(biāo)數(shù)據(jù)庫服務(wù)器中構(gòu)建生成,開始進(jìn)入用戶數(shù)據(jù)的遷移工作。由于源數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)對象集的元數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)變化,在遷移數(shù)據(jù)的過程中,采用動(dòng)態(tài)獲取數(shù)據(jù)庫對象的元數(shù)據(jù)結(jié)構(gòu)信息方法。

以數(shù)據(jù)庫對象table 為例,遷移過程方法如下:

1)輸入Schema 名稱、Tables 名稱,從源數(shù)據(jù)庫系統(tǒng)中動(dòng)態(tài)獲取Table 的元數(shù)據(jù)結(jié)構(gòu)信息:

2)根據(jù)動(dòng)態(tài)獲取的源數(shù)據(jù)庫系統(tǒng)中table 對應(yīng)的數(shù)據(jù)結(jié)構(gòu)信息,實(shí)現(xiàn)Table 中的源數(shù)據(jù)庫系統(tǒng)用戶數(shù)據(jù)遷移到對應(yīng)的目標(biāo)數(shù)據(jù)庫系統(tǒng)中:

3)在遷移的過程中,參照文獻(xiàn)[12-13]的方法解決數(shù)據(jù)轉(zhuǎn)換過程錯(cuò)誤、數(shù)據(jù)類型不一致、目標(biāo)數(shù)據(jù)庫字段信息不一致等常見問題。

2.5 數(shù)據(jù)遷移結(jié)果分析驗(yàn)證

數(shù)據(jù)遷移時(shí)在多臺機(jī)器上執(zhí)行多個(gè)任務(wù),并通過網(wǎng)絡(luò)傳送大量數(shù)據(jù),不可避免會出現(xiàn)錯(cuò)誤[14]。需要對數(shù)據(jù)遷移結(jié)果的一致性與完整性進(jìn)行檢查,主要從數(shù)據(jù)庫對象的數(shù)量、數(shù)據(jù)庫對象存儲的數(shù)據(jù)量以及地震資料處理應(yīng)用軟件獲取數(shù)據(jù)庫數(shù)據(jù)效果三個(gè)方面進(jìn)行。

2.5.1 數(shù)據(jù)庫對象數(shù)量

在源數(shù)據(jù)庫系統(tǒng)中,向系統(tǒng)表user_objects 中獲取所有的數(shù)據(jù)庫對象類型及其對應(yīng)的數(shù)據(jù)庫對象數(shù)量,然后與目標(biāo)數(shù)據(jù)庫進(jìn)行對比,確保數(shù)據(jù)遷移到目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)庫對象類型、數(shù)據(jù)庫對象數(shù)量不丟失遺漏。圖4為使用Oracle sqlplus和PostgreSQL psql 分別統(tǒng)計(jì)的數(shù)據(jù)庫對象數(shù)量排名前五的源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫的對象數(shù)量對比。

圖4 數(shù)據(jù)遷移前后數(shù)據(jù)庫對象數(shù)量對比

2.5.2 數(shù)據(jù)庫數(shù)據(jù)量

地震資料處理涉及海量的地震資料采集文件數(shù)據(jù)、中間生成文件數(shù)據(jù)以及成果文件數(shù)據(jù),這些文件數(shù)據(jù)信息主要存放在帶有dataset 標(biāo)識的相關(guān)表中,是核心數(shù)據(jù)信息之一。圖5 列舉了這些核心數(shù)據(jù)量排名前五的數(shù)據(jù)遷移前后的對比。

圖5 數(shù)據(jù)遷移前后數(shù)據(jù)庫數(shù)據(jù)數(shù)量對比

2.5.3 應(yīng)用軟件實(shí)效

圖6 是遷移前基于Oracle 的Omega2011 應(yīng)用中,舊地震項(xiàng)目工區(qū)ZZ98的25個(gè)有效地震資料處理作業(yè)流程。圖7是遷移后基于PostgreSQL的Omega2021 應(yīng)用中[15-19],新地震項(xiàng)目工區(qū)ZZ99 的25 個(gè)有效地震資料處理作業(yè)流程。數(shù)據(jù)庫遷移前后確保相同的作業(yè)流程名和個(gè)數(shù),而且Oracle數(shù)據(jù)庫中的非活動(dòng)的無效作業(yè)流程(標(biāo)識打×)沒有遷移到PostgreSQL數(shù)據(jù)庫系統(tǒng)中。

圖6 遷移前基于Oracle的Omega2011應(yīng)用

圖7 遷移后基于PostgreSQL的Omega2021應(yīng)用

3 結(jié)束語

基于地震資料處理平臺的數(shù)據(jù)庫遷移是油氣勘探行業(yè)科研裝備更新?lián)Q代的重要一環(huán),在地震資料并行處理應(yīng)用軟件Omeg 的應(yīng)用場景下,文中給出的從Oracle 數(shù)據(jù)庫系統(tǒng)向PostgreSQL 數(shù)據(jù)庫系統(tǒng)遷移的方法和工具取得了很好的效果。但是在整個(gè)遷移過程中,還存在著手動(dòng)人工干預(yù)操作,如何從源數(shù)據(jù)庫系統(tǒng)中自動(dòng)智能化獲取全面的元數(shù)據(jù)信息,并能自我糾錯(cuò)地生成對應(yīng)的目標(biāo)數(shù)據(jù)庫系統(tǒng)元信息,遷移解決方案適用到更多的地震資料并行處理應(yīng)用軟件的應(yīng)用場景中,這些都是今后下一步研究的方向和內(nèi)容。

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
主站蜘蛛池模板: 色偷偷一区二区三区| 国产午夜一级淫片| 99久久国产综合精品2020| 香港一级毛片免费看| 国产精品白浆无码流出在线看| 九色综合伊人久久富二代| 99re在线免费视频| www精品久久| 成人在线综合| 日韩欧美国产中文| 国产一区在线视频观看| 欧美一级视频免费| 日本免费福利视频| 一区二区影院| 人妻丰满熟妇AV无码区| 国产成人AV综合久久| 亚洲欧美另类色图| 午夜a视频| 日本亚洲国产一区二区三区| 精品日韩亚洲欧美高清a| 丝袜国产一区| 99偷拍视频精品一区二区| 免费一极毛片| 国产亚洲一区二区三区在线| 国产精品成人一区二区| 日本三级欧美三级| 国产第一页免费浮力影院| 国产在线一区二区视频| 99久久精品无码专区免费| 免费在线国产一区二区三区精品| 日韩人妻无码制服丝袜视频| 尤物成AV人片在线观看| 情侣午夜国产在线一区无码| 国产一二视频| 二级特黄绝大片免费视频大片| 四虎精品黑人视频| 亚洲大尺码专区影院| 久久免费视频播放| 91小视频在线观看| 国产区在线看| 国产69精品久久久久孕妇大杂乱| 日本影院一区| 三上悠亚在线精品二区| 18禁黄无遮挡网站| 狼友视频国产精品首页| a毛片在线播放| 午夜电影在线观看国产1区| 国产男女免费完整版视频| 青青青视频91在线 | 色久综合在线| 欧美中文字幕一区二区三区| 免费人成网站在线高清| 国产视频一二三区| 色网站在线视频| 日韩免费成人| 香港一级毛片免费看| 91久久国产热精品免费| 国产一级妓女av网站| 国产xx在线观看| 日本黄色不卡视频| 日本不卡免费高清视频| 欧美激情视频二区三区| 国产真实乱人视频| 被公侵犯人妻少妇一区二区三区 | 在线看免费无码av天堂的| 青青草国产免费国产| 久久成人免费| 青青青国产视频| 最新亚洲人成网站在线观看| 亚洲AⅤ无码国产精品| 国产成人8x视频一区二区| 精品久久香蕉国产线看观看gif| 国产一区成人| 污网站在线观看视频| 亚洲aaa视频| 婷婷伊人五月| 天天爽免费视频| 国产大全韩国亚洲一区二区三区| 国产内射一区亚洲| 91小视频在线播放| 亚洲V日韩V无码一区二区| 日韩 欧美 小说 综合网 另类|