首页 > 数据库 > MySQL数据库运维实录--通过MySQL Shell Dump/Load 实现数据库对象的逻辑备份与恢复

MySQL数据库运维实录--通过MySQL Shell Dump/Load 实现数据库对象的逻辑备份与恢复

时间:2023-06-15 11:02:42浏览次数:44  
标签:Load 某些 数据库 默认 忽略 导入 转储 MySQL true

[mysql@node01 ~]$ mysqlsh
MySQL  JS > \connect root@node01:3306
MySQL  node01:3306 ssl  JS > util.dumpInstance('/home/mysql/backup')

[mysql@node01 ~]$ scp -r backup/* node02:/home/mysql/backup/

util.dumpInstance 的关键特性
1,多线程备份。并发线程数由 threads 决定,默认是 4。
2,支持单表 chunk 级别的并行备份,前提是表上存在主键或唯一索引。
3,默认是压缩备份。
4,支持备份限速。可通过 maxRate 限制单个线程的数据读取速率。

util.dumpInstance 的参数解析
users:是否转储用户及权限,默认为 true

routines:是否转储函数和存储过程,默认为 true

triggers:是否转储触发器,默认为 true

events:是否转储事件,默认为 true

ddlOnly:是否只转储表结构,默认为 false

dataOnly:是否只转储数据,默认为 false

excludeSchemas:忽略某些库的转储,多个库之间用逗号隔开,例如:excludeSchemas: ["db1", "db2"]

excludeTables:忽略某些表的转储,表必须是 schema.table 的格式,多个表之间用逗号隔开,例如:excludeTables: ["db1.table1", "db1.table2"]

excludeUsers:忽略某些用户的转储

excludeRoutines:忽略某些函数和存储过程的转储

excludeTriggers:忽略某些触发器的转储

excludeEvents:忽略某些事件的转储

includeSchemas:指定某些库的转储

includeTables:指定某些表的转储

includeUsers:指定某些用户的转储

includeRoutines:指定某些函数和存储过程的转储

includeTriggers:指定某些触发器的转储

includeEvents:指定某些事件的转储

chunking:转储时将表拆分为多个 chunk,默认为 true

bytesPerChunk:写入每个 chunk 数据文件的近似字节数,默认 64M。

threads:从 MySQL 实例转储数据的并行线程数,默认为 4。

consistent:是否开启一致性转储,默认为 true。

maxRate:转储期间每个线程的数据读取吞吐量的最大字节数,默认为 0,不限制。

compression:转储使用的压缩算法,默认为 zstd。也可设置为 gzip 或 none(不压缩)

defaultCharacterSet:转储使用的会话字符集,默认为utf8mb4
[mysql@node02 ~]$ mysqlsh
 MySQL  JS > \connect root@node02:3306
 MySQL  node02:3306 ssl  JS > util.loadDump('/home/mysql/backup',{loadUsers:true,excludeUsers:["root"],deferTableIndexes:"all"})

util.loadDump 的关键特性
1,多线程恢复。并发线程数由 threads 决定,默认是 4
2,支持断点续传功能
3,支持延迟创建二级索引
4,支持边备份,边导入
5,通过 LOAD DATA LOCAL INFILE 命令来导入数据
6,如果单个文件过大,util.loadDump 在导入时会自动进行切割,以避免产生大事务

util.loadDump 的参数解析
excludeEvents:忽略某些事件的导入

excludeRoutines:忽略某些函数和存储过程的导入

excludeSchemas:忽略某些库的导入

excludeTables:忽略某些表的导入

excludeTriggers:忽略某些触发器的导入

excludeUsers:忽略某些用户的导入

includeEvents:指定某些事件的导入

includeRoutines:指定某些函数和存储过程的导入

includeSchemas:指定某些库的导入

includeTables:指定某些表的导入

includeTriggers:指定某些触发器的导入

includeUsers:指定某些用户的导入

loadData:是否导入数据,默认为 true

loadDdl:是否导入 DDL 语句,默认为 true

loadUsers:是否导入用户,默认为 false

ignoreExistingObjects:是否忽略已经存在的对象,默认为 off

threads:导入并发线程数,默认为 4。

maxBytesPerTransaction:指定单个 LOAD DATA 操作可加载的最大字节数。默认与 bytesPerChunk 一致。这个参数可用来规避大事务。

resetProgress:如果备份目录中存在 progressFile,默认会从上次完成的地方继续执行。如果要从头开始执行,需将 resetProgress 设置为 true。该参数默认为 off。

deferTableIndexes:是否延迟创建二级索引。可设置:off(不延迟),fulltext(只延迟创建全文索引,默认值),all(延迟创建所有索引)。

loadIndexes:与 deferTableIndexes 一起使用,用来决定数据加载完毕后,最后的二级索引是否创建,默认为 true。

analyzeTables:表加载完毕后,是否执行 ANALYZE TABLE 操作。默认是 off

ignoreVersion:忽略 MySQL 的版本检测。默认情况下,要求备份实例和导入实例的大版本一致。

skipBinlog:是否设置 sql_log_bin=0 ,默认 false

标签:Load,某些,数据库,默认,忽略,导入,转储,MySQL,true
From: https://blog.51cto.com/dbprofessional/6485371

相关文章

  • mysql8.0创建新用户
     查看当前用户usemysql;selectcurrent_user();或者:selectUser,authentication_string,Hostfromuser;查看权限showgrantsfor'user'@'ip';或者showgrants;创建一个给新用户的数据库createdatabasetestDatabase;创建新用户同时配置给该用户testData......
  • MySQL8.0设置外网访问
    1.登进MySQL之后mysql-uroot-p***2,输入以下语句,进入mysql库:usemysql3,更新域属性,'%'表示允许外部访问:updateusersethost='%'whereuser='root';4,执行以上语句之后再执行:FLUSHPRIVILEGES;5,再执行授权语句:GRANTALLPRIVILEGESON*.*TO'root'@'%......
  • DataX在Windows上实现Mysql到Mysql同步数据以及配置多个job/多个表同步定时执行bat
    场景DataX-阿里开源离线同步工具在Windows上实现Sqlserver到Mysql全量同步和增量同步:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130330353DataX-在Windows上实现postgresql同步数据到mysql:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130......
  • 解决MySQL8.0报错:Unknown system variable 'validate_password_policy'
    解决MySQL8.0报错:Unknownsystemvariable'validate_password_policy'解决MySQL8.0报错:Unknownsystemvariable'validate_password_policy'一、问题描述1.通过yum安装好mysql8.0,通过生成的临时密码登录后操作mysql时会报如下错误:mysql>showdatabases;ERROR1820......
  • CentOS yum升级MySQL 5.6到5.7.42
    注意:升级前一定要做好备份升级前请将mysql5.6小版本升级到最高升级时可将my.cnf配置文件备份,保留最基本的配置,避免因配置问题造成异常,升级完成后在逐步还原安装mysql5.7yum源如果之前已经安装了5.6的yum源,需要先卸载后在安装rpm-Uvhhttps://dev.mysql.com/get/mysql......
  • SpringBoot+druid+dynamic+clickhouse+mysql实现读写分离
    背景:clickhouse+mysql实现读写分离1.配置mysql2.安装clickhouse3.使用可视化工具连接clickhouse4.创建clickhouse的数据库并连接mysql5.SpringBoot+druid+dynamic配置多数据源实现读写分离一.背景由于系统数据量过大,查询条件自定义过多,mysql在查询时响应太慢,所以使用cli......
  • Postgresql中的表结构和数据同步/数据传输到Mysql
    场景Postgresql中的某个表,需要连同表结构以及表数据同步一次到Mysql数据库中。一种方式是在Postgresql中将表sql导出,然后修改sql文件语法,再导入到mysql中。但是这种方式过于复杂,可以借助于Navicat等工具。如果是使用Navicat进行结构同步和数据同步时,需要两边是同类型的数据库......
  • Mysql查看连接数(连接总数、活跃数、最大并发数)
    查看最大连接数mysql>showvariableslike'%max_connection%';+-----------------------+-------+|Variable_name|Value|+-----------------------+-------+|extra_max_connections|||max_connections|2512|+----------------......
  • 在 Istio 服务网格内连接外部 MySQL 数据库
    为了方便理解,以Istio官方提供的Bookinfo应用示例为例,利用ratings服务外部MySQL数据库。Bookinfo应用的架构图如下:其中,包含四个单独的微服务:productpage:调用details和reviews两个服务,用来生成页面。details:包含了书籍的信息。reviews:包含了书籍相关的评论。它还......
  • node Solve – To load an ES module, set “type”: “module” in the package.js
     https://codevoweb.com/solve-to-load-an-es-module-set-type-module-in-the-package-json-or-use-the-mjs-extension/  解决–要加载ES模块,请在package.json中设置“type”:“module”或使用.mjs扩展名 第一个解决方案,注意格式是有空格的 第二个是把文......