使用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
#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
相关文章推荐
- 使用mysql备份工具innobackupex将本地数据直接备份到远端服务器、备份、恢复操作实例
- 使用mysql备份工具innobackupex将本地数据 直接恢复 到远端服务器数据目录操作实例
- mysqlimport工具的使用帮助文档(mysql导入csv数据,mysql备份数据恢复)
- 使用mysqldump对MySQL的数据进行备份的操作教程
- mysql 利用二进制日志来进行恢复数据的实例操作
- Android 使用VCard数据类型 异步进行联系人备份与恢复操作
- java操作mysql进行数据备份及恢复操作
- 使用mysql自带工具mysqldump进行全库备份以及source命令恢复数据库
- 使用mysqldump对MySQL的数据进行备份的操作教程
- 使用innobackupex进行mysql备份
- MYSQL数据备份与恢复的相关操作命令
- 使用mysqlbinlog工具进行基于位置或时间点的数据恢复
- MySQL(用户管理,常用sql语句,数据库备份恢复,MySQL调优,恢复误操作数据)
- mysql中如何使用linux命令对数据库进行备份与恢复?
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复
- 使用mysql的binlog恢复误操作(update|delete)的数据
- vs2010操作本地access数据库和远程操作Mysql数据的应用实例
- Linux下实现MySQL数据备份和恢复的命令使用全攻略
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复