安装Percona XtraBackup,mysql 进行物理备份

本文介绍如何在Ubuntu上安装PerconaXtraBackup进行数据库物理备份,涉及全量备份、增量备份过程,以及备份前的准备和恢复步骤。
摘要由CSDN通过智能技术生成

安装Percona XtraBackup

使用Percona XtraBackup进行数据库物理备份。

安装环境 : Ubuntu linux 操作系统

官网说明:Installing Percona XtraBackup on Debian and Ubuntu - Percona XtraBackup

  1. Ubuntu只支持7.0以上版本。
  2. 下载deb 下载地址:https://repo.percona.com/apt/percona-release_latest.jessie_all.deb
  3. 安装
dpkg -i percona-release_latest.jessie_all.deb
apt-get update
apt-get install percona-xtrabackup-24

 测试安装是否成功

Xtrabackup --help

创建备份用户,并给最小权限

CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 'tykjtykj';

GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost'

FLUSH PRIVILEGES;

备份与恢复

备份

1. 准备数据 

新建数据库 backtestdb 表 user并插入数据


 

2. 全量备份

xtrabackup --backup --user=bkpuser --password=**** --host=127.0.0.1 --target-dir=/root/mysqlbackup
# 这里要加 --host 参数,否则会走socket连接,而不是tcp。
# 备份完成会生成以日期命名的文件夹如 2019-11-22_20-02-02
## --password 替换成自己的密码

该命令常用选项

--host     指定主机
--user     指定用户名
--password    指定密码
--port     指定端口
--databases     指定数据库
--incremental    创建增量备份
--incremental-basedir   指定包含完全备份的目录
--incremental-dir      指定包含增量备份的目录   
--apply-log        对备份进行预处理操作       

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

--redo-only      不回滚未提交事务,增量备份需要使用。
--copy-back     恢复备份目
--defaults-file    默认配置文件,my.cnf 
--parallel    此选项指定创建备份时用于同时复制多个数据文件的线程数。默认值为1(即无并发传输)  


3. 新建一张表作为增量备份标志1

创建表record


4. 进行第一次增量备份

xtrabackup --backup --user=bkpuser --password=**** --host=127.0.0.1 --target-dir=/root/mysqbackup-inc1 --incremental-basedir=/root/mysqlbackup

# --incremental-basedir 增量备份基础目录(上一次备份也就是全量备份的目录)
## --password 替换成自己的密码


5. record表新增数据,作为第二次增量备份的标志


 

6. 进行第二次增量备份

xtrabackup --backup --user=bkpuser --password=**** --host=127.0.0.1 --target-dir=/root/mysqbackup-inc2 --incremental-basedir=/root/mysqlbackup

## --password 替换成自己的密码


7. 至此,共进行三次备份,备份目录分别为

1)/root/mysqlbackup
2)/root/mysqlbackup-inc1
3)/root/mysqlbackup-inc2

准备备份prepare

1. 关闭数据库并移除数据文件,创建新的数据库目录

service mysql stop
mv /usr/local/mysql/data/ /usr/local/mysql/data_bak/
mkdir /usr/local/mysql/data/
chown mysql /usr/local/mysql/data/
chmod 755 /usr/local/mysql/data/

2. 在全备目录上准备,重放已提交的事务

xtrabackup --prepare --apply-log-only --user=bkpuser --password=**** --host=127.0.0.1 --target-dir=/root/mysqlbackup

## --password 替换成自己的密码

3. 备份一prepare

xtrabackup --prepare --apply-log-only --user=bkpuser --password=**** --host=127.0.0.1 --target-dir=/root/mysqlbackup --incremental-dir=/root/mysqlbackup_inc1

## --password 替换成自己的密码

4. 备份二prepare

xtrabackup –prepare --user=bkpuser --password=**** --host=127.0.0.1 --target-dir=/root/mysqlbackup --incremental-dir=/root/mysqlbackup_inc2

# 最后一次备份不需要加--apply-log-only

## --password 替换成自己的密码

恢复备份

xtrabackup --copy-back --user=bkpuser --password=**** --host=127.0.0.1 --target-dir=/root/mysqlbackup
## ## --password 替换成自己的密码
## 不要忘记给恢复的目录授权,否则会启动失败
chown -R mysql /usr/local/mysql/data
chmod -R 777 /usr/local/mysql/data

启动mysql,查看数据库内容,跟回复前一致。

 

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

幽梦还乡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值