九、MySQL备份工具使用

一、逻辑备份工具

官网:MySQL Data Dumper in Launchpad

特性:

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

1、mydumper

安装

rpm安装:
[root@rabbitmq_2 mydumper]# wget https://github.com/mydumper/mydumper/releases/download/v0.14.5-3/mydumper-0.14.5-3.el7.x86_64.rpm
[root@rabbitmq_2 mydumper]# rpm -ivh mydumper-0.14.5-3.el7.x86_64.rpm

默认安装在 /usr/local/bin
或者
1、安装相关依赖
[root@rabbitmq_2 tmp]# yum install -y cmake gcc gcc-c++ git make
[root@rabbitmq_2 tmp]# yum install -y glib2-devel openssl-devel pcre-devel zlib-devel libzstd-devel
[root@rabbitmq_2 tmp]# yum install -y mysql-devel
[root@rabbitmq_2 tmp]# yum remove mysql-community-libs 因为之前安装了这个 可能冲突 需要卸载
[root@rabbitmq_2 tmp]# yum install -y Percona-Server-devel-57
[root@rabbitmq_2 tmp]# yum install -y mariadb-devel
2、下载 编译 安装
[root@rabbitmq_2 tmp]# wget https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz
[root@rabbitmq_2 tmp]# tar -xzvf mydumper-0.9.1.tar.gz
[root@rabbitmq_2 tmp]# cd mydumper-0.9.1 && cmake . && make && make install

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

mydumper 备份常用参数:

-h, --host                  连接的主机名
-u, --user                  备份所使用的用户
-p 
-P, --port                  端口
-B, --database              要备份的数据库,不指定则备份所有库
-T, --tables-list           需要备份的表,名字用逗号隔开
-o, --outputdir             备份文件输出的目录
-c, --compress              压缩输出文件
-m, --no-schemas            不备份表结构
-d, --no-data               不备份表数据
-G, --triggers              备份触发器
-E, --events                备份事件(job)
-R, --routines              备份存储过程和函数


-s, --statement-size        生成的insert语句的字节数,默认1000000
-r, --rows                  将表按行分块时,指定的块行数,指定这个选项会关闭 --chunk-filesize
-F, --chunk-filesize        将表按大小分块时,指定的块大小,单位是 MB
-e, --build-empty-files     如果表数据是空,还是产生一个空文件(默认无数据则只有表结构文件)
-x, --regex                 是同正则表达式匹配 'db.table'
-b, --binlogs               导出binlog
-S, --socket                使用socket通信时的socket文件
-t, --threads               开启的备份线程数,默认是4

2、myloader

myloader 数据恢复参数:

-d, --directory                   备份文件的文件夹
-q, --queries-per-transaction     每次事物执行的查询数量,默认是1000
-o, --overwrite-tables            如果要恢复的表存在,则先drop掉该表,使用该参数,需要备份时候要备份表结构
-B, --database                    需要还原的数据库
-e, --enable-binlog               启用还原数据的二进制日志
-h, --host                        主机
-u, --user                        还原的用户
-p,   密码
-P, --port                        端口
-S, --socket                      socket文件
-t, --threads                     还原所使用的线程数,默认是4
-C, --compress-protocol           压缩协议
-V, --version                     显示版本
-v, --verbose                     输出模式, 0 = silent, 1 = errors, 2 = warnings,3 = info, 默认为2

示例:

每个数据库的CREATE DATABASE语句均为<database_name>-schema-create.sql

schema文件存储为<database_name>.<table>-schema.sql

数据文件存储为<database_name>.<table>.sql

视图存储为<database_name>.<table>-schema-view.sql

存储的例程、触发器和事件存储为<database_name>-schema-post.sql

1、备份test库并压缩
[root@rabbitmq_2 tmp]# mydumper -u root -p 123456 -h 192.168.134.132 -B test -c -o /tmp/01

[root@rabbitmq_2 01]# ll
总用量 76
-rw-r--r--. 1 root root 177 11月 20 10:49 metadata
-rw-r--r--. 1 root root 192 11月 20 10:49 test.a-schema.sql.gz
-rw-r--r--. 1 root root 140 11月 20 10:49 test.a.sql.gz
-rw-r--r--. 1 root root 338 11月 20 10:49 test.checksums-schema.sql.gz
-rw-r--r--. 1 root root 191 11月 20 10:49 test.checksums.sql.gz
-rw-r--r--. 1 root root 198 11月 20 10:49 test.course-schema.sql.gz
-rw-r--r--. 1 root root 175 11月 20 10:49 test.course.sql.gz
-rw-r--r--. 1 root root 279 11月 20 10:49 test.heartbeat-schema.sql.gz
-rw-r--r--. 1 root root 191 11月 20 10:49 test.heartbeat.sql.gz
-rw-r--r--. 1 root root 345 11月 20 10:49 test.sales-schema.sql.gz
-rw-r--r--. 1 root root 131 11月 20 10:49 test-schema-create.sql.gz
-rw-r--r--. 1 root root 200 11月 20 10:49 test.teacherCard-schema.sql.gz
-rw-r--r--. 1 root root 164 11月 20 10:49 test.teacherCard.sql.gz
-rw-r--r--. 1 root root 200 11月 20 10:49 test.teacher-schema.sql.gz
-rw-r--r--. 1 root root 163 11月 20 10:49 test.teacher.sql.gz
-rw-r--r--. 1 root root 221 11月 20 10:49 test.test-schema.sql.gz
-rw-r--r--. 1 root root 265 11月 20 10:49 test.test.sql.gz
-rw-r--r--. 1 root root 335 11月 20 10:49 test.t_stu-schema.sql.gz
-rw-r--r--. 1 root root 209 11月 20 10:49 test.t_stu.sql.gz

2、只备份表结构: -d
[root@rabbitmq_2 tmp]# mydumper -h 192.168.134.132 -u root -p 123456 -d -B a -o /aa

3、不备份表结构,只备份表数据: -m
[root@rabbitmq_2 tmp]# mydumper -h 192.168.134.132 -u root -p 123456 -m -B a -o /aa

4、还原数据库
[root@rabbitmq_2 tmp]# myloader -u root -p '123456' -h 192.168.134.132 -B test -d /tmp/01/

5、#还原tableA表
[root@rabbitmq_2 tmp]# myloader -u root -p 123456' -h 192.168.134.132 -B test -o a -d /tmp/01/

二、物理备份工具

Percona Xtrabackup

1、下载安装

官网:
https://www.percona.com/downloads

直接使用rpm 安装就行
先下载依赖包
[root@rabbitmq_2 Xtrabackup]# yum install libaio libev perl-DBD-MySQL perl-Digest-MD5 zstd
[root@rabbitmq_2 Xtrabackup]# rpm -ivh  percona-xtrabackup-80-8.0.23-16.1.el7.x86_64.rpm

 常用参数

--host     指定主机
--user     指定用户名
--password    指定密码
--port     指定端口
--databases     指定数据库
--compress:在备份过程中对备份文件进行压缩。
--compress-thread=8 :指定在压缩式的线程数
--stream=xbstream :开启流式压缩 数据以 xbstream 格式进行流式输出
--parallel=4 :设置并行操作的线程数
--backup:指示进行全量备份操作。
--target-dir  指定目的目录

--prepare:指示进行准备操作,用于恢复备份数据之前的准备工作。
--copy-back:将备份数据拷贝回数据库目录,用于恢复操作。
--target-dir=DIR:指定备份的目标目录。
--incremental-basedir=DIR:指定增量备份的基准目录。




--slave-info:在备份时包括从库信息。

--decompress:在恢复过程中对备份文件进行解压缩。
--encrypt=AES256:使用AES256算法对备份文件进行加密。
--decrypt:在恢复过程中对备份文件进行解密。
--incremental    创建增量备份
--incremental-basedir   指定包含完全备份的目录
--incremental-dir      指定包含增量备份的目录    
--apply-log        对备份进行预处理操作

示例:

全量备份:
[root@rabbitmq_2 backup]# xtrabackup --defaults-file=/etc/my.cnf --host=localhost --user=root --password=xxxxxx --backup --compress --target-dir=/tmp/backup/
增量备份:
# xtrabackup --defaults-file=数据库my.cnf配置文件绝对路径 --user=用户名 --password=密码 --no-lock --backup --compress=lz4 --target-dir=增量备份路径 --incremental-basedir=上一次的备份路径

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁华依在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值