MySQL-mydumper使用

对于innodb表备份时,只有在获取表结构,事件,触发器,视图等的元数据时会加全局读锁FTWRL,
获取完就释放锁,备份数据时是使用一致性快照进行备份的,期间不加锁。
1.编译安装

[root@localhost ~]# yum -y  install glib2-devel mysql-devel zlib-devel pcre-devel zlib gcc-c++ gcc cmake
[root@localhost ~]# wget https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz
[root@localhost ~]# tar zxf mydumper-0.9.1.tar.gz
[root@localhost ~]# cd mydumper-0.9.1/
[root@localhost mydumper-0.9.1]# cmake .
[root@localhost mydumper-0.9.1]# make
[root@localhost mydumper-0.9.1]# make install

# 安装完成后生成两个二进制文件 mydumper 和 myloader 位于 /usr/local/bin 目录下

[root@localhost bin]# ls /usr/local/bin/
mydumper  myloader

2.直接安装 rpm 包

# rpm包地址:https://github.com/maxbube/mydumper/releases 请根据自己的系统类型选择下载版本

[root@localhost ~]# yum install https://github.com/maxbube/mydumper/releases/download/v0.10.7-2/mydumper-0.10.7-2.el7.x86_64.rpm

# 安装完成后生成两个二进制文件 mydumper 和 myloader 位于 /usr/bin 目录下

3.参数:

--user	-u	备份所使用的用户
--pasword	-p	连接所用的用户密码
--host	-h	MySQL 服务端地址
--port	-P	MySQL 端口号
--threads	-t	开启的备份线程数,默认是4
--database	-B	要备份的数据库,不指定则备份所有库
--tables-list	-T	需要备份的表,名字用逗号隔开
--outputdir	-o	备份文件输出的目录
--statement-size	-s	生成的insert语句的字节数,默认1000000
--rows	-r	将表按行分割,指定这个选项会关闭 --chunk-filesize
--chunk-filesize	-F	将表按大小分割时,指定分割大小,单位是 MB
--regex	-x	使用正则表达式匹配’db.table’ --regex '^(?!(sys|sysdb))'
--compress	-c	压缩输出文件
--ignore-engines	-i	忽略的存储引擎
--no-schemas	-m	不备份表结构
--no-data	-d	不备份表数据
--triggers	-G	备份触发器
--events	-E	备份事件
--routines	-R	备份存储过程和函数
--no-views	-W	不备份视图
--no-locks	-k	不使用临时共享只读锁,使用这个选项会造成数据不一致
--daemon	-D	启用守护进程模式,守护进程模式以某个间隔不间断对数据库进行备份
--where		只导出选择的数据

4.举例

# 备份全部数据库 
mydumper -u root -p 123456 -o /mysql_backup/all/   #全量备份 会备份 mysql、sys 系统库及其他自建库

# 备份全部数据库 包含触发器、事件、存储过程及函数
mydumper -u root -p 123456 -G -R -E -o /mysql_backup/all2/

# 备份指定库
mydumper -u root -p 123456 -G -R -E -B db1 -o /mysql_backup/db1/

# 使用正则 排除系统库
mydumper -u root -p 123456 -G -R -E --regex '^(?!(mysql|sys))' -o /mysql_backup/all3

# 备份指定表
mydumper -u root -p 123456 -B db1 -T tb1,tb2 -o /mysql_backup/tb/

# 只备份表结构
mydumper -u root -p 123456 -d -B db1 -o /mysql_backup/nodata/

# 只备份表数据
mydumper -u root -p 123456 -m -B db1 -o /mysql_backup/noschema/

# 压缩备份某个表
mydumper -u root -p 123456 -B db1 -T tb1 -c -o /mysql_backup/compress/

也可以参考参考mysql优化金字塔书籍

posted @   Enzo_Ocean  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示