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

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的数据本地备份恢复工作;


你可能感兴趣的:(mysql,备份,InnoDB,恢复,innobackupex)