兼容性支持情況
對象類型兼容性
- 基本支持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
