失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > percona-xtrabackup备份示例完全备份和增量备份

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

时间:2018-07-06 11:51:53

相关推荐

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/-08-10_13-34-47/

backup-f hellodb ibdata1 mysql performance_schema test xtrabackup_binlog_info xtrabackup_checkpoints xtrabackup_info xtrabackup_logfile

要恢复的主机同样安装starbackup

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

###复制备份文件至恢复主机

要恢复的主机上:

[root@localhost /]# mkdir backups

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

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

[root@localhost /]# systemctl stop mariadb.service ###未还原前不能启动

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

[root@localhost /]# innobackupex --copy-back /backups/-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/-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/-08-10_14-35-00/ ###在以前的基础上增量备份

[root@node3 dylan]# less /backups/-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/-08-10_14-35-00/ ###先整理完全备份

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

### 最新一次的增量合并到完全备份中

[root@node3 backups]# less /backups/-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/-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/-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/-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备份示例完全备份和增量备份》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。