您的位置:首页 > 数据库 > MySQL

使用mysql备份工具innobackupex进行本地数据备份、恢复操作实例

2013-06-06 11:05 1211 查看
innobackupex 支持所有mysql引擎数据备份恢复安装配置方法及原理介绍,访问下面链接 http://michaelkang.blog.51cto.com/1553154/1216826 1.测试环境介绍

#mysql数据目录
/data/3306/data

#备份文件存放目录
/data/3306/backup

#mysql配置文件位置
/data/3306/my.cnf

#备份前首先所需要建立一个备份所需的目录
mkdir -p /data/3306/backup

mysql 版本 :
[root@slave2 3306]# mysql -V
mysql Ver 14.14 Distrib 5.5.25, for Linux (x86_64) using EditLine wrapper

系统版本:
more /etc/redhat-release
CentOS release 6.2 (Final)

内核版本:
[root@slave2 3306]# uname -a
Linux slave2 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux

step:1

首先查看现有数据库文件;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| ptmind_common |
+--------------------+
5 rows in set (0.00 sec)

step:2(测试全备)
在此基础上执行数据库全备

innobackupex --defaults-file=/data/3306/my.cnf --user=root /data/3306/backup/ 2>/data/3306/backup/mysqlbackup$(date +%Y-%m-%d_%H_%M_%S).log

2>/data/3306/backup/mysqlbackup$(date +%Y-%m-%d_%H_%M_%S).log是 将备份过程中的输出信息保存到mysqlbackup.log中,以下测试步骤中如果想备份输出日志打印到日志也可以添加此选项。

step:3
检查备份文件是否生成

[root@slave2 backup]# pwd
/data/3306/backup

[root@slave2 backup]# ll
total 8
drwxr-xr-x 6 root root 4096 Jun 4 19:04 2013-06-04_18-43-19 #全备文件夹

内容如下:
[root@slave2 backup]# ll 2013-06-04_18-43-19
total 1536564
-rw-r--r-- 1 root root 262 Jun 4 18:43 backup-my.cnf
-rw-r----- 1 root root 1570766848 Jun 4 19:04 ibdata1
drwxr-xr-x 2 root root 4096 Jun 4 19:04 kk
drwxr-xr-x 2 root root 4096 Jun 4 18:45 mysql
drwxr-xr-x 2 root root 4096 Jun 4 18:45 performance_schema
drwxr-xr-x 2 root root 540672 Jun 4 19:04 ptmind_common
-rw-r--r-- 1 root root 13 Jun 4 18:45 xtrabackup_binary
-rw-r--r-- 1 root root 25 Jun 4 19:04 xtrabackup_binlog_info
-rw-r----- 1 root root 95 Jun 4 19:04 xtrabackup_checkpoints
-rw-r----- 1 root root 2097152 Jun 4 19:01 xtrabackup_logfile

step:4(测试增量备份)
首先在在数据库新建一个数据库,并导入一点数据;

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| kk |
| mysql |
| performance_schema |
| ptmind_common |
+--------------------+
5 rows in set (0.00 sec)

mysql> use kk;
Database changed
mysql> show tables; #查看一下数据库表
+-----------------------------+
| Tables_in_kk |
+-----------------------------+
| Copy_(ref_backup_conf)_of_2 |
| Copy_of_ref_backup_conf |
| ref_backup_conf |
+-----------------------------+
3 rows in set (0.00 sec)

step:5 执行增量备份

Innobackupex针对某个库增量备份:
增量备份仅针对InnoDB这类支持事务的引擎,对于MyISAM等引擎,则仍然是全备了。

innobackupex --defaults-file=/data/3306/my.cnf --incremental --incremental-basedir=/data/3306/backup/2013-06-04_18-43-19 /data/3306/backup/ 2>/data/3306/backup/mysqlbackup$(date +%Y-%m-%d_%H_%M_%S).log

--incremental-basedir=/data/3306/backup/2013-06-04_18-43-19 #制定增量备份基于全亮备份文件;

step:6
验证备份文件是否生成
[root@slave2 backup]# du -sh *
1.5G 2013-06-04_18-43-19
17M 2013-06-04_18-53-33 #新生成增量备份文件,从文件大小可以看出只备份少量文件;

文件内容如下:
[root@slave2 backup]# ll 2013-06-04_18-53-33/
total 4752
-rw-r--r-- 1 root root 262 Jun 4 18:53 backup-my.cnf
-rw-r----- 1 root root 2195456 Jun 4 18:53 ibdata1.delta
-rw-r----- 1 root root 44 Jun 4 18:53 ibdata1.meta
drwxr-xr-x 2 root root 4096 Jun 4 18:53 kk
drwxr-xr-x 2 root root 4096 Jun 4 18:54 mysql
drwxr-xr-x 2 root root 4096 Jun 4 18:54 performance_schema
drwxr-xr-x 2 root root 540672 Jun 4 18:54 ptmind_common
-rw-r--r-- 1 root root 13 Jun 4 18:54 xtrabackup_binary
-rw-r--r-- 1 root root 25 Jun 4 18:53 xtrabackup_binlog_info
-rw-r----- 1 root root 102 Jun 4 18:54 xtrabackup_checkpoints
-rw-r----- 1 root root 2097152 Jun 4 19:04 xtrabackup_logfile

开始数据恢复测试;

step:7
删除/data/下文件夹,模拟数据丢失;

rm -rf /data/3306/data/*

step:8
首先全备恢复
innobackupex --defaults-file=/data/3306/my.cnf --user=root --apply-log --redo-only /data/3306/backup/2013-06-04_18-43-19

step:9
增量备份恢复
innobackupex --defaults-file=/data/3306/my.cnf --user=root --apply-log --redo-only /data/3306/backup/2013-06-04_18-43-19 --incremental-dir=/data/3306/backup/2013-06-04_18-53-33

step: 10
copy备份数据文件到原来数据位置

innobackupex-1.5.1 --defaults-file=/data/3306/my.cnf --user=root --copy-back /data/3306/backup/2013-06-04_18-43-19/

step:11
修改数据文件权限为mysql

chown mysql.mysql -R data
step:12
验证数据库已经恢复

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| kk | #新建一个KK的库
| mysql |
| performance_schema |
| ptmind_common |
+--------------------+
5 rows in set (0.00 sec)
ok,经过以上步骤顺利完成了使用innobackupex的数据本地备份恢复工作;

本文出自 “康建华” 博客,请务必保留此出处http://michaelkang.blog.51cto.com/1553154/1217094
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: