使用innobackupex備份mysql資料庫

stonebox1122發表於2017-06-21

innobackupex類似於Oracle的rman,可以進行熱備,需要在伺服器端執行,是進行mysql備份最常用的工具之一。


1、安裝工具
[root@my ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.4 (Santiago)
[root@my ~]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm


2、建立備份專用賬戶並授予許可權
(root@localhost)[(none)] create user xtrabk@'localhost' identified by 'xtrabk';
Query OK, 0 rows affected (0.00 sec)

(root@localhost)[(none)] grant reload,process,lock tables,replication client,super on *.* to xtrabk@'localhost';
Query OK, 0 rows affected (0.00 sec)

(root@localhost)[(none)] flush privileges;
Query OK, 0 rows affected (0.00 sec)


3、備份整個資料庫
[root@my ~]# innobackupex --defaults-file=/etc/my.cnf --user=xtrabk --password=xtrabk /var/lib/mysql/backup/innobackupex/

將備份檔案放在了自動按照時間日期生成的目錄下面。
[root@my ~]# ll -rth /var/lib/mysql/backup/innobackupex/2017-06-20_16-33-30/
total 77M
-rw-r----- 1 root root  76M Jun 20 16:33 ibdata1
drwxr-x--- 2 root root 4.0K Jun 20 16:33 test
drwxr-x--- 2 root root 4.0K Jun 20 16:33 performance_schema
drwxr-x--- 2 root root 4.0K Jun 20 16:33 mysql
drwxr-x--- 2 root root  12K Jun 20 16:33 sys
drwxr-x--- 2 root root 4.0K Jun 20 16:33 5ienet
-rw-r----- 1 root root   21 Jun 20 16:33 xtrabackup_binlog_info
-rw-r----- 1 root root 2.5K Jun 20 16:33 xtrabackup_logfile
-rw-r----- 1 root root  119 Jun 20 16:33 xtrabackup_checkpoints
-rw-r----- 1 root root  504 Jun 20 16:33 ib_buffer_pool
-rw-r----- 1 root root  435 Jun 20 16:33 backup-my.cnf
-rw-r----- 1 root root  524 Jun 20 16:33 xtrabackup_info
其中xtrabackup_checkpoints檔案記錄InnoDB的Log Sequence Number,可以對InnoDB引擎表進行增量備份。


4、進行增量備份
先執行一些操作:
(root@localhost)[test] insert into test1 values('bb');
Query OK, 1 row affected (0.17 sec)

(root@localhost)[test] select * from test1;
+------+
| v1   |
+------+
| aa   |
| bb   |
+------+
2 rows in set (0.00 sec)

(root@localhost)[test] create table test4 as select * from test1;
Query OK, 2 rows affected (0.81 sec)
Records: 2  Duplicates: 0  Warnings: 0

(root@localhost)[test] select * from test4;
+------+
| v1   |
+------+
| aa   |
| bb   |
+------+
2 rows in set (0.02 sec)

再進行增量備份:
[root@my ~]# innobackupex --defaults-file=/etc/my.cnf --user=xtrabk --password=xtrabk --incremental --incremental_basedir=/var/lib/mysql/backup/innobackupex/2017-06-20_16-33-30/ /var/lib/mysql/backup/innobackupex/

輸入日誌有出現:
xtrabackup: Transaction log of lsn (2338925034) to (2338925043) was copied.
表示增量備份從lsn2338925034到2338925043。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28536251/viewspace-2141029/,如需轉載,請註明出處,否則將追究法律責任。

相關文章