• 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
    
  • 相关阅读:
    页面性能:如何系统地优化页面?
    为什么CSS动画比JavaScript高效?
    Code Review
    浏览器中的页面之CSS是如何影响到渲染流程的
    async / await
    手撸Promise
    Promise
    宏任务和微任务
    有点恶心,随手写点儿
    关于判断用户输入的是不是int类型,这次没有正则表达式
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15711018.html
Copyright © 2020-2023  润新知