percona-xtrabackup備份示例完全備份和增量備份

[root@node3 dylan]# yum install percona-xtrabackup-2.3.2-1.el7.x86_64.rpm

[root@node3 dylan]# innobackupex --uer=root /backups/ ###全庫備份

[root@node3 dylan]# ls /backups/2017-08-10_13-34-47/

backup-my.cnf  hellodb  ibdata1  mysql  performance_schema  test  xtrabackup_binlog_info  xtrabackup_checkpoints  xtrabackup_info  xtrabackup_logfile

要恢復的主機同樣安裝starbackup

[root@node3 dylan]# scp -r /backups/2017-08-10_13-34-47/ [email protected]:/dylan

        ###複製備份文件至恢復主機

要恢復的主機上:

[root@localhost /]# mkdir backups

[root@localhost /]# mv /dylan/2017-08-10_13-34-47/ /backups/

[root@localhost /]# innobackupex  --apply-log /backups/2017-08-10_13-34-47/ ###整理操作

[root@localhost /]# systemctl stop mariadb.service ###未還原前不能啓動

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

[root@localhost /]# innobackupex --copy-back /backups/2017-08-10_13-34-47/ ###還原操作

[root@localhost /]# systemctl start mariadb.service ###啓動出錯

Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

[root@localhost /]# chown -R mysql.mysql /mydata/data/* ###更改數據屬組屬主

[root@localhost dylan]# ll -h  /mydata/data

總用量 115M

-rw-rw---- 1 mysql mysql  16K 8月  10 14:21 aria_log.00000001

-rw-rw---- 1 mysql mysql   52 8月  10 14:21 aria_log_control

drwx------ 2 mysql mysql 4.0K 8月  10 14:18 hellodb

-rw-r----- 1 mysql mysql  18M 8月  10 14:18 ibdata1

-rw-r----- 1 mysql mysql  48M 8月  10 14:18 ib_logfile0

-rw-r----- 1 mysql mysql  48M 8月  10 14:18 ib_logfile1

drwx------ 2 mysql mysql 4.0K 8月  10 14:18 mysql

-rw-rw---- 1 mysql mysql    0 8月  10 14:21 mysql-bin.index

drwx------ 2 mysql mysql 4.0K 8月  10 14:18 performance_schema

drwx------ 2 mysql mysql   42 8月  10 14:18 test

-rw-r----- 1 mysql mysql   25 8月  10 14:18 xtrabackup_binlog_pos_innodb

-rw-r----- 1 mysql mysql  455 8月  10 14:18 xtrabackup_info

[root@localhost dylan]# rm /mydata/data/ib_logfile* -f

[root@localhost /]# systemctl start mariadb.service ###至此完成完全備份




增量備份示例:

MariaDB [hellodb]> CREATE TABLE testtb(id int);

Query OK, 0 rows affected (0.07 sec)


MariaDB [hellodb]> INSERT INTO testtb VALUES (1),(10),(99);

Query OK, 3 rows affected (0.00 sec)

Records: 3  Duplicates: 0  Warnings: 0

###提前準備數據


[root@node3 dylan]# innobackupex  /backups/ ###先做一次完全備份

[root@node3 dylan]# less /backups/2017-08-10_14-35-00/xtrabackup_checkpoints

backup_type = full-backuped ### lsn從0-1711208

from_lsn = 0

to_lsn = 1711208

last_lsn = 1711208

compact = 0

recover_binlog_info = 0


爲了測試效果:在hellodb中刪除一張表,在testtb中新增幾個值

MariaDB [hellodb]> DROP TABLE coc;

Query OK, 0 rows affected (0.01 sec)


MariaDB [hellodb]> INSERT INTO testtb VALUES (44),(32);

Query OK, 2 rows affected (0.01 sec)

Records: 2  Duplicates: 0  Warnings: 0

[root@node3 dylan]# innobackupex --incremental /backups/ --incremental-basedir=/backups/2017-08-10_14-35-00/ ###在以前的基礎上增量備份

[root@node3 dylan]# less /backups/2017-08-10_14-42-06/xtrabackup_checkpoints 

backup_type = incremental

from_lsn = 1711208 ###lsn從1711208-1713870

to_lsn = 1713870

last_lsn = 1713870

compact = 0

recover_binlog_info = 0


[root@node3 dylan]# systemctl stop mariadb.service 

[root@node3 dylan]# innobackupex --apply-log --redo-only /backups/2017-08-10_14-35-00/ ###先整理完全備份

[root@node3 backups]# innobackupex --apply-log --redo-only /backups/2017-08-10_14-35-00/ --incremental-dir=/backups/2017-08-10_14-42-06/

### 最新一次的增量合併到完全備份中

[root@node3 backups]# less /backups/2017-08-10_14-35-00/xtrabackup_checkpoints 

backup_type = log-applied ###lsn 從0 到1713870

from_lsn = 0

to_lsn = 1713870

last_lsn = 1713870

compact = 0

recover_binlog_info = 0

[root@node3 backups]# rm /var/lib/mysql/* -rf ###測試數據掛了

[root@node3 backups]# innobackupex --copy-back /backups/2017-08-10_14-35-00/ ###還原數據

[root@node3 backups]# ll -lh /var/lib/mysql/

總用量 115M

drwx------ 2 root root 4.0K 8月  10 15:06 hellodb

-rw-r----- 1 root root  18M 8月  10 15:06 ibdata1

-rw-r----- 1 root root  48M 8月  10 15:06 ib_logfile0

-rw-r----- 1 root root  48M 8月  10 15:06 ib_logfile1

drwx------ 2 root root 4.0K 8月  10 15:06 mysql

drwx------ 2 root root 4.0K 8月  10 15:06 performance_schema

drwx------ 2 root root   42 8月  10 15:06 test

-rw-r----- 1 root root   25 8月  10 15:06 xtrabackup_binlog_pos_innodb

-rw-r----- 1 root root  444 8月  10 15:06 xtrabackup_info

[root@node3 backups]# chown -R mysql.mysql /var/lib/mysql/

[root@node3 backups]# cd /var/lib/mysql/

[root@node3 mysql]# rm -rf ib_logfile* ###事務日誌不知道爲什麼爲48M

[root@node3 mysql]# systemctl start mariadb.service ###完成

重新測試一次:

[root@node3 backups]# ll -lh /data/mysql/

總用量 19M

drwx------ 2 root root 4.0K 8月  10 15:49 hellodb

-rw-r----- 1 root root  18M 8月  10 15:49 ibdata1

drwx------ 2 root root 4.0K 8月  10 15:49 mysql

drwx------ 2 root root 4.0K 8月  10 15:49 performance_schema

drwx------ 2 root root   19 8月  10 15:49 test

-rw-r----- 1 root root   24 8月  10 15:49 xtrabackup_binlog_pos_innodb

-rw-r----- 1 root root  443 8月  10 15:49 xtrabackup_info ###顯示正常




導出表示例:

先做一次完全備份:

[root@node3 backups]# innobackupex /backups/

[root@node3 backups]# innobackupex --apply-log --export /backups/2017-08-10_16-21-01/ ###對此位置進行導出操作

MariaDB [hellodb]> SHOW CREATE TABLE students; ###直接在原表中查看students表創建語句

MariaDB [mydb]> CREATE TABLE `students` ( ###在新表中創建

    ->   `StuID` int(10) unsigned NOT NULL AUTO_INCREMENT,

    ->   `Name` varchar(50) NOT NULL,

    ->   `Age` tinyint(3) unsigned NOT NULL,

    ->   `Gender` enum('F','M') NOT NULL,

    ->   `ClassID` tinyint(3) unsigned DEFAULT NULL,

    ->   `TeacherID` int(10) unsigned DEFAULT NULL,

    ->   PRIMARY KEY (`StuID`)

    -> ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 

    -> ;

Query OK, 0 rows affected (0.02 sec)

MariaDB [mydb]> ALTER TABLE students DISCARD TABLESPACE; ###刪除此表的表空間


[root@node3 backups]# cd /backups/2017-08-10_16-21-01/hellodb/

[root@node3 hellodb]# scp students.exp students.ibd [email protected]:/mydata/data/mydb/ ###從原服務備份中複製表的exp和ibd文件到新表中

[email protected]'s password: 

students.exp                                            100%   16KB  16.0KB/s   00:00    

students.ibd                                            100%   96KB  96.0KB/s   00:00  

新庫中查看:

[root@localhost mydb]# ls

db.opt  students.exp  students.frm  students.ibd

[root@localhost mydb]# chown mysql.mysql students.*         ###更改屬主屬組

MariaDB [mydb]> ALTER TABLE mydb.students IMPORT TABLESPACE; ###導入出錯

ERROR 1030 (HY000): Got error -1 from storage engine         ###留存以後解決


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章