美文网首页
Mydumper的基本使用

Mydumper的基本使用

作者: 这货不是王马勺 | 来源:发表于2023-11-12 09:26 被阅读0次

Mydumper介绍

Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。
Mydumper主要特性:
轻量级C语言写的
执行速度比mysqldump快10倍
事务性和非事务性表一致的快照(适用于0.2.2以上版本)
快速的文件压缩
支持导出binlog
多线程恢复(适用于0.2.1以上版本)
以守护进程的工作方式,定时快照和连续二进制日志(适用于0.5.0以上版本)
开源 (GNU GPLv3)
注意事项
mydumper采用多线程导出,所以无法保证导出顺序和使用mysqldump一致,可能会给某些依赖时间的特性(routine,event等)带来数据不一致,建议把mysql库和其他数据库分开导出导入。
mydumper提供的库提取和库合并功能依赖于分割符,所以要求用户数据库名不包含点号(.) ,表名不包含减号(-)。
官网:

https://github.com/mydumper/mydumper

Mydumper安装说明

先安装依赖

yum -y  install glib2-devel mysql-devel zlib-devel pcre-devel zlib gcc-c++ gcc cmake

下载链接:

https://github.com/mydumper/mydumper/releases/tag/
https://launchpad.net/mydumper

rpm安装
下载rpm包后安装使用

rpm -ivh mydumper-0.15.2-6.el7.x86_64.rpm

安装完成后会生成两个二进制文件mydumper和myloader,都位于/usr/local/bin目录下。(新版本安装后在/usr/bin目录下)

源码编译安装
下载源码包,然后解压,进入目录后执行

cmake .
make
make install

其他
或直接从如下链接下载:
mydumper_v1.0.0.tar.gz
tar xzvf cdb_mydumper_v1.0.0.tar.gz
解压后,会出现mydumper文件夹,里面有2个二进制执行文件。文件说明如下:
mydumper:云数据库数据多线程导出工具。
myloader:云数据库数据多线程导入工具.
无需安装直接加上执行权限即可以使用

mydumper参数介绍

-B, --database 需要备份的库
-T, --tables-list 需要备份的表,用,分隔
-o, --outputdir 输出目录
-s, --statement-size Attempted size of INSERT statement in bytes, default 1000000
-r, --rows 试图分裂成很多行块表
-c, --compress 压缩输出文件
-e, --build-empty-files 即使表没有数据,还是产生一个空文件
-x, --regex 支持正则表达式
-i, --ignore-engines 忽略的存储引擎,用,分隔
-m, --no-schemas 不导出表结构
-k, --no-locks 不执行临时共享读锁 警告:这将导致不一致的备份
-l, --long-query-guard 长查询,默认60s
--kill-long-queries kill掉长时间执行的查询(instead of aborting)
-b, --binlogs 导出binlog
-D, --daemon 启用守护进程模式
-I, --snapshot-interval dump快照间隔时间,默认60s,需要在daemon模式下
-L, --logfile 日志文件
-h, --host
-u, --user
-p, --password
-P, --port
-S, --socket
-t, --threads 使用的线程数,默认4
-C, --compress-protocol 在mysql连接上使用压缩
-V, --version
-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

mydumper输出文件:

metadata:元数据 记录备份开始和结束时间,以及binlog日志文件位置。
table data:每个表一个文件
table schemas:表结构文件
binary logs: 启用--binlogs选项后,二进制文件存放在binlog_snapshot目录下
daemon mode:在这个模式下,有五个目录0,1,binlogs,binlog_snapshot,last_dump。
备份目录是0和1,间隔备份,如果mydumper因某种原因失败而仍然有一个好的快照,
当快照完成后,last_dump指向该备份。

myloader参数介绍

-d, --directory 导入备份目录
-q, --queries-per-transaction 每次执行的查询数量, 默认1000
-o, --overwrite-tables 如果表存在删除表
-B, --database 需要还原的库
-e, --enable-binlog 启用二进制恢复数据
-h, --host
-u, --user
-p, --password
-P, --port
-S, --socket
-t, --threads 使用的线程数量,默认4
-C, --compress-protocol 连接上使用压缩
-V, --version
-v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

命令示例

导出整个库

    ./mydumper -h 127.0.0.1 –P 3306 –u root -p 123 -G -R -E -l -A -o alldb

导入整个库

    ./myloader -h 127.0.0.1 –P 3306 –u root -p 123 -d alldb

导出多个库

    ./mydumper -h 127.0.0.1 -P 3306 -u root -p 123 -G -R -E -l -B alarmDB,db_cms_logging,test -o dbs

导入多个库

    ./myloader -h 127.0.0.1 –P 3306 –u root -p 123 -d dbs

导出单库多表

    ./mydumper -h 127.0.0.1 –P 3306 –u root -p 123 -G -R -E -l -B alarmDB -T alarm_history,alarm_strategy -o tbs

导入单库多表

    ./myloader -h 127.0.0.1 –P 3306 –u root -p 123 –t 2 -d tbs

提取库导入

    ./myloader -h 127.0.0.1 –P 3306 –u root -p 123 -B alarmDB, db_cms_logging -d alldb

提取表导入

    ./myloader -h 127.0.0.1 –P 3306 –u root -p 123 -B alarmDB -T alarm_history,alarm_strategy -d dbs

多库导入单库(合服)

    ./myloader -h 127.0.0.1 –P 3306 –u root -p 123 -A newdir -B alarmDB -T alarm_history,alarm_strategy -d dbs

除了t1外,将test库其余表导出来:

/usr/bin/mydumper -h 127.0.0.1 -P 3306 -u root -p 123 -B test  --regex '^(?!(test.t1$))'  -c -t 6 -v 3 --rows 1000000 -o /backup -L /backup/test.log

全库备份shell参考:

#! /usr/bin/bash
Date=`date +%Y%m%d`
echo $Date-备份
rm -rf /backup/mybak-${Date}.tar.gz 
rm -rf /backup/mybak-${Date}
mkdir -p /backup/mybak-$Date
mydumper -u root -p root -R -G -E --regex '^(?!(mysql|sys|performance_schema|information_schema))'  -o /backup/mybak-$Date/
tar -zcvf /backup/mybak-${Date}.tar.gz /backup/mybak-$Date

#find ./ -name mybak-* -exec rm -rf {}\;

相关文章

  • 使用myloader恢复数据教程

    前言: 上篇文章介绍了 mydumper 备份工具的使用方法,文中有提到 mydumper 和 myloader ...

  • mysql备份相关

    Mydumper 安装mydumper 备份用户授权 进行备份 进行还原 Xtrabackup 安装xtrabac...

  • TiDB数据迁移工具Syncer的使用

    在将数据迁移到 TiDB 过程中,通过使用 mydumper 和 loader 可以实现存量数据的整体迁移,之后的...

  • 使用MyDumper迁移InnoDB到TokuDB

    最近几台微信买家相关数据库数据量增长迅猛,空间紧张,因而考虑迁移到压缩率超高的TokuDB,一个比较流行的迁移方法...

  • mydumper备份工具介绍与使用

    前言: 前面文章有介绍过 MySQL 系统自带的 mysqldump 备份工具的使用,其实还有一个开源工具 myd...

  • 浅析mydumper

    Ⅰ、背景 mysqldump单线程备份,很慢 恢复慢,一张表一张表恢复, 如果备份了100G的数据,想恢复其中一个...

  • MySQL备份与恢复详解(一)

    一,逻辑备份 工具:mysqldump,mydumper,PHPMyAdminSchema和数据存储在一起,巨大的...

  • Mysql备份之mydumper

    首先安装好最新的mydumper 0.9.1 安装 yum install glib2-devel mysql-d...

  • 【MySQL】mydumper调研

    前言:最近打算对公司内部某核心系统数据库进行升级改造,替换原先的Mariadb10.1.12为官方版本MySQL5...

  • 【MySQL】xtrabackup安装使用

    前言:说到MySQL备份,主要采用的方法无非就是mysqldump/mydumper以及我们今天要说的热备利器xt...

网友评论

      本文标题:Mydumper的基本使用

      本文链接:https://www.haomeiwen.com/subject/pincwdtx.html