OB-從MySQL遷移數據到Oceanbase


兼容性支持情況

對象類型兼容性

  1. 基本支持MySQL表和業務SQL的兼容
  2. 對於MySQL 的函數、觸發器、存儲過程 的兼容性不友好

數據類型兼容性

  1. OceanBase 數據庫暫不支持空間數據類型和 JSON 數據類型
  2. 其它數據類型基本都支持
    • 數值類型
    • 日期實踐類型
    • 字符類型
    • 大對象類型

字符集兼容性

OceanBase MySQL 租戶支持字符集 binaryutf8mb4 。 默認是utf8mb4

從 MySQL 中導出數據時,確保數據庫里的字符正確輸出。推薦使用: utf-8

  • 通過vim 中查看文件編碼::set fileencoding

數據遷移方案

這里主要對數據庫表對象及其數據的遷移。

  1. 將MySQL數據通過邏輯備份工具導出到可讀格式文件(SQL,CSV)后在OceanBase中執行即可

    • mysqldump 實現
    • mydumper
  2. 通過binlog日志同步

邏輯導出MySQL表對象數據

mysqldump 工具導出對象數據

mysqldump 是 MySQL 提供的用於導出 MySQL 數據庫對象和數據的工具。功能豐富且簡單易用。

用法

mysqldump --help

具體實現

導出指定數據庫的表結構(不含數據)
mysqldump -h 127.1 -uroot -P3306 -d TPCH --compact > tpch_ddl.sql
注意:
  1. 需要去掉MySQL中特定的語法,如:變量 SQL_NOTESDEFINER 語句等

    vim 
    :%s/MAX_ROWS=/; -- MAX_ROWS=/g 
    
  2. 確認兩端的表名稱大小寫是否敏感

  3. 導入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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM