日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle迁移至gaussdb,GaussDB for DWS 数据融合系列第九期:Oracle数据迁移到GaussDB(DWS)...

發布時間:2025/3/15 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle迁移至gaussdb,GaussDB for DWS 数据融合系列第九期:Oracle数据迁移到GaussDB(DWS)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當客戶選擇切換到GaussDB(DWS)數據庫后可能會面臨數據庫的遷移任務,數據庫遷移包括用戶數據遷移和應用程序sql腳本遷移,其中,應用程序sql腳本遷移是一個復雜、高風險且耗時的過程。

DSC(Database Schema Convertor)是一款運行在Linux或Windows操作系統上的命令行工具,致力于向客戶提供簡單、快速、可靠的應用程序sql腳本遷移服務,通過內置的語法遷移邏輯解析源數據庫應用程序sql腳本,并遷移為適用于GaussDB T、GaussDB A和DWS數據庫的應用程序sql腳本。

DSC不需要連接數據庫,可在離線模式下實現零停機遷移,遷移過程中還會顯示遷移過程狀態,并用日志記錄操作過程中發生的錯誤,便于快速定位問題。

遷移對象

DSC支持遷移Teradata、Oracle、Netezza、MySQL、DB2數據庫的對象有:

Oracle、Teradata、Netezza、MySQL、DB2支持的通用對象:SQL模式,SQL查詢

僅Oracle和Netezza支持的對象:PL/SQL

僅Teradata支持的對象:包含BTEQ和SQL_LANG腳本的Perl文件

遷移流程

DSC遷移sql腳本流程如下:

從Teradata或Oracle數據庫導出待遷移的sql腳本到已安裝了DSC的Linux或Windows服務器。

執行DSC命令進行語法遷移,命令中指定輸入文件路徑、輸出文件路徑以及日志路徑。

DSC自動將遷移后的sql腳本和日志信息歸檔在指定路徑中

執行Oracle SQL遷移

執行以下命令設置源數據庫、輸入和輸出文件夾路徑、日志路徑、應用程序語言和遷移類型:

Linux操作系統:

./runDSC.sh

--source-db Oracle

[--input-folder ]

[--output-folder ]

[--log-folder ]

[--application-langOracle]

[--conversion-type ]

Windows操作系統:

runDSC.bat

--source-db Oracle

[--input-folder ]

[--output-folder ]

[--log-folder ]

[--application-lang Oracle]

[--conversion-type ]

遷移不含PL/SQL語句的普通DDL語句(表、視圖、索引、序列等)時,應使用Bulk模式(即,將conversion-type參數設為Bulk)。

以示例文件夾路徑為例,將conversion-type參數設為,命令如下

Linux操作系統:

./runDSC.sh --source-db Oracle --input-folder /opt/DSC/DSC/input/oracle/ --output-folder /opt/DSC/DSC/output/ --log-folder /opt/DSC/DSC/log/ --application-lang SQL --conversion-type bulk --targetdb gaussdbA

Windows操作系統:

runDSC.bat --source-db Oracle --input-folder D:\test\conversion\input --output-folder D:\test\conversion\output --log-folder D:\test\conversion\log --application-lang SQL --conversion-type blogic --targetdb gaussdbA

在工具執行時,控制臺上會顯示遷移匯總信息,包括遷移進度和完成狀態。執行信息和錯誤會錄入。

********************** Schema Conversion Started *************************

DSC process start time : Mon Jan 20 17:24:49 IST 2020

Statement count progress 100% completed [FILE(1/1)]

Schema Conversion Progress 100% completed

**************************************************************************

Total number of files in input folder : 1

**************************************************************************

Log file path :....../DSC/DSC/log/dsc.log

DSC process end time : Mon Jan 20 17:24:49 IST 2020

DSC total process time : 0 seconds

********************* Schema Conversion Completed ************************

遷移含PL/SQL語句的函數、過程、包等對象時,應使用BLogic模式(即,將conversion-type參數設為BLogic)。

以示例文件夾路徑為例,將conversion-type參數設為,命令如下:

java -jar migrationtool.jar --source-db Oracle --input-folder D:\test\migration\input --output-folder D:\test\migration\output --log-folder D:\test\migration\log --application-lang SQL --conversion-type blogic

在工具執行時,控制臺上會顯示遷移匯總信息,包括遷移進度和完成狀態。執行信息和錯誤會錄入。

********************** Schema Conversion Started *************************

DSC process start time : Mon Jan 20 17:24:49 IST 2020

Statement count progress 100% completed [FILE(1/1)]

Schema Conversion Progress 100% completed

**************************************************************************

Total number of files in input folder : 1

Total number of valid files in input folder : 1

**************************************************************************

Log file path :....../DSC/DSC/log/dsc.log

Error Log file :

DSC process end time : Mon Jan 20 17:24:49 IST 2020

DSC total process time : 0 seconds

********************* Schema Conversion Completed ************************

Oracle PACKAGE遷移注意事項

應將包規范(即包頭)與包體分置于不同文件、相同輸入路徑中進行遷移。

應先使用Bulk模式遷移普通DDL語句(包含PACKAGE腳本中引用到的全部表結構信息),以在config/create-types-UDT.properties文件中形成字典信息。之后再使用Blogic模式遷移包規范(即包頭)與包體。具體解釋如下:

在部分Oracle PACKAGE定義包規范時,使用了"tbName.colName%TYPE"語法以基于其他表對象聲明自定義的記錄類型。

例如

CREATE OR REPLACE PACKAGE p_emp

AS

--定義RECORD類型

TYPE re_emp IS RECORD(

rno emp.empno%TYPE,

rname emp.empname%TYPE

);

END;

GaussDB暫不支持通過"tbName.colName%TYPE"語法在CREATE TYPE命令中指定列數據類型,MT工具在遷移時需要構建含有諸如emp表信息的數據庫上下文環境。由此需要先使用MT工具遷移所有的建表腳本(即使用Bulk模式遷移普通DDL語句),MT內部會自動生成相應的數據字典。當含有各種表信息的上下文環境構建完成后,可以使用Blogic模式遷移Oracle PACKAGE,此時re_emp記錄類型會根據emp表的列類型完成遷移。

期望輸出

CREATE TYPE p_emp.re_emp AS (

rno NUMBER(4),

rname VARCHAR2(10)

);

總結

以上是生活随笔為你收集整理的oracle迁移至gaussdb,GaussDB for DWS 数据融合系列第九期:Oracle数据迁移到GaussDB(DWS)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。