Mydumper是一个用于备份MySQL数据库服务器的工具,开发人员主要来自MySQL,Facebook,SkySQL公司。比MySQL随附的mysqldump工具要快得多。它还具有在备份同时从远程服务器获取二进制日志的功能。
优点:
github地址: https://github.com/maxbube/mydumper
rpm包下载地址:https://github.com/maxbube/mydumper/releases/
把rpm包上传到/usr/local/src目录下
cd /usr/local/src/
yum install mydumper-0.9.5-2.el7.x86_64.rpm -y
mydumper选项 | 描述 |
---|---|
-?, --help | 查看帮助 |
-B, --database | 指定要备份的数据库名称 |
-T, --tables-list | 制定备份的表,用逗号分割 |
-o, --outputdir | 指定备份目录 |
-c, --compress | 压缩输出文件 |
-e, --build-empty-files | 即使表没有数据,还是产生一个空文件 |
-x, --regex | 支持正则表达式 |
-i, --ignore-engines | 忽略的存储引擎,用逗号分隔 |
-m, --no-schemas | 不到处表结构 |
-d, --no-data | 不备份数据 |
-G, --triggers | 备份触发器 |
-E, --events | 备份事件 |
-R, --routines | 备份存储过程 |
-t, --threads | 指定线程数,默认4 |
-l, --long-query-guard | 长查询,默认60s |
-K, --kill-long-queries | kill掉长查询 |
-D, --daemon | 守护进程模式 |
-L, --logfile | 日志文件 |
-h, --host | MySQL主机 |
-u, --user | 用户名 |
-p, --password | 密码 |
-P, --port | 端口 |
-S, --socket | 指定套接字文件 |
-a, --ask-password | 提示输入用户密码,不直接在命令行输入 |
myloader选项 | 描述 |
---|---|
-d, --directory | 指定存储备份的目录 |
-o, --overwrite-tables | 如果表存在,则drop掉 |
-B, --database | 指定恢复的数据库 |
-h, --host | MySQL主机 |
-u, --user | 用户名 |
-p, --password | 密码 |
-a, --ask-password | 提示输入用户密码,不直接在命令行输入 |
-P, --port | 端口 |
-S, --socket | 指定套接字文件 |
-t, --threads | 指定线程数,默认4 |
示例1:mydumper将使用守护进程模式,每半小时创建一个快照并记录到输出文件
mydumper --daemon --snapshot-interval=30 --logfile=dump.log
示例2:mydumper 将忽略test
和mysql
数据库::
mydumper --regex '^(?!(mysql|test))'
示例3:将恢复备份并覆盖任何现有表
myloader --directory=export-20110614-094953 --overwrite-tables --user=root
示例4:备份t1数据库到/backup目录下
mydumper -u root -h 127.0.0.1 -p '' -B t1 -o /backup/
示例5:从/backup目录还原t1数据库
myloader -u root -h 127.0.0.1 -p '' -o -d /backup/ -B t1;
mydumper会生成多个文件。
metadata
的文件。这包含备份的开始和结束时间以及主二进制日志位置,示例如下
[root@localhost backup]# cat metadata
Started dump at: 2019-06-12 04:38:22
SHOW MASTER STATUS:
Log: binlog.000003
Pos: 727
GTID:678bedcf-8cbe-11e9-b03e-000c29372c6d:1-3
Finished dump at: 2019-06-12 04:38:22
DB-schema-create.sql
文件会存放建库语句
[root@localhost backup]# cat t1-schema-create.sql
CREATE DATABASE `t1` /*!40100 DEFAULT CHARACTER SET latin1 */;
DB-schema.sql
文件存放建表语句
[root@localhost backup]# cat t1.t-schema.sql
/*!40101 SET NAMES binary*/;
/*!40014 SET FOREIGN_KEY_CHECKS=0*/;
/*!40103 SET TIME_ZONE='+00:00' */;
CREATE TABLE `t` (
`i` int(11) NOT NULL,
PRIMARY KEY (`i`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
DB.TABLE.sql
存放该TABLE逻辑备份的语句
[root@localhost backup]# cat t1.t.sql
/*!40101 SET NAMES binary*/;
/*!40014 SET FOREIGN_KEY_CHECKS=0*/;
/*!40103 SET TIME_ZONE='+00:00' */;
INSERT INTO `t` VALUES
(1),
(2);