在國產化數據庫替代趨勢下,將 MySQL 數據遷移至 GBase 8c 成為許多企業的選擇。GBase DMT 作為南大通用推出的專業遷移工具,支持異構數據庫間的結構遷移、數據遷移及校驗,能大幅降低遷移難度。本文將從前期準備、遷移配置到任務執行,完整拆解 MySQL 到 GBase 8c 的遷移流程,新手也能輕鬆上手。
一、遷移前期準備
1. 環境與工具要求
- 已部署 GBase DMT 工具(支持單機或高可用部署,推薦版本 3.0 及以上)。
- MySQL 數據庫(支持 5.x/8.x 版本),確保服務正常運行且可遠程訪問。
- GBase 8c 數據庫,完成初始化配置。
- 關閉源端與目標端服務器防火牆,開放數據庫及相關工具的訪問端口。
- 安裝常用瀏覽器(Chrome、Firefox 等),用於訪問 DMT 可視化界面。
2. 數據庫前置配置
(1)MySQL 源端配置
登錄 MySQL 數據庫,執行遠程連接授權命令:
MySQL 5 版本:
USE MYSQL;
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;
MySQL 8 版本:
USE MYSQL;
CREATE USER '用户名'@'%' IDENTIFIED BY '密碼';
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' WITH GRANT OPTION;
刷新權限並確認,以確保授權用户能遠程登錄。
FLUSH PRIVILEGES;
(2)GBase 8c 目標端配置
切換至 gbase 用户:
su - gbase
開啓遠程連接(-Z參數僅分佈式場景需要指定):
gs_guc reload -Z coordinator -N all -I all -h "host all all 0.0.0.0/0 sha256";
gs_guc reload -Z coordinator -N all -I all -c “listen_addresses = '*'”
gs_guc reload -Z coordinator -N all -I all -c “password_encryption_type = 1”
重啓數據庫生效:
#集中式版本執行:
gs_om -t restart
#分佈式版本執行:
gha_ctl restart all -l dcs_list -c [cluster];
創建一個用於遷移的數據庫用户,不建議直接使用初始用户:
CREATE USER 用户名 SYSADMIN PASSWORD '密碼';
二、配置 DMT 數據庫連接
訪問 GBase DMT ,進入主界面。在“數據庫配置”功能下,配置數據庫連接信息。
新增 MySQL 連接:
點擊 “數據庫配置”→“新增信息”,選擇 “數據項連接”。
填寫參數:連接名稱(自定義,如 mysql_source)、數據庫類型選 MySQL、版本選對應型號(MySQL_5/MySQL_8)、服務器 IP、端口(默認 3306)、數據庫名稱、授權用户名及密碼。
點擊 “測試連接”,提示成功後保存。
新增 GBase 8c 連接:
同樣在 “數據庫配置” 中新增,數據庫類型選 GBase8c、版本選對應型號。
填寫參數:服務器 IP、端口、數據庫名稱、遷移專用用户名及密碼。測試連接通過後保存。
三、創建 MySQL 到 GBase 8c 遷移任務
1. 新建遷移任務
點擊主界面 “數據遷移”→“新建任務”,輸入任務名稱(如 mysql_to_8c_migration)。
選擇數據源:源數據庫選已配置的 MySQL 連接,目標數據庫選 GBase 8c 連接。
若需增量遷移,可勾選源端快照(需提前在 “數據庫配置” 中創建),離線業務直接選擇 “不使用快照遷移”,點擊 “下一步”。
2. 選擇遷移對象
模式選擇:勾選需要遷移的 MySQL 模式(如 test),可通過搜索框快速查找,支持批量勾選。
對象篩選:默認選中模式下所有對象(表、視圖、序列等),可根據需求取消不需要的對象類型,點擊 “下一步”。
3. 選擇遷移表
若上一步勾選了表類型,需指定遷移表範圍:默認 “全部” 遷移該模式下所有表,也可選擇 “包含已選表” 或 “排除已選表” 進行精準篩選。
篩選方式:可直接勾選列表中的表,或通過文件導入表名(下載模板填寫後上傳),確認後點擊 “下一步”。
4. 遷移參數配置
表處理方式:勾選 “建表 / 重建表”(遷移表結構)和 “導入數據”(遷移數據),若目標端已存在表結構,可僅勾選 “導入數據”。
關聯結構設置:勾選需要遷移的主鍵、索引、外鍵等約束。
數據類型映射:DMT 會自動匹配 MySQL 與 GBase 8c 的數據類型,可根據實際需求修改(參考:MySQL int 映射 GBase 8c integer,varchar 映射 varchar 等)。
高級設置:按需配置遷移併發數、行數限制等(默認 - 1 為無限制),點擊 “下一步”。
勾選增量數據遷移選項
5. 轉換配置與預檢查
表空間配置:默認不遷移表空間,如需遷移可填寫目標路徑,否則留空。
保留字衝突:DMT 會自動掃描衝突字段,根據提示修改源端或目標端字段名即可。
預檢查:點擊 “預檢查”,系統會校驗連接有效性、表結構兼容性等,若提示失敗,根據詳情修改配置(如字段長度超限、權限不足),預檢查通過後點擊 “保存並開始”。
四、遷移任務管理與校驗
查看遷移進度:在 “數據遷移” 列表中,可查看任務狀態(同步中 / 已完成),點擊 “詳情” 可查看結構遷移、數據遷移的成功數與失敗數。
導出遷移報告:任務完成後,點擊 “詳情”→“導出報告”,獲取 HTML 格式報告,包含遷移對象明細、耗時、錯誤日誌等。
數據比對校驗:
點擊主界面 “數據比對”→“新建比對”,輸入任務名稱,選擇比對類型(輪廓比對僅校驗數據量,精確比對逐行校驗)。
選擇源數據庫(MySQL)和目標數據庫(GBase 8c),勾選需要比對的模式和表,點擊 “開始”。
比對完成後,查看結果:若存在差異,可通過詳情定位不一致數據,排查是否為遷移遺漏或格式轉換問題。
五、常見問題與注意事項
在使用過程中,可能遇到以下問題:
- 遷移失敗提示 “權限不足”:檢查 MySQL 授權用户是否有 SELECT、RELOAD 權限,GBase 8c 用户是否為 SYSADMIN 角色。
- 表結構遷移失敗:核對 MySQL 與 GBase 8c 的數據類型兼容性,如 MySQL 的 json 類型可映射 GBase 8c 的 jsonb 類型。
- 數據比對不一致:可能是 MySQL 定長字符串(char)補空格導致,遷移時可在參數配置中勾選 “轉為小寫” 或手動調整字段類型。
- 遷移速度慢:在高級設置中適當提高遷移併發數,避免單線程遷移大量數據。
- 無主鍵的表無法配置增量遷移,可以先進行數據遷移,然後在配置實時同步的方法實現。