mysql innobackupex 物理備份
本次環境為centos6,在下載安裝包
本次實驗下載安裝為
wget
warning: percona-xtrabackup-2.3.4-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
error: Failed dependencies:
libev.so.4()(64bit) is needed by percona-xtrabackup-2.3.4-1.el6.x86_64
發現缺依賴包。。。。
解決:
yum install libev -y
再次安裝:
[root@mysqlslave soft]# rpm -ivh percona-xtrabackup-2.3.4-1.el6.x86_64.rpm
warning: percona-xtrabackup-2.3.4-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ########################################### [100%]
1:percona-xtrabackup ########################################### [100%]
安裝成功,並檢視版本
[root@mysqlslave soft]# innobackupex -version
innobackupex version 2.3.4 Linux (x86_64) (revision id: e80c779)
一、備份
1.1、建立全備份集
innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --port=3306 --user=root --password=123456 --socket=/usr/local/mysql/mysql.sock /data/backup/full
引數解釋:
--defaults-file 啟動mysql的引數檔案
--host 主機名稱可以備份遠端伺服器
--port mysql的埠號
--user 備份使用者名稱
--password 備份使用者密碼
--socket 啟動mysql的socket檔案
以下是mysql innobackupex 物理備份並備份日誌的指令碼
#!/bin/bash
cd /data/backup/full/
c=`pwd`
innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --port=3306 --user=root --password=123456 --socket=/usr/local/mysql/mysql.sock $c
a=`echo $?`
echo $a
b=`ls -l | grep '^d'|awk -F ":" '{print$2}'|awk -F " " '{print$2}'`
echo $b
cd $c
if [ $a == 0 ];then
innobackupex --use-memory=500m --apply-log $b
echo -e "\033[32m ################################################ \033[0m"
echo -e "\033[32m #### BackUp Sucessed ##### \033[0m"
echo -e "\033[32m ################################################ \033[0m"
tar -zcvf $b.tar $b
rm -rf $b
else
echo -e "\033[41;37m ############################################# \033[0m"
echo -e "\033[41;37m #### BackUp Failed #### \033[0m"
echo -e "\033[41;37m ############################################# \033[0m"
echo "backup failed"
fi
1.2 增量備份
增量備份首先也需要一個全量的備份。
例子:
例如:
星期一 星期二 星期三
全備 增量 增量
全備 備份星期一 備份星期二
與星期二差異 與星期三差異
備份子目錄需要手工建立。
mkdir /data/backup/{mon,tue,wed}
全備(星期一):星期一需要做一個0級備份,也就是全備份
innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 /data/backup/mon
增量備份(星期二):星期二做一個與0級備份之間相差的增量備份
innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 --incremental /data/backup/tue/ --incremental-basedir=/data/backup/mon/2016-04-20_19-50-34
增量備份(星期三):星期三與星期二之間相差的增量備份
innobackupex --defaults-file=/etc/my.cnf --host 10.20.20.13 --user=root --password=123456 --incremental /data/backup/wed/ --incremental-basedir=/data/backup/tue/2016-04-20_19-53-41/
1.3檢視備份資訊
可以透過以下檔案檢視備份資訊。
[root@drbd-01 backup]# cat /data/backup/full/2015-07-28_12-10-45/xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 3194902
last_lsn = 3194902
compact = 0
[root@drbd-01 backup]# cat /data/backup/001/xtrabackup_checkpoints
backup_type = incremental
from_lsn = 3194902
to_lsn = 3198776
last_lsn = 3198776
compact = 0
[root@drbd-01 backup]# cat /data/backup/002/xtrabackup_checkpoints
backup_type = incremental
from_lsn = 3198776
to_lsn = 3202726
last_lsn = 3202726
compact = 0
上面看到,可以透過lsn看到這3個備份集關係。二 恢復
刪除原來的mysql資料目錄/data/mysql,建立新的資料庫目錄,用來模擬資料庫損壞。
[root@drbd-01 data]#rm –rf /data/mysql
[root@drbd-01 data]# cd /data/
[root@drbd-01 data]# mkdir mysql
[root@drbd-01 data]# chown mysql.mysql mysql
完全恢復;執行恢復操作
[root@drbd-01 ~]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/full/2015-07-28_12-10-45/
修改許可權及屬主:chown -R mysql:mysql /data/mysql
增量恢復:
1.1先Prepare完整備份集(應用日誌)
[root@mysqlslave mysql]#innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_18-12-50 --use-memory=500m --user=root --password=1234562.2 Prepare增量備份集
2.2.1 合併第一個增量備份到完全備份裡面
星期二增量備份追加到星期一的備份(0級備份)[root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_19-50-34/ --incremental-dir=/data/backup/er/2016-04-20_19-53-41/ --user=root --password=123456
星期三增量備份追加到星期一的備份(0級備份)
[root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/yi/2016-04-20_19-50-34/ --incremental-dir=/data/backup/san/2016-04-20_19-53-55/ --user=root --password=123456
將整個備份追加到星期一,再將星期一的備份prepare 一下
[root@mysqlslave mysql]# innobackupex --apply-log /data/backup/yi/2016-04-20_19-50-34/ --use-memory=500m --user=root --password=123456
恢復操作:
最終恢復的操作和完成恢復一樣
[root@mysqlslave mysql]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/yi/2016-04-20_19-50-34
修改許可權:
chown mysql:mysql -R *
驗證資料是否恢復
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30345407/viewspace-2087736/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql innobackupex備份指令碼MySql指令碼
- innobackupex 備份MySQL資料庫MySql資料庫
- mysql innobackupex增量備份恢復MySql
- 【MySql】innobackupex 增量備份的bugMySql
- 使用innobackupex備份mysql資料庫MySql資料庫
- 【MySql】innobackupex增量備份和恢復MySql
- MySQL增量備份的指令碼(innobackupex)MySql指令碼
- MySQL innobackupex全量備份恢復MySql
- 【MySql】innobackupex 增量備份和恢復MySql
- mysql之 Innobackupex(全備+增量)備份恢復MySql
- 【Mysql】innobackupex備份還原單個庫MySql
- Mysql備份與恢復(1)---物理備份MySql
- MySQL · 物理備份 · Percona XtraBackup 備份原理MySql
- innobackupex遠端備份
- innobackupex備份指令碼指令碼
- mysql innobackupex xtrabackup 大資料量 備份 還原MySql大資料
- Mysql備份系列(3)--innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- innobackupex全備份流程圖流程圖
- Mysql 物理備份工具xtrabackup的使用MySql
- innobackupex備份恢復實戰
- 使用innobackupex線上增量備份和再增量備份及恢復mysql資料庫MySql資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- MySQL · 答疑解惑 · 物理備份死鎖分析MySql
- innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- 透過innobackupex實現對MySQL的增量備份與還原MySql
- innobackupex命令備份全過程圖解圖解
- 利用innobackupex備份集恢復指定庫
- MySQL 非常規恢復與物理備份恢復MySql
- 使用 xtrabackup 進行MySQL資料庫物理備份MySql資料庫
- Oracle 聯機備份 離線備份 物理備份 恢復Oracle
- Xtrabackup之innobackupex備份恢復詳解薦
- Oracle裡邏輯備份、物理備份、Rman備份的區別Oracle
- mysqldump與innobackupex備份過程你知多少(一)MySql
- mysqldump與innobackupex備份過程你知多少(二)MySql
- mysqldump與innobackupex備份過程你知多少(三)MySql
- INNOBACKUPEX的全備和增量備份恢復學習筆記筆記
- Oracle物理冷備份指令碼Oracle指令碼
- mysql之 innobackupex備份+binlog日誌的完全恢復(命令列執行模式)MySql命令列模式