您的位置:首页 > 其它

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

2017-08-10 20:31 399 查看
[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/ root@192.168.0.150:/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 root@192.168.0.150:/mydata/data/mydb/ ###从原服务备份中复制表的exp和ibd文件到新表中
root@192.168.0.150'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 ###留存以后解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  percona-xtrabackup