Percona XtraBackup是由Percona公司开发的备份工具,主要有两个工具,一个是 XtraBackup,另一个是innobackupex。其中中innobackupex是对 XtraBackup封装,是一个perl脚本。本文操作相对比较简单,通过innobackupex将3306实例的数据进行备份,再恢复到3307实例上。同时也简单的介绍下通过这个备份恢复数据。
安装
Percona-xtrbackup可以使用二进制、源码、yum安装,本文主要使用yum安装,步骤如下:
yum install RedHat/0.1-3/percona-release-0.1-3.noarch.rpm
yum install percona-xtrabackup.x86_64
yum search percona
其他安装可以查看官网:
相关准备
创建备份目录
cd /
mkdir data
cd data
mkdir mkdir backup
在backup目录下,创建三个目录:mkdir {conf,incremental,full}
三个目录具体功能如下:
conf:存放自定义的my.cnf配置信息
full:存放首次全量备份数据
incremental:存放增量备份数据
备份my.cnf到conf目录
cp /etc/my.cnf /data/backup/conf/3306.cnf
cp /etc/my.cnf /data/backup/conf/3307.cnf
3306.cnf原样保存即可,3307.cnf需要进行修改,在[mysqld]节点下添加"datadir=/data/mysql/mysql_3307/data/"。以方便数据恢复时使用。
用XtraBackup实现MySQL的主从复制快速部署【主不锁表】
安装和使用 Percona 推出的 Xtrabackup 备份 MySQL
常用参数说明:
--user: mysql用户
--password: 用户密码
--defaults-file: 指定my.cnf文件路径,若不指定则读取mysql默认的my.cnf文件
--socket:mysql实例对应的socket文件
备份实操作
1. 全量备份
首次备份为全量备份,也是增量备份的基础。
innobackupex --user=root --password=123456 --socket=/tmp/mysql_3306.sock --defaults-file=/data/backup/conf/3306.cnf /data/backup/full/
首次将数据库的所有数据备份到/data/backup/full/目录,在/data/backup/full/ 目录下将生成一个当前时间戳的子目录,如图1。若要不生成时间戳的子目录,可以使用--no-timestamp参数,使其不自动生成时间戳的子目录,所以备份数据将存储在/data/backup/full/ 下。 全备只需指定用于备份的用户名、密码和备份路径即可,最后出现innobackupex: completed OK! 则代表备份成功。
图1
全备后的目录文件,如图2。
图2
mysql的data目录下的文件,如图3。
图3
可以对比图2、图3的目录文件,xtrabackup生成的文件有backup-my.cnf、xtrabackup_checkpoints、xtrabackup_info、xtrabackup_lofile。
文件说明:
backup-my.cnf: 主要是记录innobackupex中使用到Mysql参数。
# This MySQL options file was generated by innobackupex.
# The MySQL server
[mysqld]
innodb_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:12M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=50331648
innodb_page_size=16384
innodb_undo_directory=.
innodb_undo_tablespaces=0
xtrabackup_checkpoints: 记录备份类型及开始及结束的lsn位置。backup_type 有两种full-prepared (全备)、incremental (增备)。
backup_type = full-prepared
from_lsn = 0
to_lsn = 8234580547
last_lsn = 8234580547
compact = 0
xtrabackup_info: 记录mysql相关信息。
uuid = 3d090541-6649-11e4-bb2a-000c295bd3a3
name =
tool_name = innobackupex
tool_command = --user=root --password=... --incremental /data/backup/incremental/ --incremental-base=/data/backup/incremental/2014-11-07_14-24-54/ --defaults-file =/data/backup/conf/3306.cnf --socket=/tmp/mysql_3306.sock
tool_version = 1.5.1-xtrabackup
ibbackup_version = xtrabackup version 2.2.6 based on MySQL server 5.6.21 Linux (x86_64) (revision id: )
server_version = 5.6.21-log
start_time = 2014-11-07 14:41:52
end_time = 2014-11-07 14:42:27
lock_time = 2
binlog_pos =
innodb_from_lsn = 8234579864
innodb_to_lsn = 8234580547
partial = N
incremental = Y
format = file
compact = N
compressed = N
xtrabackup_logfile: xtrabackup自己的日志文件,新版本中不直接可见。