服务器环境

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. Python——第四章:迭代器(Iterators)

    迭代器iterator: 提到迭代器,最典型的就是for循环 for 变量 in 可迭代: pass 可迭代对象iterable: 是指可以使用 for 循环进行遍历的对象.除了字符串 (str).列 ...

  2. Spring Cloud(一)Eureka

    单体应用存在的问题 在传统应用程序中,一般都会将整个的应用程序作为一个单独的可执行文件部署到相应的服务器上执行.一般的应用程序结构可能如下图所示: 这种方式的优点很明显,比如:架构简单,服务之间调用逻 ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (60)-- 算法导论6.4 4题

    文心一言 VS 讯飞星火 VS chatgpt (60)-- 算法导论6.4 4题 四.证明:在最坏情况下,HEAPSORT 的时间复杂度是Ω (nlgn). 文心一言: 要证明在最坏情况下,HEAP ...

  4. 微信小程序中业务域名的配置

    需要配置业务域名,需要先将域名http转https 1,首先在该微信小程序的公众号平台中下载 业务域名的证书 2,将下载的证书放进nginx的根目录 3,在nginx中 (root为.txt的地址)

  5. C++标准库中copy算法的使用

    目录 std::copy是C++标准库中的算法接口,主要用于两个容器间的复制,据说其效率要优于自己用for循环逐个复制.之前一直非常混淆其中的用法,这里总结了几个例子如下: #include < ...

  6. LeetCode DP篇-背包问题(416、518)

    416. 分割等和子集 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: ...

  7. MySQL篇:第二章_初识MySQL

    初始MySQL MySQL的背景 1.前身属于瑞典的一家公司,MySQL AB 2.08年被sun公司收购 3.09年sun被oracle收购 MySQL的优点 1.开源.免费.成本低 2.性能高.移 ...

  8. 【DevCloud·敏捷智库】如何利用故事点做估算

    背景 在某开发团队辅导的第二天,一个团队负责人咨询道:"领导经常管我要开发计划,我如何能快速的评估出预计开发完成时间呢,我们目前用工时估算,我听说过故事点估算,不知道适合吗?" 问 ...

  9. 全网呕血整理:关于YOLO v3原理分析

    摘要:YOLO系列的目标检测算法可以说是目标检测史上的宏篇巨作,接下来我们来详细介绍一下YOLO v3算法内容. 算法基本思想 首先通过特征提取网络对输入特征提取特征,得到特定大小的特征图输出.输入图 ...

  10. JerryScript:物联网开发者的得力工具

    摘要:本文档以Linux开发环境及realview-pbx-a9开发板为例,简单介绍LiteOS上jerryscript命令的使用. 本文分享自华为云社区<Jerryscript-让开发者事半功 ...