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 ###留存以后解决
[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 ###留存以后解决
相关文章推荐
- xtrabackup完全备份增量备份以及恢复
- Xtrabackup安装+(全备+增量+二进制日志)备份,你值得拥有。
- Xtrabackup备份与还原(全备&增量)
- MySQL备份工具percona-xtrabackup安装
- MySQL Study之--MySQL innodb引擎备份工具XtraBackup之三(数据库增量备份)
- Xtrabackup增量备份、恢复以及时间点恢复
- xtrabackup增量备份恢复
- Xtrabackup物理备份Mysql(Innodb引擎)-全备份和增量备份
- percona xtrabackupd定期做全备,增量备份shell脚本
- 用XtraBackup备份工具实现完整备份、恢复和增量备份、恢复
- Xtrabackup--增量备份及恢复(三)
- 【mysql】使用xtrabackup在线增量备份及恢复数据库
- MySQL Study之--MySQL innodb引擎备份工具XtraBackup之三(数据库增量备份)
- 用Python写脚本,实现完全备份和增量备份的示例
- xtrabackup2.4 备份Precona5.6数据库,做增量备份与还原
- xtrabackup增量备份方案,备份恢复全过程记录
- xtrabackup增量备份mysql
- xtrabackup-增量备份
- xtrabackup增量备份mysql +MHA
- percona-xtrabackup完全及增量备份与恢复