网站首页 > 编程文章 正文
1.1 mydumper工具介绍与使用
mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具,备份方式为逻辑备份。它支持多线程,备份速度远高于原生态的mysqldump以及众多优异特性。因此该工具是DBA们的不二选择。
1.2 mydumper的特点
- 轻量级C语言写的
- 执行速度比mysqldump快10倍,多线程逻辑备份,生产的多个备份文件
- 事务性和非事务性表一致的快照(适用于0.2.2以上版本)
- 支持文件压缩,支持导出binlog,支持多线程恢复,支持将备份文件切块
- 多线程恢复(适用于0.2.1以上版本)
- 以守护进程的工作方式,定时快照和连续二进制日志(适用于0.5.0以上版本)
- 保证备份数据的一致性,
- 与mysqldump相同,备份时对 MyISAM 表示加FTWRL (FLUSH TABLES WITH READ LOCK), 会阻塞DML 语句
1.3 mydumper安装
github地址:https://github.com/maxbube/mydumper
安装
rpm安装
wget https://github.com/maxbube/mydumper/releases/download/v0.9.5/mydumper-0.9.5-2.el7.x86_64.rpm
rpm -ivh mydumper-0.9.5-2.el7.x86_64.rpm
?
或者
源码安装
yum -y install glib2-devel mysql-devel zlib-devel pcre-devel cmake gcc-c++ git
git clone https://github.com/maxbube/mydumper.git
cd mydumper
cmake .
make && make install
?
?
#测试安装可能会有以下报错:
报错一:
[root@ c6s02 mydumper]# mydumper -V
mydumper: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
?
#解决办法:
[root@ c6s02 ~]# find / -name libmysqlclient.so.18.1.0
/usr/local/mysql/lib/libmysqlclient.so.18.1.0 --#找到自己mysql数据库下的libmysqlclient.so.18.1.0并做软连接
/root/mysql-5.6.45/libmysql/libmysqlclient.so.18.1.0
?
#做软连接
[root@ c6s02 ~]# ln -sv /usr/local/mysql/lib/libmysqlclient.so.18.1.0 /lib64/libmysqlclient.so.18
?
报错二:
mydumper: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
?
wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz
tar -zxvf pcre-8.00.tar.gz
cd pcre-8.00
./configure --enable-utf8
make
make check
make install
?
#显示以下效果表示安装成功
[root@ c6s02 ~]# mydumper -V
mydumper 0.10.0, built against MySQL 5.6.45
1.4 mydumper语法及参数介绍
mydumper -u [USER] -p [PASSWORD] -h [HOST] -P [PORT] -t [THREADS] -b -c -B [DB] -o [directory]
注意:命令行之间要有空格 -u 用户名 -p 密码 之间必须有空格
-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
1.5 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
1.6 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指向该备份。
1.7 常用备份示例:
备份单个库
mydumper -u 用户名 -p 密码 -B 需要备份的库名 -o /tmp/bak
?
-B,需要备份的库 -o 输出文件的目录(备份输出指定的目录)
备份所有数据库
全库备份期间除了information_schema与performance_schema之外的库都会被备份
?
mydumper -u 用户名 -p 密码 -o /tmp/bak
-o 输出文件的目录(备份输出指定的目录)
备份单表
mydumper -u 用户名 -p 密码 -B 库名 -T 表名 -o /tmp/bak
?
-T 需要备份的表,多表用逗号分隔 -o指定输出备份文件路径
备份多表
mydumper -u 用户名 -p 密码 -B 库名 -T 表1,表2 -o /tmp/bak
?
当前目录自动生成备份日期时间文件夹,不指定-o参数及值时默认为:export-20150703-145806
?
mydumper -u 用户名 -p 密码 -B 数据库名字 -T 表名
不带表结构备份表
mydumper -u 用户名 -p 密码 -B 数据名字 -T 表名 -m
?
-m 不导出表结构
压缩备份及连接使用压缩协议(非本地备份时)
mydumper -u 用户名 -p 密码 -B 数据库名字 -o /tmp/bak -c -C
?
-c 压缩输出文件 -C 在mysql连接上使用压缩协议 -o 输出文件的目录(备份输出指定的目录)
备份特定表
mydumper -u 用户名 -p 密码 -B 数据库名字 --regex=actor* -o /tmp/bak
?
只备份以actor*开头的表
?
-x 正则表达式: 'db.table' --regex
过滤特定库,如本来不备份mysql及test库
mydumper -u 用户名 -p 密码 -B 数据库名字 --regex '^(?!(mysql|test))' -o /tmp/bak
基于空表产生表结构文件
mydumper -u 用户名 -p 密码 -B 数据库名字 -T 空表 -e -o /tmp/bak
?
-e 即使表没有数据,还是产生一个空文件
设置长查询的上限,如果存在比这个还长的查询则退出mydumper,也可以设置杀掉这个长查询
mydumper -u root -p pwd -B sakila --long-query-guard 200 --kill-long-queries
备份时输出详细更多日志
mydumper -u 用户名 -p 密码 -B 数据库名字 -T 空表 -v 3 -o /tmp/bak
?
-v 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info,详细输出 default 2
导出binlog,使用-b参数,会自动在导出目录生成binlog_snapshot文件夹及binlog
mydumper -u root -p pwd -P 3306 -b -o /tmp/bak
总结: mysql备份,备份数据库、备份数据表。恢复也是恢复数据库,恢复数据表。
猜你喜欢
- 2024-10-23 Ubuntu环境下MySQL卸载安装配置远程访问三步曲
- 2024-10-23 ubuntu 22 下qt5.15编译mysql驱动
- 2024-10-23 django开发笔记及如何利用pycharm发布到阿里云
- 2024-10-23 python连接mysql,使用mysqldb和mysqlclient、pymysql三者的异同
- 2024-10-23 Cowrie蜜罐部署教程(蜜罐一般部署在哪里)
- 2024-10-23 PHP 编程中最常见的错误,你犯过几个?
- 2024-10-23 「人脸识别实战一」系统架构设计(人脸识别架构图)
- 2024-10-23 ubuntu20.04 安装配置slurm-安装配置数据库
- 2024-10-23 Python 操作 MySQL 的5种方式(python连接mysql数据库增删改查)
- 2024-10-23 使用Ansible安装MySQL(ansible安装kubernetes)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)