0
点赞
收藏
分享

微信扫一扫

实践练习四:迁移 MySQL 数据到 OceanBase 集群

一、目的

从 MySQL 向 OceanBase 迁移数据的基本方法:mysqldump、datax 。

二、环境

硬件:CPU:16C 内存:20G 硬盘1:/dev/mapper/vgdata-lvdata  硬盘2:/dev/mapper/vgredo-lvredo

操作系统:CentOS Linux release 7.9.2009 (Core)

Mysql数据库,有少量业务表和数据。

三、测试数据准备

3.1下载并安装tpcc

[root@ob opt]# wget ​​http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz​​

[root@ob opt]# gunziptpcc-mysql-src.tgz

[root@ob opt]# tar xf tpcc-mysql-src.tar

[root@ob opt]# cd tpcc-mysql/src

[root@ob src]#make

实践练习四:迁移 MySQL 数据到 OceanBase 集群_sql

实践练习四:迁移 MySQL 数据到 OceanBase 集群_oceanbase_02

编译完成后会生成tpcc_load和tpcc_start命令,以供之后生成测试数据。

3.2创建数据库,执行建表脚本

登录mysql并创建数据库:tpcc_test

mysql>create database tpcc_test;

实践练习四:迁移 MySQL 数据到 OceanBase 集群_mysql_03

生成测试表

mysql>source /opt/tpcc-mysql/create_table.sql

实践练习四:迁移 MySQL 数据到 OceanBase 集群_oceanbase_04

实践练习四:迁移 MySQL 数据到 OceanBase 集群_mysql_05

tpcc共创建了九张表:

customer:客户表;

district:地区表;

history:历史数据表;

item:商品表;

new_orders:新订单表;

order_line:发货表;

orders:订单表;

stock:库存表;

warehouse:仓库表;

3.3加载测试数据

 [root@ob tpcc-mysql]# ./tpcc_load localhost tpcc_test root ‘Ant@cloud2022' 10

实践练习四:迁移 MySQL 数据到 OceanBase 集群_sql_06

查看测试业务库数据表

实践练习四:迁移 MySQL 数据到 OceanBase 集群_sql_07

实践练习四:迁移 MySQL 数据到 OceanBase 集群_oceanbase_08

四、使用mysqldump迁移数据

 4.1使用mysqldump导出业务表结构

[root@ob opt]#mysqldump -h127.0.0.1 -uroot -P3306 -pAnt@cloud2022 -d tpcc_test --compact >
tpcc_ddl.sql

4.2使用mysqldump导出业务表数据

[root@ob opt]#mysqldump -h127.0.0.1 -uroot -P3306 -pAnt@cloud2022 -t tpcc_test --compact >
tpcc_data.sql

4.3导入业务表结构

MySQL [tpcc_test]> source /opt/tpcc_ddl.sql

MySQL [tpcc_test]> source /opt/tpcc_data.sql

4.4两端数据量核对

实践练习四:迁移 MySQL 数据到 OceanBase 集群_mysql_09

实践练习四:迁移 MySQL 数据到 OceanBase 集群_mysql_10

五、使用datax迁移数据

5.1安装部署datax

下载链接:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz

[root@master datax]# wget ​​http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz​​

解压安装包:

[root@master datax]# tar xvzf datax.tar.gz

删除datax中的隐藏文件:

[root@master plugin]# find /datax/datax/plugin -name ".*" |xargs rm -rf

5.2生成模板文件:

[root@ob bin]#python /datax/datax/bin/datax.py -r
mysqlreader -w oceanbasev10writer > /datax/datax/job/mysql2ob.json

5.3修改模板文件:

[root@ob job]# vim mysql2ob.json

{

    "job": {

        "setting": {

            "speed": {

                "channel": 4

            },

            "errorLimit": {

                "record": 0,

                "percentage": 0.1

            }

        },

        "content": [

            {

                "reader": {

                    "name":
"mysqlreader",

                    "parameter": {

                        "username":
"root",

                        "password":
"antcloud2022",

                        "column": [

                            "*"

                        ],

                        "connection":
[

                            {

                               
"table": [

                                   
"Student"

                                ],

                               
"jdbcUrl":
["jdbc:mysql://172.200.60.200:3306/Student_001?useUnicode=true&characterEncoding=utf8"]

                            }

                        ]

                    }

                },


                "writer": {

                    "name":
"oceanbasev10writer",

                    "parameter": {

                       
"obWriteMode": "insert",

                        "column": [

                            "*"

                        ],

                        "preSql": [

                            "truncate
table Student"

                        ],

                        "connection":
[

                            {

                               
"jdbcUrl":
"jdbc:oceanbase://172.200.60.200:2883/Student_001?useLocalSessionState=true&allowBatch=true&allowMultiQueries=true&rewriteBatchedStatements=true",

                               
"table": [

                                   
"Student"

                                ]

                            }

                        ],

                        "username":
"root@dev#obdemo",

                       
"password":"AAaa@@123",

                       
"writerThreadCount":10,

                        "batchSize":
1000,

                       
"memstoreThreshold": "0.9"

                    }

                }

            }

        ]

    }

5.4执行数据同步:

[root@ob datax]#bin/datax.py /datax/datax/job/mysql2ob.json

实践练习四:迁移 MySQL 数据到 OceanBase 集群_sql_11

实践练习四:迁移 MySQL 数据到 OceanBase 集群_oceanbase_12

5.5两端数据核对

实践练习四:迁移 MySQL 数据到 OceanBase 集群_oceanbase_13

实践练习四:迁移 MySQL 数据到 OceanBase 集群_oceanbase_14

确认两端数据同步一致,没有出现异常,迁移完成。



举报

相关推荐

0 条评论