服务器环境

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. 复现YOLO5所遇到的问题

    一. 解决方案: 由于没有影响模型继续运行,理解为简单的warning.根据查询问题,推断是由于 pytorch和torchvision的版本原因导致的. 二. 解决方案: 由于没有影响模型继续运行, ...

  2. 编译安装openssl-1.1.1和openssh-9.4

    1.安装 openssl-1.1.1 先处理下opensll的版本,以免编译安装Openssh环境异常: yum remove openssl cd /opt wget https://www.ope ...

  3. aspnetcore使用websocket实时更新商品信息

    先演示一下效果,再展示代码逻辑. 中间几次调用过程省略... 暂时只用到了下面四个项目 1.产品展示页面中第一次通过接口去获取数据库的列表数据 /// <summary> /// 获取指定 ...

  4. linux文件摘选

    显示/var目录下所有以1开头,以一个小写字母结尾,且中间至少出现一位数字(可以由其他字符)的文件或目录. 命令: ls -d /var/1*[0-9]*[a-z] [root@foundation0 ...

  5. SQL Server系列:系统函数之日期和时间函数

    1.current_timestamp :获取数据库系统时间戳 --获取数据库系统时间戳 select current_timestamp go 2.getdate() :获取数据库系统时间戳 --获 ...

  6. 华为云分布式云原生UCS,助力MetaERP构建企业级高可用分布式业务

    本文分享自华为云社区<华为云分布式云原生UCS,助力MetaERP构建企业级高可用分布式业务>,作者:云容器大未来. 引言 华为云最近成为<Forrester Wave: Multi ...

  7. 使用Mask R-CNN模型实现人体关键节点标注

    摘要:在本案例中,我们将展示如何对基础的Mask R-CNN进行扩展,完成人体关键节点标注的任务. 本文分享自华为云社区<使用Mask R-CNN模型实现人体关键节点标注>,作者: 运气男 ...

  8. 想了解Python中的super 函数么

    摘要:经常有朋友问,学 Python 面向对象时,翻阅别人代码,会发现一个 super() 函数,那这个函数的作用到底是什么? 本文分享自华为云社区<Python 中的 super 函数怎么学, ...

  9. html5鼠标拖动排序及resize实现方案分析及实践

    对列表进行拖动排序,尺寸改变.之前一般会使用jQuery-UI.其通过mousedown.mousemove.mouseup这三个事件来实现页面元素被鼠标拖拽的效果.vue-drag-resize v ...

  10. 在linux后台运行脚本的方法和命令

    后台运行脚本 执行脚本test.sh:./test.sh 中断脚本test.sh:ctrl+c 在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z 执行ctrl+z后,test.sh ...