innobackex工具有份mysql數據

innobackex工具有份mysql數據

xtrbackup只能用於備份innodb引擎的數據庫,而innobackex 既能夠備份innodb引擎的數據庫,也能夠備份myisam引擎的數據庫。備份時也可分爲全量備份和增量備份mysql

1、安裝innobackex

使用官網的yum源,方便安裝linux

[root@axiang-02 ~]# rpm -ivh https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
[root@axiang-02 ~]# yum install percona-xtrabackup

2、全量備份mysql

2.一、建立並受權備份用戶sql

咱們能夠直接受權all權限,可是不符合安全原則數據庫

mysql -uroot -paxianglinux
grant reload,lock tables,replication client on *.* to 'backupuser'@'localhost'  identified  by 'axianglinux';
flush  privileges;
  • 權限爲reload,lock tables,replication client

2.二、所有備份安全

[root@axiang-02 ~]# mkdir /data/backup
[root@axiang-02 ~]# innobackupex --defaults-file=/etc/my.cnf --user=backupuser  --password='axianglinux' -S /tmp/mysql.sock /data/backup
  • defaults-file=/etc/my.cnf指定配置文件位置是爲了得到datadir位置
  • 備份完成後,會在指定的保存目錄中生成一個時間戳目錄

如圖,備份失敗也會出現app

3、全量備份恢復

3.一、模擬誤刪除MySQL數據目錄故障ide

[root@axiang-02 ~]# /etc/init.d/mysqld  stop  
[root@axiang-02 ~]# mv /data/mysql /data/mysql.bak
[root@axiang-02 ~]# mkdir /data/mysql
[root@axiang-02 ~]# chown -R mysql:mysql /data/mysql

若是權限沒給 -R 則恢復後沒法開啓MySQL服務。如上圖工具

3.二、恢復code

[root@axiang-02 ~]# ls /data/backup/
2017-08-28_20-47-25

[root@axiang-02 ~]# innobackupex  --use-memory=512M  --apply-log /data/backup/2017-08-28_20-47-25/
[root@axiang-02 ~]# innobackupex  --defaults-file=/etc/my.cnf  --copy-back /data/backup/2017-08-28_20-47-25/
[root@axiang-02 ~]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

4、增量備份

以前咱們已經進行了全量備份,通過操做,一段時間後從新全量備份的話,須要耗費的資源較多,這時咱們就可使用增量備份了。blog

兩次增量備份

[root@axiang-02 ~]# rm -rf /data/backup/*
[root@axiang-02 ~]# innobackupex --defaults-file=/etc/my.cnf --user=backupuser  --password='axianglinux' -S /tmp/mysql.sock /data/backup
[root@axiang-02 ~]# mysql -uroot -paxianglinux -e 'drop database bbs;'
[root@axiang-02 ~]# innobackupex  --defaults-file=/etc/my.cnf  --user=backupuser  --password='axianglinux'  -S /tmp/mysql.sock  --incremental  /data/backup  --incremental-basedir=/data/backup/2017-08-28_23-18-20
[root@axiang-02 ~]# mysql -uroot -paxianglinux -e 'drop database blog;'
[root@axiang-02 ~]# innobackupex  --defaults-file=/etc/my.cnf  --user=backupuser  --password='axianglinux'  -S /tmp/mysql.sock  --incremental  /data/backup  --incremental-basedir=/data/backup/2017-08-28_23-24-32

在每一個備份的時間戳目錄下面都有一個檢查點。能夠肯定恢復順序

5、順序恢復

模擬故障,移除原有數據

[root@axiang-02 ~]# /etc/init.d/mysqld stop
[root@axiang-02 ~]# mv /data/mysql /data/mysql.backup
[root@axiang-02 ~]# mkdir /data/mysql
[root@axiang-02 ~]# chown -R mysql:mysql /data/mysql

恢復

innobackupex --apply-log --redo-only /data/backup/2017-08-28_23-18-20
innobackupex --apply-log --redo-only /data/backup/2017-08-28_23-18-20 --incremental-dir=/data/backup/2017-08-28_23-24-32
innobackupex --apply-log /data/backup/2017-08-28_23-18-20 --incremental-dir=/data/backup/2017-08-28_23-27-39
innobackupex --copy-back /data/backup/2017-08-28_23-18-20/

chown -R mysql:mysql /data/mysql
/etc/init.d/mysqld start
相關文章
相關標籤/搜索