使用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的數據本地備份恢復工作;
轉載于:https://blog.51cto.com/michaelkang/1217094
總結
以上是生活随笔為你收集整理的使用mysql备份工具innobackupex进行本地数据备份、恢复操作实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android:installLocat
- 下一篇: 因为喜欢,所以选择它