MySQL5.7数据导入/导出、TiDB数据回迁移

news2024/11/17 5:48:05

一、环境&安装包

  • CentOS Linux release 7.4.1708 (Core)
  • TDSQL(腾讯基于MySQL5.7.x自主研发的数据库)
  • Mysqldump(MySQL5.7.41备份客户端)
  • Dumpling(mydumper 的全新升级版)
  • Myloader(mydumper附带的导入命令,需要安装mydumper)
  • TiDB(分布式集群数据库)

二、数据导出/导入

所需要权限:

  • SELECT
  • RELOAD
  • LOCK TABLES
  • REPLICATION CLIENT
  • PROCESS

1.安装mysqldump

#检查之前是否安装了其他mysql
[root@node-11 user1]# rpm -qa | grep mysql
[root@node-11 user1]# rpm -qa | grep mariadb
 
#卸载之前安装的 mariadb (与mysql-client参数上存在不同,mariadb它没有--set-gtid-purged=off参数,备份时会报错)
[root@node-11 user1]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@node-11 user1]# rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64
 
#安装mysql-client(包含mysqldump)
[root@node-11 user1]# rpm -ivh mysql-community-common-5.7.41-1.el7.x86_64.rpm           //安装公共类库包
[root@node-11 user1]# rpm -ivh mysql-community-libs-5.7.41-1.el7.x86_64.rpm             //安装libs依赖包
[root@node-11 user1]# rpm -ivh mysql-community-client-5.7.41-1.el7.x86_64.rpm           //安装MySQL客户端包
[root@node-11 user1]# mysqldump -V                                                      //查看版本

2.数据导出

[root@hdzwvm000007172 bak]# time mysqldump -h172.16.8.99  -P15070 -uhdjsjb_intelliQT  --set-gtid-purged=off -p'xxxxxxxxxx' --databases hdjsjb_intelliqt    > /srv/bak/hdjsjb_intelliqt.sql
[root@hdzwvm000007172 bak]# du -h hdjsjb_intelliqt.sql      //计算sql文件大小

在这里插入图片描述
在这里插入图片描述

参数说明:

time:计算命令执行返回时间
-h:指定MySQL服务器的主机名或IP地址。
-P:指定MySQL服务器的端口号。
–u:指定连接MySQL服务器的用户名。
- -set-gtid-purged:指定是否在备份时清除GTID信息。GTID是MySQL 5.6及以上版本中用于复制的全局事务标识符。
-p:指定连接MySQL服务器的密码。注意密码需要用单引号括起来。
- -databases:指定要备份的数据库名称。
>:将备份数据输出到指定的文件中。

命令解析:
这条命令的作用是将名为hdjsjb_intelliqt的MySQL数据库备份到/srv/bak/hdjsjb_intelliqt.sql文件中,备份时不清除GTID信息。备份时需要连接到主机名或IP地址为172.16.8.99,端口号为15070的MySQL服务器,使用用户名hdjsjb_intelliQT和密码hdjsjb_intelliQT@123进行连接。

3.文件传输

#将文件传输至目标服务器
[root@hdzwvm000007172 bak]# time rsync -av -e "ssh -p4147" hdjsjb_intelliqt.sql  root@10.111.13.17:/srv/mysql_bak  

在这里插入图片描述

参数说明:

time:在执行 rsync 命令时显示详细的时间统计信息。
rsync:命令本身,用于同步文件。
-av:a 表示以归档模式同步文件,保留文件属性,递归同步子目录,保留符号链接等;v 表示以详细模式输出同步过程中的信息。
-e “ssh -p4147”:指定使用 ssh 协议进行同步,并指定 ssh 的端口号为 4147。
hdjsjb_intelliqt.sql:要同步的本地文件名。
root@10.111.13.17:/srv/mysql_bak:远程服务器的用户名和 IP 地址,以及同步到的目标路径。

命令解析:

这条命令是用于将本地文件 hdjsjb_intelliqt.sql 同步到远程服务器 10.111.13.17 的 /srv/mysql_bak 目录下。

4.数据导入

[root@node-11 mysql_bak]# time mysql -h10.111.13.32 -uhdjsjb_intelliQT -p'xxxxxxxx'  hdjsjb_intelliqt   < hdjsjb_intelliqt.sql

在这里插入图片描述

三、数据迁移(tidb–>tdsql[mysql])

1.安装dumpling导出数据

[root@bogon tidb]# tar -xvf dumpling-v6.0.0-linux-amd64.tar.gz
[root@bogon tidb]# ./dumpling -V
[root@bogon tidb]# date=$(date +%Y-%m-%d)                                                                                                   //赋值日期格式变量
[root@bogon tidb]# time ./dumpling -h 11.16.39.5 -P 14000 -u root -p xxxxx -c gzip -t 8 -F 256m -o /lightning-tidb/$date/                //全量导出数据(支持热导出)
[root@bogon tidb]# zcat bak_ebike-schema-create.sql.gz                                                                                      //查看压缩文件内容
[root@bogon tidb]# zcat bak_ebike.magic_api_file_202203301601-schema.sql.gz
[root@bogon tidb]# zcat bak_ebike.magic_api_file_202203301601.000000000.sql.gz |grep INSERT

在这里插入图片描述
在这里插入图片描述

参数说明:

参数说明:
time:这个命令会测量程序的运行时间。
./dumpling:这是要运行的程序的名称。
-h 11.16.39.5:这是要连接的主机的IP地址。
-P 14000:这是要连接的主机的端口号。
-u root:这是要使用的用户名。
-p :这是要使用的密码。
-c gzip:这是要使用的压缩算法。
-t 8:这是要使用的线程数。
-F 256m:这是要使用的文件大小。
-o /lightning-tidb/ d a t e / :这是要导出数据的目录路径,其中 date/:这是要导出数据的目录路径,其中 date/:这是要导出数据的目录路径,其中date将被替换为当前日期

备份文件:

metadata:此文件包含导出的起始时间,以及 master binary log 的位置。
{schema}-schema-create.sql:创建 数据库 的 SQL 文件。
{schema}.{table}-schema.sql:创建 table 的 SQL 文件。

2.安装mydumper、myloader导入MySQL

无需提前创建数据库、表结构

[root@bogon tidb-sql]# rpm -ivh mydumper-0.13.0-6.el7.x86_64.rpm
[root@bogon tidb-sql]# myloader -V
[root@bogon tidb-sql]# time myloader -h 127.0.0.1   -u root -p 'xxxxxxx' -P 3307 -e -t 8 -C -d /srv/soft/tidb-sql --overwrite-tables -v 3

在这里插入图片描述
在这里插入图片描述

参数说明:

time:这个命令会输出执行时间。
myloader:这是要执行的命令。
-h 127.0.0.1:这是要连接的MySQL服务器的IP地址。
-u root:这是要使用的MySQL用户名。
-p ‘hdzxzj!qazxsw2’:这是要使用的MySQL密码。
-P 3307:这是要连接的MySQL服务器的端口号。
-e:启用还原数据的二进制日志。
-t 8:这个参数表示使用8个线程来导入数据。
-C:这个参数表示要压缩导出的数据。
-d /srv/soft/tidb-sql:这个参数表示要导出的数据库的名称。
- -overwrite-tables:这个参数表示要覆盖已存在的表。
-v 3:这个参数表示输出详细的日志信息,级别为3。

3.验证数据

[root@bogon mysql-5.7]# ./bin/mysql -S mysql.sock
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1219882
Server version: 5.7.36-log MySQL Community Server (GPL)
 
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bak_ebike          |
| confluence         |
| ebike              |
| es_view            |
| jira               |
| jumpserver         |
| mysql              |
| performance_schema |
| sys                |
| zabbix             |
+--------------------+
11 rows in set (0.01 sec)
 
mysql> use bak_ebike
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> show tables;
+-----------------------------+
| Tables_in_bak_ebike         |
+-----------------------------+
| magic_api_file_202203301601 |
+-----------------------------+
1 row in set (0.00 sec)
 
mysql> select * from magic_api_file_202203301601\G;

在这里插入图片描述

在这里插入图片描述

可以看到数据库、表结构、表数据均已导入成功,已有300行数据插入。


四、结束语

  本次MySQL导入/导出、TiDB数据回迁就到此结束了,后期会给大家带来主流数据库更深层次应用,感谢认真读完,如果觉得还可以,那么给作者点赞、收藏、关注吧!

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

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

相关文章

Flutter 3.10 之 Flutter Web 路线已定,可用性进一步提升,快来尝鲜 WasmGC

随着 Flutter 3.10 发布&#xff0c;Flutter Web 也引来了它最具有「里程碑」意义的更新&#xff0c;这里的「里程碑」不是说这次 Flutter Web 有多么重大的更新&#xff0c;而是 Flutter 官方对于 Web 终于有了明确的定位和方向。 提升 首先我们简单聊提升&#xff0c;这不是…

用处巨广的操作符,快来学学叭(C语言版)

&#x1f929;本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 &#x1f970;内容专栏&#xff1a;这里是《C知识系统分享》专栏&#xff0c;笔者用重金(时间和精力)打造&#xff0c;基础知识一网打尽&#xff0c…

buildroot 目录结构

buildroot 目录结构 board 存放着不同厂商相关的文件 buildroot-2023.02/board/sipeed/lichee_rv_dock里面描述了如何连接wifi,蓝牙&#xff0c;烧写sdcard.img 如何配置buildroot和编译等 make sipeed_lichee_rv_dock_defconfig makearch 存放着CPU相关的文件&#xff0c…

SQLite:轻量级嵌入式数据库

原创 | 文 BFT机器人 引言 SQLite是一个进程内的库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&#xff0c;这意味着与其他数据库不一样&#xff0c;您不需要在系统中配置。就像其他数据库&#xff0c;SQLite 引擎不…

AI —— 亲测讯飞星火认知大模型,真的很酷!

讯飞星火认知大模型真的很酷&#xff01; 前言&#x1f64c;讯飞星火认知大模型基本的使用介绍与讯飞星火认知大模型基本的对话 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&#xff1a;全神贯注的上吧&#xff01;&#xf…

FE_Vue学习笔记 条件渲染[v-show v-if] 列表渲染[v-for] 列表过滤 列表排序

1 条件渲染 v-show v-if 使用template可以使其里面的内容在html的结构中不变。条件渲染&#xff1a; v-if 1&#xff09;v-if“表达式” 2&#xff09;v-else-if“表达式” 3&#xff09;v-else {} 适用于&#xff1a;切换频率较低的场景。特点&#xff1a;不展示的DOM元素直…

rem、px、em的区别 -前端

文章目录 三者的区别特点与换算举例emrem 总结一总结二 三者的区别 在css中单位长度用的最多的是px、em、rem&#xff0c;这三个的区别是&#xff1a; 一、px是固定的像素&#xff0c;一旦设置了就无法因为适应页面大小而改变。 二、em和rem相对于px更具有灵活性&#xff0c;…

消息认证码以及数字签名的认识

文章目录 消息认证码及数字签名1. 消息认证码1.1 消息认证1.2 消息认证码的使用步骤1.3 go中对消息认证码的使用1.4 消息认证码的问题 2.数字签名2.1 数字签名的生成和验证2.2 数字签名的流程2.3 Go使用RSA进行数字签名2.4 Go使用椭圆曲线进行数字签名2.5 数字签名无法解决的问…

dts pinctrl初始gpio0方法

1、在pinctrl-rockchip.c文件中添加头文件 #include <linux/of_gpio.h> 如下 2、 在如下函数添加红色代码 static int rockchip_pinctrl_probe(struct platform_device *pdev) { struct rockchip_pinctrl *info; struct device *dev &pdev->dev; …

Vue3 自定义指令让元素自适应高度,el-table在可视区域内滚起来

我始终坚持&#xff0c;前端开发不能满足于实现功能&#xff0c;而是需要提供优秀的交互与用户体验。即使没有产品没有UI的小项目&#xff0c;也可以自己控制出品质量&#xff0c;做到小而美。所以前端们不仅仅需要了解框架如何用&#xff0c;还要学习一些设计、交互、体验的知…

新入职了一个00后卷王,天天加班12点,太让人崩溃......

在程序员职场上&#xff0c;什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事&#xff0c;我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事&#xff0c;可遇不可求&#xff0c;向他学习还来不及呢。 真正让人反感的&#xff0c;是技术平平&…

Android 百度地图SDK闪退

Android 百度地图SDK闪退 通过Android IDE查看APP运行日志Error 1:errorcode: 230 uid: -1 appid -1 msg: APP Mcode码校验失败 在调用百度SDK时出现闪退现象&#xff0c;要知道闪退的具体原因&#xff0c;不然搜了一堆教程&#xff0c;发现纯纯浪费时间&#xff0c;作者也是痛…

知识就是力量,图谱路在何方 | ChatGPT冲击下,招商银行如何“抢救”知识图谱?

“知识就是力量”我们耳熟能详&#xff0c;但培根的这句话其实还有后半句“更重要的是运用知识的技能”。对于人工智能来说&#xff0c;知识图谱就是其如何对知识进行运用的技能体现。在金融领域&#xff0c;如何运用这一技能更好地理解客户需求&#xff0c;提高业务效率和客户…

三层架构与MVC架构区别

三层架构 表示层&#xff1a;主要对用户的请求接受&#xff0c;以及数据的返回&#xff0c;为客户端提供应用程序的访问。 servlet层 业务逻辑层&#xff1a;对我们数据实现业务逻辑的封装 service层 数据访问层&#xff1a;对数据库访问操作 dao层 MVC架构 1.MVC全名是Model …

MATLAB 常用数学函数和数组和字符串、元胞数组和结构体,MATLAB 编程,关系运算符和逻辑变量

目录 MATLAB 零基础学习 简介 使用平台 一、MATLAB 界面 二、基础操作 使用方法 常用数学函数 初等函数 三角函数 指数和对数 复数 标点符号 常用操作 三、文件类型 数组 一、数组基础知识 二、数组创建与操作 创建 数组操作 字符串数组 字符串、元胞数组…

语义分割学习笔记(三)FCN网络结构详解

1.FCN网络概述 FCN网络&#xff08;Fully Convolutional Networks&#xff09;&#xff1a;首个端对端的针对像素级预测的全卷积网络。 FCN网络思想&#xff1a;输入图像经过多次卷积&#xff0c;得到一个通道数为21的特征图&#xff0c;再经过上采样&#xff0c;得到一个与原图…

如何在 Mac 或 Windows 上将 PDF 转换为 Word 而不丢失格式

PDF 有无数的优点&#xff0c;但它不能像 Microsoft Word 文档那样容易编辑。如果您没有价格总是很高的 PDF 编辑器&#xff0c;您将无法根据需要编辑或使用 PDF 源。但是我们可以将PDF转成Word&#xff0c;方便编辑。 有很多解决方案可用于在 Mac 上将 PDF 转换为可编辑的 W…

纯手动搭建大数据集群架构_记录019_集群机器硬盘爆满了_从搭建虚拟机开始_做个200G的虚拟机---大数据之Hadoop3.x工作笔记0179

今天突然就发现,使用nifi的时候集群满了...气死了.. 而在vmware中给centos去扩容,给根目录扩容,做的时候,弄了一天...最后还是报错, 算了从头搭建一个200G的,希望这次够用吧.后面再研究一下扩容的问题. 2023-05-12 11:06:48 原来的集群的机器,硬盘太小了,扩容不知道怎么回事…

GBASE核心业务系统解决方案入围工信部“2022年信息技术应用创新典型解决方案”

日前&#xff0c;以“加快数字中国建设&#xff0c;推进中国式现代化”为主题的第六届数字中国建设峰会在福州盛大召开。作为本届峰会的一大看点&#xff0c;由工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)牵头开展的2022年信息技术应用创新解决方案&#xff0…

利用ChatGPT变现有哪些方法?

ChatGPT是一个聊天机器人&#xff0c;它可以用于多种用途&#xff0c;例如&#xff1a; 1. 在网站或应用程序中提供客户支持&#xff1a;ChatGPT可以用于回答常见问题、提供技术支持或解决客户问题。这可以提高客户满意度&#xff0c;从而增加客户忠诚度和销售额。 2. 在社交…