当前位置: 首页 > 工具软件 > mydumper > 使用案例 >

mydumper基本使用

巫新知
2023-12-01

简介

Mydumper是一个用于备份MySQL数据库服务器的工具,开发人员主要来自MySQL,Facebook,SkySQL公司。比MySQL随附的mysqldump工具要快得多。它还具有在备份同时从远程服务器获取二进制日志的功能。

优点:

  • 并行性
  • 更容易管理输出(会输出表结构对应的sql,以及表数据,易于查看和解析)
  • 一致性,维护所有线程的快照,提供准确的主从日志位置
  • 可管理型,支持PCRE指定数据库和表,或者排除指定数据库和表

安装

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选项

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-querieskill掉长查询
-D, --daemon守护进程模式
-L, --logfile日志文件
-h, --hostMySQL主机
-u, --user用户名
-p, --password密码
-P, --port端口
-S, --socket指定套接字文件
-a, --ask-password提示输入用户密码,不直接在命令行输入

myloader选项

myloader选项描述
-d, --directory指定存储备份的目录
-o, --overwrite-tables如果表存在,则drop掉
-B, --database指定恢复的数据库
-h, --hostMySQL主机
-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 将忽略testmysql数据库::

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);

参考文档

 类似资料: