服务器环境

1)12核48G,操作系统为centos 7.9系统,单节点三副本1-1-1集群。

2)源MySQL数据库:与OceanBase同一台服务器,版本为MySQL 5.7。

1、使用 mysqldump 迁移数据

1)mysql源数据库信息

2)导出表结构

mysqldump -h 127.0.0.1 -u root -p -d lianghe_db > lianghe_db.sql(如在/etc/my.conf中已配置mysqldump登录信息则使用mysqldump -d lianghe_db > lianghe_db.sql即可。)

3)导出一张表数据

mysqldump –h 127.0.0.1 –u root –p –t lianghe_db –tables area > area.sql(如在/etc/my.conf中已配置mysqldump登录信息则使用mysqldump -t lianghe_db --tables area > area.sql即可。)

4)使用obclient连接oceanbase数据库

5)导入表结构

6)导入表数据

导入后的表及数据

2、使用 Datax 配置数据迁移

1)迁移前mysql和oceanbase数据

mysql

oceanbase

2)安装datax

下载 DataX 工具

https://github.com/alibaba/DataX

或http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz

直接解压并删除隐藏文件:

tar -xf datax.tar.gz

find ./datax/plugin -name ".*" | xargs rm -f

3)检查java环境

4)生成配置文件

python ./datax/bin/datax.py -r mysqlreader -w oceanbasev10writer > ./datax/job/MySQL2OeanBase.json

5)修改配置文件

vi ./datax/job/MySQL2OeanBase.json

{

    "job": {

        "content": [

            {

                "reader": {

                    "name": "mysqlreader",

                    "parameter": {

                        "column": ["*"],

                        "connection": [

                            {

                                "jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/lianghe_db?useUnicode=true&characterEncoding=utf8"],

                                "table": ["subjects"]

                            }

                        ],

                        "password": "P@ssw0rd123",

                        "username": "root",

                        "where": ""

                    }

                },

                "writer": {

                    "name": "oceanbasev10writer",

                    "parameter": {

                        "column": ["*"],

                        "connection": [

                            {

                                "jdbcUrl": "||_dsc_ob10_dsc_||obcluster:tenant_henry||_dsc_ob10_dsc_||jdbc:mysql://127.0.0.1:2883/mydb?useUnicode=true&characterEncoding=utf8",

                                "table": ["subjects"]

                            }

                        ],

                        "obWriteMode": "",

                        "password": "mydb",

                        "username": "henry"

                    }

                }

            }

        ],

        "setting": {

            "speed": {

                "channel": "8"

            }

        }

    }

}

在oceanbasewriter的配置里注意jdbcUrl的第二参数“obcluster:tenant_henry”是“集群名:租户名”。另外,各个配置项注意用引号包起来。

6)执行迁移

python bin/datax.py job/MySQL2OeanBase.json

7)查看结果

迁移成功。

3、问题

1)因在/etc/my.conf中已配置有mysqldump登录信息(root和password),使用mysqldump导出数据时,若有登录参数(如:mysqldump -uroot -p ...)会报错,此时mysqldump命令不用附加登录参数,直接加数据库名作参数即可。

2)第一节执行source xxx.sql时,

You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘--’ at line 1

数据文件中有--注释信息,导入到OceanBase会报错,可以忽略,并不影响数据导入。我对源文件作了编辑,删除了这些内容。

其它类似如‘ENABLE KEYS */’、‘DISABLE KEYS */’等报错,可以忽略,并不影响数据导入。我对源文件作了编辑,删除了这些内容。

变量 SQL_NOTES,DEFINER 语句等 OceanBase MYSQL 会不支持,但是不影响,需要替换掉其中部分。

文章知识点与官方知识档案匹配,可进一步学习相关知识

[转帖]OceanBase实验4:迁移MySQL数据到OceanBase集群的更多相关文章

  1. 迁移mysql数据到oracle上

    转自:http://www.cnblogs.com/Warmsunshine/p/4651283.html 我是生成的文件里面的master.sql里面的sql,一个一个拷出来的. 迁移mysql数据 ...

  2. Linux Centos 迁移Mysql 数据位置

    Linux Centos 迁移Mysql 数据位置 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysq ...

  3. MySQL MHA 高可用集群部署及故障切换

    MySQL MHA 高可用集群部署及故障切换 1.概念 2.搭建MySQL + MHA 1.概念: a)MHA概念 : MHA(MasterHigh Availability)是一套优秀的MySQL高 ...

  4. 朝花夕拾之--大数据平台CDH集群离线搭建

    body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...

  5. 1 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之DRBD的搭建

    preface 近来公司利润上升,购买了10几台服务器,趁此机会,把mysql的主从同步的架构进一步扩展,为了适应日益增长的流量.针对mysql架构的扩展,先是咨询前辈,后和同事探讨,准备采用Mysq ...

  6. 【原】基于 HAproxy 1.6.3 Keeplived 在 Centos 7 中实现mysql mariadb galera cluster 集群分发读写 —— 上篇

    前言 有一段时间没有写blogs,乘着周末开始整理下haproxy + keeplived 实现 mysql mariadb galera cluster 集群访问环境的搭建工作. 本文集中讲hapr ...

  7. (转)基于keepalived搭建MySQL的高可用集群

    基于keepalived搭建MySQL的高可用集群  原文:http://www.cnblogs.com/ivictor/p/5522383.html MySQL的高可用方案一般有如下几种: keep ...

  8. 从零开始:Mysql基于Amoeba的集群搭建

    从零开始:Mysql基于Amoeba的集群搭建 准备环境 1.mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 2.amoeba-mysql-binary-2.0. ...

  9. 大数据测试之hadoop集群配置和测试

    大数据测试之hadoop集群配置和测试   一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...

  10. sqoop将oracle数据导入hdfs集群

    使用sqoop将oracle数据导入hdfs集群 集群环境: hadoop1.0.0 hbase0.92.1 zookeeper3.4.3 hive0.8.1 sqoop-1.4.1-incubati ...

随机推荐

  1. vivo 数据库备份恢复系统演化

    作者:vivo 互联网数据库团队 - Han Chaobing 介绍 vivo 数据库备份恢复功能的演化,以及对备份文件的功能扩展. 一.概述 vivo互联网领域拥有的数据库组件分别为 MySQL.M ...

  2. Python中的协程、线程和进程

    一.协程与多线程和多进程一起使用有什么不同   协程.多线程和多进程都是实现程序并发执行的方法,不过它们在工作方式和适合的应用场景上存在一些区别. 1.协程(Coroutine)   协程是在单一线程 ...

  3. 用Linux搭建网站(LAMP)

    安装环境 演示服务器版本为CentOS 8 安装apache 下载apache yum install httpd httpd-devel 启动apache服务器 systemctl start ht ...

  4. Redis的五大数据类型(简单使用)

    1:Redis的简单介绍? Redis(Remote Dictionary Server ):即远程字典服务 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型Key-Val ...

  5. 如何延长window11更新信息?

    前言 日常使用电脑的时候,我们总是会遇到一个很常见的问题:如何关闭windows自动更新. 解决方法一: 暂停更新 解决方法二: 打开注册表: 运行 => regedit 进入: HKEY_LO ...

  6. 2021-01-14:timsort是什么,如何用代码实现?

    福哥答案2021-01-14: 答案来自此链接: 介绍: timsort是一种混合.稳定高效的排序算法,源自合并排序和插入排序,旨在很好地处理多种真实数据.它由Tim Peters于2002年实施使用 ...

  7. AutomaticKeepAliveClientMixin 缓存PageView页面

    一旦页面滑出屏幕它就会被销毁 ,实际项目开发中对页面进行缓存是很常见的一个需求,下面我们就看看如何使用AutomaticKeepAliveClientMixin 缓存页面. 注意:使用时一定要注意是否 ...

  8. 看图学NumPy:掌握n维数组基础知识点,看这一篇就够了

    摘要:NumPy是Python的最重要的扩展程序库之一,也是入门机器学习编程的必备工具.国外有位程序员讲NumPy的基本运算以图解的方式写下来,让学习过程变得轻松有趣. NumPy是Python的最重 ...

  9. 技术+案例详解无监督学习Autoencoder

    摘要:本篇文章将分享无监督学习Autoencoder的原理知识,然后用MNIST手写数字案例进行对比实验及聚类分析. 本文分享自华为云社区<[Python人工智能] 十五.无监督学习Autoen ...

  10. 从“概念”到“应用”,字节跳动基于 DataLeap 的 DataOps 实践

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台 VeDI Meetup「超话数据」在深圳举办,来自火山引擎的产品专家分享了字节跳动基于 D ...