innobackupex 支持所有mysql引擎数据备份恢复安装配置方法及原理介绍,访问下面链接
http://michaelkang.blog.51cto.com/1553154/1216826
测试环境介绍:
#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
测试环境介绍:
本地IP:192.168.1.199
远端服务器IP:192.168.1.200
step:1
模拟对端数据丢失,删除远端服务器/data/3306/data目录下所有数据
rm -rf /data/3306/data/*
step:2
查看本地数据库信息
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| ptmind |
| ptmind_common |
+--------------------+
5 rows in set (0.29 sec)
mysql> use ptmind_common;
Database changed
mysql> show tables;
+------------------------------------+
| Tables_in_ptmind_common |
+------------------------------------+
| dtl_full_pv_detail |
中间省略|
| tst_pn_detail |
| tst_pv_detail |
+------------------------------------+
60 rows in set (0.00 sec)
step :3
开始往对端进行数据恢复;
[root@slave1 ~]# innobackupex --defaults-file=/data/3306/my.cnf --parallel=4 --stream=tar /data/3306/data | ssh [email protected] "tar -ixf - -C /data/3306/data"
出现如下结果为数据恢复完成
IMPORTANT: Please check that the backup run completes successfully.
At the end of a successful backup run innobackupex
prints "completed OK!".
mysql主从情况下可以使用如下方法进行复制;
将master\Slave 199的MySQL数据直接远程热备份到Slave 200
innobackupex --defaults-file=/data/3306/my.cnf --parallel=4 --slave-info --safe-slave-backup --stream=tar /data/3306/data| ssh [email protected] "tar -ixf - -C /data/3306/data"
注:这里备份使用--slave-info可以将Master的binary log的文件名和偏移位置记录到xtrabackup_slave_info文件中.而使用--safe-slave-backup会暂停Slave的SQL线程直到备份结束,这样可以确保一致性的复制状态.
step:4
确认远端服务器数据已经生成;
[root@slave2 data]# pwd
/data/3306/data
[root@slave2 data]# ll
total 2322868
-rw-r--r-- 1 mysql mysql 262 Jun 4 18:37 backup-my.cnf
-rw-rw---- 1 mysql mysql 1570766848 Jun 4 18:44 ibdata1
-rw-r--r-- 1 mysql mysql 268435456 Jun 4 18:45 ib_logfile0
-rw-r--r-- 1 mysql mysql 268435456 Jun 4 18:44 ib_logfile1
-rw-r--r-- 1 mysql mysql 268435456 Jun 4 18:44 ib_logfile2
drwxr-xr-x 2 mysql mysql 4096 Jun 4 18:40 mysql
-rw-rw---- 1 mysql mysql 107 Jun 4 18:45 mysql-bin.000001
-rw-rw---- 1 mysql mysql 19 Jun 4 18:45 mysql-bin.index
drwxr-xr-x 2 mysql mysql 4096 Jun 4 18:40 performance_schema
drwxr-xr-x 2 mysql mysql 4096 Jun 4 18:40 ptmind
drwxr-xr-x 2 mysql mysql 393216 Jun 4 18:40 ptmind_common
-rw-rw---- 1 mysql mysql 166 Jun 4 18:45 slave2-slow.log
-rw-r--r-- 1 mysql mysql 13 Jun 4 18:40 xtrabackup_binary
-rw-r--r-- 1 mysql mysql 23 Jun 4 18:38 xtrabackup_binlog_info
-rw-r--r-- 1 mysql mysql 29 Jun 4 18:44 xtrabackup_binlog_pos_innodb
-rw-rw---- 1 mysql mysql 95 Jun 4 18:44 xtrabackup_checkpoints
-rw-rw---- 1 mysql mysql 2097152 Jun 4 18:44 xtrabackup_logfile
数据已经生成
step:5
应用初始化新copy到本地的日志文件;
innobackupex --apply-log /data/3306/data
可选参数:
指定使用内存
--use-memory=4G
对xtrabackup的--prepare参数的封装
--apply-log
step: 6
修改文件权限
cd /data/3306/
chown -R mysql:mysql data
step: 7
重启数据库验证数据库运行状态正常;
service mysql restart
step :9
验证对端数据库数据完整性
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| ptmind |
| ptmind_common |
+--------------------+
5 rows in set (0.29 sec)
mysql> use ptmind_common;
Database changed
mysql> show tables;
+------------------------------------+
| Tables_in_ptmind_common |
+------------------------------------+
| dtl_full_pv_detail |
中间省略|
| tst_pn_detail |
| tst_pv_detail |
+------------------------------------+
60 rows in set (0.00 sec)
验证两端数据一致!数据恢复成功!