OceanBase数据迁移-从MySQL导入数据到OceanBase

news2024/12/23 18:48:58

把MySQL中的数据导入到OceanBase,分两个步骤:

  • 1.准备一份MySQL测试数据集
  • 2.使用mydumper工具导出数据
  • 3.使用myloader工具导入到OceanBase
  • 4.验证测试数据集在OceanBase下的执行情况
1.准备一份MySQL测试数据集

1.1.从github下载mysql测试数据集:https://github.com/datacharmer/test_db/releases/download/v1.0.7/test_db-1.0.7.tar.gz

1.2.数据导入到MySQL中

# 1.上传test_db-1.0.7.tar.gz到服务器
# 2.解压 tar -xvzf test_db-1.0.7.tar.gz
# 3.cd test_db
4.导入数据
mysql -uroot -p123456 < ./employees.sql

5.或者进入mysql命令行,使用source命令导入数据
mysql>source employees.sql

1.3.看下测试数据集、表结构、每个表的数量

在这里插入图片描述
在这里插入图片描述
1.4.用一段sql关联查询3位员工的薪资发放,所在部门、职称,查询时间0.203s,mysql主机配置1核2G
在这里插入图片描述

2.使用mydumper工具导出数据

mydumper 和 myloader 都是开源的工具,具有高效、安全、可靠的特点,并且支持多种备份方式和备份数据的压缩和加密

  • mydumper: 是一款开源的多线程备份工具,用于备份 MySQL 数据库。mydumper 支持备份整个数据库、单个表或多个表,支持多线程备份,可以加速数据备份过程。mydumper 还支持备份数据的压缩和加密,可以从备份文件中恢复数据。
  • myloader: 是一款用于恢复 mydumper 备份文件的工具。

mydumper下载地址:
https://github.com/mydumper/mydumper/releases
https://github.com/mydumper/mydumper/releases/download/v0.15.2-7/mydumper-0.15.2-7.el7.x86_64.rpm
https://download.csdn.net/download/zhuyu19911016520/88857315
安装: rpm -ivh mydumper-0.15.2-7.el7.x86_64.rpm

安装完后就有mydumper和myloader工具了

2.1.mydumper备份
# 1.备份全库
mydumper -h xx.xx.xx.xx -P3306 -u username -p ****** -o /data/backup/mysql/

# 2.备份指定数据库 test
mydumper -h xx.xx.xx.xx -P3306 -u username -p ******  -B test -o /data/backup/mysql/

# 3.备份指定数据库指定表(t1,t2)
mydumper -h xx.xx.xx.xx -P3306 -u username -p ****** -B test -T t1,t2 -o /data/backup/mysql/

# 4.备份 t1 表的数据,开并行和数据压缩
mydumper -h xx.xx.xx.xx -P3306 -u username -p ****** -B test -T t1 -t 6 -c -o /data/backup/mysql/

# 5.导出示例代码
mydumper -u root -p '123456' -P 3306 -h 127.0.0.1 -B employees -t 6 -c -o /data/backup/mysql/

备份的数据会放到 /data/backup/mysql/ 目录下,每张表导出两个sql文件(schema表结构文件和数据文件)

mydumper 命令常用参数说明:

参数参数全称说明
-h–host连接的主机名或 IP 地址
-P–port连接的端口
-u–user备份使用的用户名
-p–password备份使用的用户密码
-B–database备份的数据库名,默认备份所有库
-T–tables-list备份的表名,多张表名字用逗号隔开
-i–ignore-engines备份忽略的存储引擎,用逗号分割
-m–no-schemas不备份表结构
-t–threads开启的并行备份线程数,默认是 4
-c–compress对输出文件进行压缩
-o–outputdir备份文件输出目录
3.使用myloader工具导入到OceanBase

OceanBase禁用外键检查约束,防止恢复时脚本报错

obclient -h192.168.113.161 -P2883 -uroot -p'123' -Doceanbase -A
[oceanbase]> SET GLOBAL foreign_key_checks=off;
[oceanbase]> SHOW GLOBAL VARIABLES LIKE '%foreign%';

myloader导入到OceanBase,如果test不存在则会自动创建

myloader -h 127.0.0.1 -P 2883 -u 'user@tenantname#clustenamer' -p ******  -B test -o -d /data/backup/mysql/

myloader -h 127.0.0.1 -P 2883 -u 'root@mq_t1#zycluster' -p '123456'  -B test -o -d /data/backup/mysql/

导入测试数据集到OceanBase成功,但通过输出日志可以看到下面有个表导入报错了
在这里插入图片描述

myloader 命令常用参数说明:

参数参数全称说明
-h–host连接的主机名
-P–port连接的端口
-u–user恢复使用的用户名
-p–password恢复使用的用户密码
-B–database恢复的数据库名
-d–directory恢复文件的目录
-o–overwrite-tables如果要恢复的表存在,则先 drop 掉该表;使用该参数,需要备份时候要备份表结构
-B–database需要还原的数据库
4.验证测试数据集在OceanBase下的执行情况

上面那段多表关联查询sql放到oceanbase集群的employees数据库中执行几次,看下执行时间(特别说明这里的执行情况不代表真实情况,因两台主机配置不同)

第一次查询时间为 0.114 秒
在这里插入图片描述

后面多次执行同一条sql,查询时间基本都是0.001秒,猜测数据被缓存了,这样对热点数据的查询性能比较高

在这里插入图片描述

参考文档:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507580

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1461949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【hoare基础版】快速排序算法(1)

目录 交换排序 QuickSort快速排序 Hoare整体思路 图解分析 ​ Hoare版本代码 总代码 时间复杂度 交换排序 基本思想&#xff1a;所谓交换&#xff0c;就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置&#xff0c;交换排序的特点是&#xff1a;将键…

安装unget包 sqlsugar时报错,完整的报错解决

前置 .net6的开发环境 问题 ? 打开unget官网&#xff0c;搜索报错的依赖Oracle.ManagedDataAccess.Core unget官网 通过unget搜索Oracle.ManagedDataAccess.Core查看该依赖的依赖 发现应该是需要的依赖Oracle.ManagedDataAccess.Core(>3.21.100)不支持.net6的环境 解…

代码随想录算法训练营第一天

● 今日学习的文章链接和视频链接 ● 自己看到题目的第一想法 1. 704二分法&#xff1a; 方法一&#xff1a; 整个数组是 左闭右闭区间 [ ] left指针指向数组开始下标&#xff0c; right 指针指向数组最后下表nums.size()-1, mid为 (leftright) /2循环条件 left<rightnu…

Django使用Celery异步

安装包 pip install celerypip install eventlet 1.在项目文件的根目录下创建目录结果 2. 在main.py文件中 # !/usr/bin/env python # -*-coding:utf-8 -*-""" # Author &#xff1a;skyTree # version &#xff1a;python 3.11 # Description&#…

浅谈maven的生命周期

正文: 在Maven中,生命周期定义了项目构建过程的不同阶段以及在每个阶段中执行的插件目标。Maven的生命周期是由一系列阶段组成的,每个阶段都有一个唯一的标识符。 Clean生命周期:用于清理项目的构建目录。它包含以下阶段: pre-clean:执行在清理操作之前的任何操作。clea…

Eclipse的Java Project的入口main函数

在使用Eclipse创建java project项目的时候&#xff0c;一个项目里面通常只有一个main&#xff0c;那么一个项目里面是否可以有多个main函数呢&#xff1f;其实可以的&#xff0c;但是运行java application的时候要选择执行哪个main函数。 下面举个例子&#xff1a; 1、创建一个…

二进制方式安装MySQL并备份数据库

一、openEuler二进制方式安装MySQL 8.0.28版本 1.1 获取软件包 [rootopenEuler3 ~]# wget -c https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz 1.2 解压软件包 [rootopenEuler3 ~]# dnf install -y tar xz [rootopenEuler3 ~]# t…

MKdocs添加顶部公告栏

效果如图&#xff1a; docs/overrides下新建main.html &#xff0c;针对main.html文件 树状结构如下: $ tree -a . ├── .github │ ├── .DS_Store │ └── workflows │ └── PublishMySite.yml ├── docs │ └── index.md │ └──overrides │…

Arthas—【学习篇】

1. Arthas官网 arthas 2. 下载 从 Maven 仓库下载 最新版本&#xff0c;点击下载&#xff1a;​编辑在新窗口打开 点击这个 mavrn-central 即可显示下面的图片 ​​ #从 Github Releases 页下载 Releases alibaba/arthas GitHub 3. 解压 将压缩包复制到一个位置&…

el-table同时固定左列和右列时,出现错误情况

最近遇到一个问题,就是需求是要求表格同时固定序号列和操作列,我们用的是饿了么组件库的el-table,如下图,出现了错误情况: 解决方法就是使用doLayout方法: 如果使用了keep-alive,可以在activated里执行doLayout方法: activated() {this.$nextTick(() => {this.$ref…

Linux篇:开发工具yum/vim/gcc/g++/Makefile/gdb

一. yum&#xff1a;软件包管理器 什么是软件包&#xff1f; 在Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 . 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好 , 做成软件包 (可以理解成windows 上的安装程序) 放在…

Bert基础(三)--位置编码

背景 还是以I am good&#xff08;我很好&#xff09;为例。 在RNN模型中&#xff0c;句子是逐字送入学习网络的。换言之&#xff0c;首先把I作为输入&#xff0c;接下来是am&#xff0c;以此类推。通过逐字地接受输入&#xff0c;学习网络就能完全理解整个句子。然而&#x…

Meta 发布 MMCSG (多模态智能眼镜对话数据集)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

xxl-job架构原理讲解

1、调度中心 调度中心是一个单独的Web服务&#xff0c;主要是用来触发定时任务的执行 它提供了一些页面操作&#xff0c;我们可以很方便地去管理这些定时任务的触发逻辑 调度中心依赖数据库&#xff0c;所以数据都是存在数据库中的 调度中心也支持集群模式&#xff0c;但是…

【JavaEE】_ajax构造HTTP请求

目录 1. ajax简述 2. ajax构造HTTP请求 2.1 jquery库的引入 2.2 ajax构造HTTP请求格式 3. ajax构造GET请求实例 4. ajax构造POST请求实例 本专栏关于form表单构造HTTP请求一文中已经提到&#xff1a;form表单构造法只支持GET和POST&#xff0c;且会触发页面跳转。 原文详…

利用RBI(Remote Browser Isolation)技术访问ChatGPT

系统组网图 #mermaid-svg-Bza2puvd8MudMbqR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Bza2puvd8MudMbqR .error-icon{fill:#552222;}#mermaid-svg-Bza2puvd8MudMbqR .error-text{fill:#552222;stroke:#552222;…

Spring Cloud Alibaba-04-Sentinel服务容错

Lison <dreamlison163.com>, v1.0.0, 2023.09.10 Spring Cloud Alibaba-04-Sentinel服务容错 文章目录 Spring Cloud Alibaba-04-Sentinel服务容错高并发带来的问题服务雪崩效应常见容错方案Sentinel入门什么是Sentinel微服务集成Sentinel安装Sentinel控制台 实现一个接…

nc开发刚导入项目eclipse出现莫名其妙的错误,红叉,感叹号,文件missing

解决类出现红叉 解决感叹号&#xff0c;文件missing 其他问题 右上角的视图&#xff0c;要选择java&#xff0c;如果是javaEE也会有一些文件没有展示出来。

Project_Euler-05 题解

Project_Euler-05 题解 题目描述 思路 转换题意&#xff1a;2520是1到10这十个数的最小公倍数&#xff0c;求1到20这20个数的最小公倍数是多少&#xff1f; 我们可以先求两个数的最小公倍数&#xff0c;得出结果后再乘上一个新的数&#xff0c;依此类推&#xff0c;例如&…

⭐北邮复试刷题106. 从中序与后序遍历序列构造二叉树__递归分治 (力扣每日一题)

106. 从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postor…