xtrabackup如何備份mysql數據庫

參考:http://mingxiao.blog.51cto.com/8124243/1623634mysql


一 全備sql

1.命令安裝:數據庫

yum install -y gnupg
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm(64位源)
rpm -Uhv https://www.percona.com/redir/downloads/percona-release/percona-release-0.0-1.i386.rpm(32位源)
yum install -y percona-xtrabackup


[root@aliyun-112 ~]# xtrabackup -vbash

xtrabackup version 2.3.3 based on MySQL server 5.6.24 Linux (x86_64) (revision id: 525ca7d)app

2.命令功能:ide

對InnoDB作數據備份的工具,支持在線熱備份工具

3.命令參數:ui

--database=sundong  單獨對hu數據庫作備份 ,如果不添加此參數那就那就是對全庫作備份 spa

--stream =tar   打包格式 目前只支持 tar and xbstream日誌

2>/var/backups/hu.log 輸出信息寫入日誌中 

1> /var/backups/hu.tar.gz 打包壓縮存儲到該文件中  

--incremental-dir=/var/backups/plus/  增量備份目錄

--copy-back選項的命令從備份目錄拷貝數據,索引,日誌到my.cnf文   件裏規定的初始位置

--apply-log選項的命令是準備在一個備份上啓動mysql服務

--port=PORT

4.命令實例:

備份並打包壓縮 (只備份hu這個數據庫)

innobackupex  --defaults-file=/home/DB/mysql/my.cnf   --user=root --password=xxxxx  --database=hu  --stream=tar  /var/backups/ 2>/var/backups/hu.log   | gzip 1> /var/backups/hu.tar.gz

整庫備份。(一次性備份全部的數據庫)

  1. innobackupex --defaults-file=/etc/my.cnf    --user=root --password=cdqd  /var/backups/ 

(root爲數據庫用戶名,cdqd爲數據庫密碼,/etc/my.cnf爲mysql配置文件所在位置,/var/backups/爲備份文件存儲目錄)

恢復

 首先停掉數據庫,而後刪除數據庫目錄下的全部數據庫文件。

首先寫日誌文件,而後恢復,以下。(注:2010-04-17_22-19-30是自動生成的以備份時間命名的文件夾,恢復時根據狀況進行選擇)

  1. # innobackupex  --defaults-file=/etc/my.cnf  --apply-log  /var/backups/2010-04-17_22-19-30 (寫日誌)

  2. # innobackupex   --defaults-file=/etc/my.cnf  --copy-back   /var/backups/2010-04-17_22-19-30 (恢復)


而後去你的備份目錄查看是否有備份的文件,而後還須要更改權限(這步我是cd到原數據庫目錄下進行的)

#chown -R mysql:mysql *


重啓數據庫,開恢復是否成功。

二 增量備份與恢復

在這裏爲了表述清楚咱們作兩次增量備份。

爲student表插入數據,爲增量備份作基礎。

mysql>use hu;
mysql>create table student (`id` int(4),`name` char(40),`values`char(40)) 
mysql> INSERT INTO student (Name) VALUES ('XiaoHei3'),('XiaoHei4');

徹底備份:

innobackupex  --defaults-file=/etc/my.cnf  --user=root --password=123456   /data/backup

備份完成以後產生這個

2015-03-23_23-19-24/  文件夾,這是徹底備份的目錄


第一次增量備份,--incremental-basedir=指的是徹底備份所在的目錄。/backup是備份的目錄

INSERT INTO student (Name) VALUES ('XiaoHei1'),('XiaoHei2');


[root@localhost /]#

 
innobackupex --incremental  /backup --incremental-basedir=/backup/2015-03-23_23-19-24/


執行完這個以後會產生一個2015-03-23_23-21-49/  ,第二次增量備份指定它就能夠


mysql>

 INSERT INTO student (Name) VALUES ('XiaoHei5'),('XiaoHei6');


第二次增量備份,--incremental-basedir=指的是第上一次增量備份所在的目錄,這裏指第一次,以此類推。

[root@localhost /]# 
innobackupex --incremental /backup --incremental-basedir=/backup/2015-03-23_23-21-49/

 

步驟三:準備徹底備份和增量備份
增量備份完成,下面要準備徹底備份和增量備份。
--redo-only後面是徹底備份所在目錄。
--incremental-dir指增量備份所在目錄,如有多個,按時間前後執行屢次。

[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/
[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/ --incremental-dir=/backup/2015-03-23_23-21-49/    --incremental-dir指向第一次增量備份目錄
[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/ --incremental-dir=/backup/2015-03-23_23-22-44/  --incremental-dir指向第二次增量備份目錄



步驟四:模擬mysqld故障
[root@localhost /]# service mysqld stop
Shutting down MySQL. SUCCESS! 

[root@localhost /]# rm -rf /mydata/data/*

步驟五:恢復數據

[root@localhost data]# innobackupex --copy-back /backup/2015-03-23_23-19-24/ (第一次全備份的目錄)

而後進入到備份目錄查看是否有備份文件存在


注意:恢復數據後,在重啓mysqld前,須要修改數據目錄權限,默認是root用戶,root組,須要改成mysql用戶,mysql組。
[root@localhost data]# chown -R mysql.mysql ./*

service mysqld start

mysql> use hu;

Database changed
mysql> select * from student;
+----+-------------------+---------------+
| ID | Name              | Course        |
+----+-------------------+---------------+
|  1 | xiaoming          | English       |

|  2 | xiaohong          | Kuihuabaodian |

| 16 | XiaoHei1          |               |
| 17 | XiaoHei2          |               |
| 18 | XiaoHei3          |               |
| 19 | XiaoHei4          |               |
| 20 | XiaoHei5          |               |
| 21 | XiaoHei6          |               |
+----+-------------------+---------------+
9 rows in set (0.00 sec)

能夠看到全部數據都完整無缺,至此,備份恢復操做都已完成。

相關文章
相關標籤/搜索