mysql异地备份xtrabackup_使用xtrabackup进行mysql备份

# 使用xtrabackup进行mysql备份

> xtrabackup的备份和恢复速度要比mysqldump快很多, 而且可以进行增量备份, 备份好帮手。 本文中的mysql实例都是使用docker创建的

## 安装

``` linux

# 安装源

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

# 安装xtrabackup, 如果是mysql8.0需要安装percona-xtrabackup-80

yum install percona-xtrabackup-24

```

## 全量备份

``` linux

xtrabackup --defaults-file=/mnt/d1/my.cnf \ #目标数据库的配置文件, 没有就随便写一个

--host=192.168.1.65 \

--user=root \

--port=3307 \

--password=123456 \

--backup \

--target-dir=/mnt/d1/backups \ #备份文件生成目录

--datadir=/mnt/d1/docker/deploy/mysql-big-query-2/data #需要备份的数据库data所在目录

# 这一步一定是在需要备份的数据库所属的服务器上执行

```

``` linux

# 看下backup目录下面的数据

$ ll

总用量 196668

-rw-r----- 1 root root 487 4月 26 11:40 backup-my.cnf

-rw-r----- 1 root root 731 4月 26 11:40 ib_buffer_pool

-rw-r----- 1 root root 79691776 4月 26 21:15 ibdata1

-rw-r----- 1 root root 50331648 4月 26 21:15 ib_logfile0

-rw-r----- 1 root root 50331648 4月 26 21:15 ib_logfile1

-rw-r----- 1 root root 12582912 4月 26 21:15 ibtmp1

drwxr-x--- 2 root root 4096 4月 26 11:40 mysql

drwxr-x--- 2 root root 4096 4月 26 11:40 mysql@002dbig@002dquery@002d2

drwxr-x--- 2 root root 4096 4月 26 11:40 performance_schema

drwxr-x--- 2 root root 16384 4月 26 11:40 phone_md5

drwxr-x--- 2 root root 12288 4月 26 11:40 sys

-rw-r----- 1 root root 150 4月 26 21:15 xtrabackup_checkpoints

-rw-r----- 1 root root 569 4月 26 11:40 xtrabackup_info

-rw-r----- 1 root root 8388608 4月 26 21:15 xtrabackup_logfile

-rw-r--r-- 1 root root 1 4月 26 21:15 xtrabackup_master_key_id

# 可以将备份文件拷贝到本地服务器进行恢复

```

``` linux

# 恢复操作

# 先执行prepare才能进行恢复

xtrabackup --prepare \

--target-dir=/mnt/d1/backups

# 将数据拷贝到目标数据库目录下

xtrabackup --copy-back \

--target-dir=/mnt/d1/backups \

--datadir=/data/docker/mysql-big-query-2/data

# 需要注意

# 1. 目标数据库先创建好

# 2. 需要删除目标数据库data下面的所有文件

# 3. 先停掉数据库才能进行恢复

```

## 增量备份

``` linux

# 增量备份

xtrabackup --defaults-file=/data/docker/mysql-huiyu/conf/my.cnf \

--host=192.168.1.150 --user=root --port=3306 --password=123456 \

--backup \

--target-dir=/mnt/d2/mysql-huiyu-backup/incr1 \ #增量备份保存目录

--datadir=/data/docker/mysql-huiyu/data \ #目标数据库目录

--incremental-basedir=/mnt/d2/mysql-huiyu-backup/base #全量备份目录

# 恢复准备

xtrabackup --prepare --apply-log-only --target-dir=/mnt/d2/mysql-huiyu-backup/base

xtrabackup --prepare --apply-log-only --target-dir=/mnt/d2/mysql-huiyu-backup/base --incremental-dir=/mnt/d2/mysql-huiyu-backup/incr1

xtrabackup --prepare --target-dir=/mnt/d2/mysql-huiyu-backup/base --incremental-dir=/mnt/d2/mysql-huiyu-backup/incr2

# 拷贝回去

xtrabackup --copy-back \

--target-dir=/mnt/d2/mysql-huiyu-backup/base \

--datadir=/mnt/d2/docker/mysql-huiyu-backup/data

```

## 参考文章

[官方介绍](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/full_backup.html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值