前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL mysqlshell 新的备份MYSQL的方式,更快,更强,更高

MYSQL mysqlshell 新的备份MYSQL的方式,更快,更强,更高

作者头像
AustinDatabases
发布2022-07-13 15:18:25
7260
发布2022-07-13 15:18:25
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

MYSQL 从MYSQL 8 后,整体的管理方式相较于MYSQL 5.7 都有了大幅度的改变,在备份的方面MYSQL 8.021 后推出的备份方式,或者说导出的方式,通过新的方式来替换原来的mysqldump 。

这里主要有几个模块

1 table export utility

2 table export utiltity

3 parallel table import utility

4 instance Dump utility , schema dump , table dump utility

今天主要要说的就是第四个问题 instance dump utility , schema dump , table dump utility

这三个模块分别发布在 MYSQL 8.021 和 MYSQL 8.022 的 util.dumpInstance() , util.dumpSchemas(), util.dumpTables() 这三个,通过这三种方式来将对应的数据快速的DUMP 下来。

首先这三个模块的推出的意义在于针对 oracle cloud的方式,并且兼容本地MYSQL 的数据导出服务,这里通过多线程并行的方式增加的导出数据的速度。

在官方的文档中,提到通过这样的方式大幅度的提高了MYSQL DB system的数据的从本地导出的速度,并且快速的转移到ORACLE could的场景中。

在文件导出的过程中可以选择是数据,还是数据加表结构的方式来进行,导出的表以 tsv方式进行存储。

同时需要说明在早期的设计中如果选择部分表导出的时候,有一些选择方面的选择确实,如果你想弥补这个问题需要将你的MYSQL SHELL 调整到 MYSQL SHELL 8.028 这个版本。

如果要使用这个功能是有条件的

条件为:

1 mysql 5.7 及以上的MYSQL 版本,其他的版本则无法支持,并且这个版建议是GA ,而不是 M, P 两个系列的MYSQL

2 整体在各种问题和版本的控制下,建议MYSQL shell 8.027 以上的版本,可以解决大部分问题。

3 必须是mysql innodb 的数据引擎

4 在数据库的一致性被需要的时候,需要 backup admin ,reload priviliege 权限被序要,否则不被需要。

5 其他的选择还有不少,这里还是本着 ,先实践,在找问题的方式,来操作

下面简单的用提供的功能来对数据库的instance , schemas , table 来进行数据的dump

1 导出一个表的数据

util.export_table("world_x.city","file:///home/mysql/city.txt")

2 直接DUMP 一个表,通过多线程的模式

这个功能中的一个卖点是通过 util.dump_tables 来对数据库表DUMP 时采用多个线程来进行,并且可以通过控制导出的速率,多少线程进行导出,是否要具有一致性,以及压缩,和对数据库的字段或数据进行导出的选择。

util.dump_tables("world_x",["city"],"/home/mysql/backup",{"threads":4,"showProgress": "true","maxRate": "10k","consistent":"false","compression":"gzip","dataOnly":"true"})

threads : 线程数

showProgress : 是否展示过程

maxRate: 对导出的速率进行控制

consistent: 导出时是否具有一致性

dataOnly:

ddlOnly:

all: true 导出所有的数据表和VIEW

单表导出数据库后,产生6个文件

导出所有的表

util.dump_tables("world_x",[],"/home/mysql/backup",{"threads":4,"showProgress": "true","maxRate": "10k","consistent":"false","compression":"gzip","all":"true"})

util.dump_instance("/home/mysql/backup",{"threads":4,"showProgress":"true","compression":"gzip","maxRate":"10k"})

上面导出数据的方式,主要有两种,一种通过dump_tables 的方式,一种是通过dump_instance 的方式来整体将数据库的表来导出。

通过 dump 出的文件可以通过,util.load_dump("/home/mysql/backup")

命令将文件导入到系统内

set global local_infile=ON;

基于目前整体的相关的使用的说明和方案还都比较少,此项功能的测试和评估还需要继续。

基于目前

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档