使用XtraBackup实用工具创建MySQL备份

Percona XtraBackup 是用于MySQL数据库的热备份实用程序 

数据备份期间不会发生表锁定,您的系统将继续运行而没有任何限制。

XtraBackup 2.4 可以 在MySQL 5.11、5.5、5.6和5.7服务器上以及 在  具有 XtraDB的MySQL的Percona服务器 上 备份InnoDB,  XtraDB 和 MyISAM表 

要使用 MySQL 8.x  ,应使用 XtraBackup8.x。 本文仅讨论 XtraBackup 2.4。

XtraBackup的主要优点  是,该实用程序既适用于备份高负载的服务器,又适用于事务少的系统。

如果MySQL数据库的总容量很大(数十GB),则标准mysqldump实用程序  将不允许您快速创建备份,并且还原转储将花费很长时间。

安装

 从apt  Percona仓库 安装 XtraBackup

依次运行以下命令:

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb

sudo apt-get update 

sudo apt-get install percona-xtrabackup-24

2安装后,运行命令 xtrabackup -v既然如此,重要的是要确保该实用程序在服务器上正确运行。结果,类似的内容将显示在屏幕上:

xtrabackup: recognized server arguments: — datadir=/var/lib/mysql — tmpdir=/tmp — server-id=1 — logbin=/var/log/mysql/mysql-bin.log — innodbbufferpoolsize=16384M — innodbfilepertable=1 — innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup version 2.4.20 based on MySQL server 5.7.26 Linux (x8664) (revision id: c8b4056)

,  

XtraBackup :

  • MySQL.

  •  datadir

  •  target-dir .

datadir?

datadir — ,  MySQL  . , . Linux  /var/lib/mysql.

target-dir ?

target-dir — , .

, :

  • RELOAD LOCK TABLES

  • REPLICATION CLIENT

  • CREATE TABLESPACE

  • PROCESS

  • SUPER

  • CREATE

  • INSERT

  • SELECT

 

XtraBackup , , MySQL.

?

, ,  /etc/my.cnf.

XtraBackup  [mysqld]  [xtrabackup]  MySQL. , .

,  datadir   InnoDB XtraBackup  .

XtraBackup ,  [mysqld],  [xtrabackup]. , .

my.cnf. . ,  [xtrabackup]  my.cnf —  target_dir, , . .

 my.cnf:

[xtrabackup]
target_dir = /data/backups/mysql/

:

#!/bin/bash

#     
rm -rf /mysql/backup

# C 
xtrabackup --user=xtrabackup \
 --password=xxxx_SECRET_xxxx \
 --backup \
 --target-dir=/mysql/backup

#     
xtrabackup --prepare --target-dir=/mysql/backup

#  
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backup

?

() , :

rm -rf /mysql/backup.

,  XtraBackup   /mysql/backup/:

xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup

MySQL xtrabackup . target-dir , .

!

:

xtrabackup --prepare --target-dir=/mysql/backup

/mysql/backup , . 

, .  xtrabackup --prepare --target-dir=/mysql/backup .

. , . .

, — , :

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs$(date % F% H% M% S)».gz /mysql/backup

 

. .

.  datadir.

datadir?

.

1

 XtraBackup.  --copy-bak

 datadir  :

xtrabackup --copy-back --target-dir=/mysql/backup

2

,  XtraBackup.

, —  datadir.  cp  rsync.

,  datadir.

, :

  • MySQL .

  • 清空datadir文件夹  或将其内容移动到另一个位置。datadir目录  必须为空。

数据传输到 datadir后, 即可启动MySQL服务器。

所用材料

Percona XtraBackup的正式文档




All Articles