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)
驗證兩端數據一致!數據恢復成功!