MySQL多线程备份工具mydumper

这篇具有很好参考价值的文章主要介绍了MySQL多线程备份工具mydumper。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、mydumper简介

二、mydumper安装

1、yum安装mydumper

2、源码安装mydumper

三、mydumper参数介绍

四、myloader参数介绍

五、使用例子


一、mydumper简介

mydumper 是一款社区开源的逻辑备份工具。该工具主要由 C 语言编写,目前由 MySQL 、Facebook 等公司人员开发维护。

参考官方介绍,mydumper 主要有以下几点特性:

  • 支持多线程导出数据,速度更快。
  • 支持一致性备份。
  • 支持将导出文件压缩,节约空间。
  • 支持多线程恢复。
  • 支持以守护进程模式工作,定时快照和连续二进制日志。
  • 支持按照指定大小将备份文件切割。
  • 数据与建表语句分离。

mydumper 官网:https://launchpad.net/mydumper

mydumper github: https://github.com/mydumper/mydumper

mydumper下载:https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz

wget https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz

二、mydumper安装

1、yum安装mydumper

## RedHat / Centos

release=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/mydumper/mydumper/releases/latest | cut -d'/' -f8)
yum install https://github.com/mydumper/mydumper/releases/download/${release}/mydumper-${release:1}.el7.x86_64.rpm
yum install https://github.com/mydumper/mydumper/releases/download/${release}/mydumper-${release:1}.el8.x86_64.rpm

2、源码安装mydumper

        根据个人使用经验,推荐mydumper-0.9.1版本比较稳定,github上边的比较新,会出现预想不到bug。

# Dependencies for building mydumper

yum install -y cmake gcc gcc-c++ git make

yum install -y glib2-devel openssl-devel pcre-devel zlib-devel libzstd-devel

yum install -y mysql-devel

yum install -y Percona-Server-devel-57

yum install -y mariadb-devel
wget https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz

tar -xzvf mydumper-0.9.1.tar.gz

cd mydumper-0.9.1 && cmake . && make

chmod a+x mydumper myloader

cp mydumper myloader /usr/local/bin/

三、mydumper参数介绍

mydumper 和 myloader 是相对应的一组可执行程序,二者的作用分别是导出数据与导入数据。

## mydumper --help

Usage:
  mydumper [OPTION?] multi-threaded MySQL dumping

Help Options:
  -?, --help                  Show help options

Application Options:
  -B, --database              Database to dump
  -T, --tables-list           Comma delimited table list to dump (does not exclude regex option)
  -O, --omit-from-file        File containing a list of database.table entries to skip, one per line (skips before applying regex option)
  -o, --outputdir             Directory to output files to
  -s, --statement-size        Attempted size of INSERT statement in bytes, default 1000000
  -r, --rows                  Try to split tables into chunks of this many rows. This option turns off --chunk-filesize
  -F, --chunk-filesize        Split tables into chunks of this output file size. This value is in MB
  -c, --compress              Compress output files
  -e, --build-empty-files     Build dump files even if no data available from table
  -x, --regex                 Regular expression for 'db.table' matching
  -i, --ignore-engines        Comma delimited list of storage engines to ignore
  -N, --insert-ignore         Dump rows with INSERT IGNORE
  -m, --no-schemas            Do not dump table schemas with the data
  -d, --no-data               Do not dump table data
  -G, --triggers              Dump triggers
  -E, --events                Dump events
  -R, --routines              Dump stored procedures and functions
  -W, --no-views              Do not dump VIEWs
  -k, --no-locks              Do not execute the temporary shared read lock.  WARNING: This will cause inconsistent backups
  --no-backup-locks           Do not use Percona backup locks
  --less-locking              Minimize locking time on InnoDB tables.
  -l, --long-query-guard      Set long query timer in seconds, default 60
  -K, --kill-long-queries     Kill long running queries (instead of aborting)
  -D, --daemon                Enable daemon mode
  -I, --snapshot-interval     Interval between each dump snapshot (in minutes), requires --daemon, default 60
  -L, --logfile               Log file name to use, by default stdout is used
  --tz-utc                    SET TIME_ZONE='+00:00' at top of dump to allow dumping of TIMESTAMP data when a server has data in different time zones or data is being moved between servers with different time zones, defaults to on use --skip-tz-utc to disable.
  --skip-tz-utc               
  --use-savepoints            Use savepoints to reduce metadata locking issues, needs SUPER privilege
  --success-on-1146           Not increment error count and Warning instead of Critical in case of table doesn't exist
  --lock-all-tables           Use LOCK TABLE for all, instead of FTWRL
  -U, --updated-since         Use Update_time to dump only tables updated in the last U days
  --trx-consistency-only      Transactional consistency only
  --complete-insert           Use complete INSERT statements that include column names
  -h, --host                  The host to connect to
  -u, --user                  Username with the necessary privileges
  -p, --password              User password
  -a, --ask-password          Prompt For User password
  -P, --port                  TCP/IP port to connect to
  -S, --socket                UNIX domain socket file to use for connection
  -t, --threads               Number of threads to use, default 4
  -C, --compress-protocol     Use compression on the MySQL connection
  -V, --version               Show the program version and exit
  -v, --verbose               Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2
  --defaults-file             Use a specific defaults file

四、myloader参数介绍

#  myloader --help

Usage:
  myloader [OPTION?] multi-threaded MySQL loader

Help Options:
  -?, --help                        Show help options

Application Options:
  -d, --directory                   Directory of the dump to import
  -q, --queries-per-transaction     Number of queries per transaction, default 1000
  -o, --overwrite-tables            Drop tables if they already exist
  -B, --database                    An alternative database to restore into
  -s, --source-db                   Database to restore
  -e, --enable-binlog               Enable binary logging of the restore data
  -h, --host                        The host to connect to
  -u, --user                        Username with the necessary privileges
  -p, --password                    User password
  -a, --ask-password                Prompt For User password
  -P, --port                        TCP/IP port to connect to
  -S, --socket                      UNIX domain socket file to use for connection
  -t, --threads                     Number of threads to use, default 4
  -C, --compress-protocol           Use compression on the MySQL connection
  -V, --version                     Show the program version and exit
  -v, --verbose                     Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2
  --defaults-file                   Use a specific defaults file

五、使用例子

       这里是我根据自己的环境优化的备份和还原常用参数

## cat backupdata.sh

#!/bin/bash

## 备份源库数据
copydata() {
mydumper -u 源库用户  -p '源库密码' -h 源库IP  -P 3306 --regex '^(?!(mysql|sys|information_schema|performance_schema|test))' -D -E -R -G -C -c  -t 4   -F 1 -s 4000000 -v 2 -l 360 --logfile log.log  -o data
}

# 还原到目标库
restore() {
nohup myloader -u 目标库用户  -p '目标库密码' -h 127.0.0.1  -P 3306  -C -t 4 -o  -v 2 --directory data/0 &
}

# 由于我的mydumper安装在目标库上,所有目标库IP 使用 127.0.0.1 

copydata
restore
-D 守护进程方式运行mydumper
-E 备份事件
-R

备份存储和函数 

-G 备份触发器
-C 在MySQL连接上使用压缩
-c 压缩输出文件
-t 要使用的线程数,默认值为4
-F 将表拆分为此输出文件大小的块。此值以MB为单位
-s INSERT语句的尝试大小(以字节为单位),默认值为1000000
-v 输出的详细性,0=无提示,1=错误,2=警告,3=信息,默认值2
-l 以秒为单位设置长查询计时器,默认值为60
--logfile 要使用的日志文件名,默认情况下使用stdout

-o

(--outputdir)

mydumper的-o表示:要将文件输出到的目录

-o

(--overwrite-tables)文章来源地址https://www.toymoban.com/news/detail-484040.html

myloader的-o表示:删除表(如果它们已经存在)
--directory 要导入的转储目录,即mydumper备份的文件位置

到了这里,关于MySQL多线程备份工具mydumper的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • oracle超详细语法和备份工具

    查看当前连接数据库的用户 查看数据库当前连接数 查看用户下的表 查看指定用户拥有的表 用户切换 解锁用户 新建用户 修改用户密码 删除用户 赋予用户所有权限 查看用户使用时间限制 查询密码有效时长 查看所有用户密码到期日 查看指定用户的过期时间 设置当前用户密

    2024年02月11日
    浏览(37)
  • 第87讲:XtraBackup备份工具的核心技术要点及全库备份、恢复案例

    XtraBackup是Percona公司开源的一款MySQL InnoDB(包括XtraDB,MyISAM)数据库备份工具,基于InnoDB的崩溃恢复功能,由于支持不锁表的在线物理热备而被广泛应用于生产环境。 XBK备份恢复原理: XtraBackup备份执行的瞬间,会立即触发checkpoint机制,将已提交事务的脏页数据从内存刷新到

    2024年02月02日
    浏览(40)
  • 开源数据备份工具 Duplicati

    使用 Duplicati + 腾讯云 COS,完美备份我的服务器数据。 我有两台腾讯云的服务器,一台部署了博客,一台部署了一些个人项目,虽说云服务器很稳定,基本不会发生丢失数据的问题,但我个人之前经历过数据丢失,俗话说一朝被蛇咬十年怕井绳,所以一直在尝试把博客和项目

    2024年02月09日
    浏览(35)
  • SinoDB备份恢复工具之dbexport/dbimport

            dbexport和 dbimport是两个简单的备份恢复实用程序,无需任何提前配置即可运行。这两个实用程序可以在不同平台的SinoDB数据库服务器之间迁移数据,可以使用它们备份和还原小型数据库。   dbexport以文本格式导出数据库中所有对象的模式脚本和表数据文件。在将

    2024年04月14日
    浏览(44)
  • 跨平台数据备份工具之restic详解

    Restic 是一款 GO 语言开发的开源免费且快速、高效和安全的跨平台备份工具。Restic 使用加密技术来保证你的数据安全性和完整性,可以将本地数据加密后传输到指定的存储。 Restic 同样支持增量备份,可随时备份和恢复备份。Restic 支持大多数主流操作系统,比如:Linux、macO

    2024年02月21日
    浏览(54)
  • Robocopy:Windows 平台上强大的安全备份工具及使用教程

    自 Windows Vista 以来,Robocopy 已成为 Windows 标准配置的一部分。 该工具因其稳健性和可靠性而受到系统管理员和 IT 专业人员的高度评价。 通常可以在 Windows 10 上使用 Robocopy 成功完成对其他工具来说难以承受或导致错误消息的复制项目。如果您对 Robocopy 还不了解,那就和一

    2024年02月04日
    浏览(41)
  • SQ工具|9|数据安全|ArcMap自动保存|ArcMap自动备份插件

    可解决在作业过程中停电、软件闪退等一系列问题导致的ArcMap自动退出而未来得及保存数据造成的数据丢失的问题 一、自动保存 在 开启编辑 的状态下,设置保存周期,状态选择开启点击确认即可开启自动保存任务(提示框位于右下角)    当一个保存周期内数据未变化时,

    2024年02月13日
    浏览(36)
  • 保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

    Borg 的优势是 高效: BorgBackup 会将文件按数据块去重,只有改动的数据块才会被备份。 一个 25 GiB 的虚拟机磁盘文件,只改动了 1 GiB,那就只会新增备份这 1 GiB 的数据; 高速: 核心算法使用 C 编译,使用缓存快速跳过未改动过的文件以加快备份速度; 加密: 数据默认是

    2024年02月05日
    浏览(52)
  • 【Linux】Rsync远程同步及备份工具(Rsync简介、Rsync安装、rsync认证方式)

    rsync(Remote synchronization)是Liunx/Unix下的一个 远程数据同步工具 。 它可通过LAN/WAN(局域网/广域网) 快速同步多台主机间的文件和目录 ,并适当利用rsync算法(差分编码)以减少数据的传输。 rsync算法并不是每一次都整份传输,而是 只传输两个文件的不同部分 ,因此其传输

    2024年02月13日
    浏览(39)
  • 云备份客户端——客户端整体设计框架以及实用类工具实现

    客户端要实现的功能和服务端相比相对简单,客户端要实现的功能是 自动对指定文件中的文件进行备份,也就是定时对指定文件进行扫描,根据文件信息判断文件,符合要求(新文件或者被修改过的文件)进行上传 因此我们客户端大概需要实现下面三个模块 数据管理模块:

    2024年02月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包