OB-從MySQL遷移資料到Oceanbase
阿新 • • 發佈:2021-12-20
將MySQL表物件資料遷移到Oceanbase
注意:
相容性支援情況
物件型別相容性
- 基本支援MySQL表和業務SQL的相容
- 對於MySQL 的函式、觸發器、儲存過程 的相容性不友好
資料型別相容性
- OceanBase 資料庫暫不支援空間資料型別和 JSON 資料型別
- 其它資料型別基本都支援
- 數值型別
- 日期實踐型別
- 字元型別
- 大物件型別
字符集相容性
OceanBase MySQL 租戶支援字符集 binary
和 utf8mb4
。 預設是utf8mb4
從 MySQL 中匯出資料時,確保資料庫裡的字元正確輸出。推薦使用: utf-8
- 通過vim 中檢視檔案編碼::set fileencoding
資料遷移方案
這裡主要對資料庫表物件及其資料的遷移。
-
將MySQL資料通過邏輯備份工具匯出到可讀格式檔案(SQL,CSV)後在OceanBase中執行即可
- mysqldump 實現
- mydumper
-
通過binlog日誌同步
邏輯匯出MySQL表物件資料
mysqldump 工具匯出物件資料
mysqldump 是 MySQL 提供的用於匯出 MySQL 資料庫物件和資料的工具。功能豐富且簡單易用。
用法
mysqldump --help
具體實現
匯出指定資料庫的表結構(不含資料)
mysqldump -h 127.1 -uroot -P3306 -d TPCH --compact > tpch_ddl.sql
注意:
-
需要去掉MySQL中特定的語法,如:變數
SQL_NOTES
,DEFINER
語句等vim :%s/MAX_ROWS=/; -- MAX_ROWS=/g
-
確認兩端的表名稱大小寫是否敏感
-
匯入OceanBase MySQL租戶中,需要禁用外來鍵檢查約束
set global foreign_key_checks=off; show global variables like 'foreign_key_checks';
匯出指定資料庫的表資料(不含物件定義結構)
mysqldump -h 127.1 -uroot -P3306 -t TPCH > tpch_data.sql