跳至主要內容

innobackupex 执行部份增加备份

Change Lee...大约 3 分钟大杂烩mysqlinnobackupex

部分备份的相关设置

#mariadb
SET GLOBAL innodb_file_per_table=1
SET GLOBAL innodb_import_table_from_xtrabackup=1
#部分版本里叫 
innodb_file_per_table
innodb_expand_import

针对表的部分备份及增量备份

相关参数见: xtrabackup-innobackupex-安装使用/open in new window

案例1:针对部分表备份,还原

现在表及表中数据

image.png
1557973818701383.png

第一次完成表备份

#完成备份
[root@test05 ~]# /usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 \
--export --include=d1.t2 /tmp/t1

更新表中数据。

image.png
1557975000825292.png

第一次增量备份;从上一次备份可以知道,生成的目录为’/tmp/t1/2019-05-16_10-37-08‘

[root@test05 ~]# /usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 \
--export --include=d1.t2 --incremental /tmp/t1/ --incremental-basedir=/tmp/t1/2019-05-16_10-40-49/

模拟表故障,删除t2 表格

image.png
1557975148227939.png

准备恢复数据:

#第一次针对完成备份做导出准备,使用 --apply-log --redo-only
[root@test05 ~]# /usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 \
--apply-log --redo-only --export --include=d1.t2 /tmp/t1/2019-05-16_10-40-49/
#针对第一次增量备份做导出准备。之后以此类推
[root@test05 ~]# /usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 \
--apply-log --redo-only --export --include=d1.t2 /tmp/t1/2019-05-16_10-40-49/ \
--incremental-dir=/tmp/t1/2019-05-16_10-42-13/
#针对完成备份再做一次导出,仅什么 --apply-log
[root@test05 ~]# /usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 \
--apply-log --export --include=d1.t2 /tmp/t1/2019-05-16_10-40-49/
#查看导出的文件信息。
[root@test05 d1]# pwd
/tmp/t1/2019-05-16_10-40-49/d1
[root@test05 d1]# ls
t2.cfg  t2.exp  t2.frm  t2.ibd
[root@test05 d1]#

创建空表

MariaDB [d1]> create table t2;
ERROR 1113 (42000): A table must have at least 1 column
MariaDB [d1]> create table t2(name varchar(20),age int(10));
Query OK, 0 rows affected (0.01 sec)

MariaDB [d1]> ALTER TABLE t2 DISCARD TABLESPACE;
Query OK, 0 rows affected (0.00 sec)

MariaDB [d1]>

拷贝导出的文件到数据库目录下并修改仅限。

[root@test05 d1]# cp t2.* /var/lib/mysql/d1/
cp:是否覆盖"/var/lib/mysql/d1/t2.frm"yes
[root@test05 d1]# chown -R mysql.mysql /var/lib/mysql/d1/
[root@test05 d1]# ll /var/lib/mysql/d1/
总用量 144
-rw-r----- 1 mysql mysql    61 515 12:09 db.opt
-rw-r----- 1 mysql mysql  8586 515 12:09 t1.frm
-rw-r--r-- 1 mysql mysql   421 516 11:02 t2.cfg
-rw-r----- 1 mysql mysql 16384 516 11:02 t2.exp
-rw-rw---- 1 mysql mysql  8588 516 11:02 t2.frm
-rw-r----- 1 mysql mysql 98304 516 11:02 t2.ibd
[root@test05 d1]#

数据库导入表 import

MariaDB [d1]> ALTER TABLE t2 IMPORT TABLESPACE;
Query OK, 0 rows affected (0.00 sec)

MariaDB [d1]> SELECT * FROM t2;
+-------+------+
| name  | age  |
+-------+------+
| TOM   |   20 |
| jerry |   18 |
| marry |   19 |
+-------+------+
3 rows in set (0.00 sec)

单个表数据到此已经恢复

针对数据库部分备份/增量备份及恢复

案例1:针对部分数据库备份 使用的是 –databases 方法.

创建测试数据库

MariaDB [d1]> create database dba ;
Query OK, 1 row affected (0.00 sec)

MariaDB [d1]> use dba;
Database changed
MariaDB [dba]> create table t1 (id int(10),name varchar(20));
Query OK, 0 rows affected (0.00 sec)

MariaDB [dba]> INSERT INTO t1 VALUES(1,"tony");
Query OK, 1 row affected (0.00 sec)

MariaDB [dba]> select * from t1;
+------+------+
| id   | name |
+------+------+
|    1 | tony |
+------+------+
1 row in set (0.00 sec)

创建指定数据库完成备份

/usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 --databases=dba /tmp/data/

更新数据库,增加内容方便创建增量

MariaDB [dba]> create table t2 (name varchar(20),age int(10));
Query OK, 0 rows affected (0.01 sec)

MariaDB [dba]> INSERT INTO t2 VALUES("tony",100);
Query OK, 1 row affected (0.00 sec)

MariaDB [dba]> select * from t2;
+------+------+
| name | age  |
+------+------+
| tony |  100 |
+------+------+
1 row in set (0.00 sec)

MariaDB [dba]>

创建增量备份,上次备份的目录是 "/tmp/data/2019-05-16_16-16-23/"

[root@test05 data]# /usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 \
--databases=dba --incremental /tmp/data/ --incremental-basedir=/tmp/data/2019-05-16_16-16-23/

删除数据库,模拟故障,表丢失的情况可以用表的方式还原

MariaDB [mysql]> drop database dba;
Query OK, 2 rows affected (0.02 sec)

MariaDB [mysql]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| d1                 |
| db                 |
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.00 sec)

MariaDB [mysql]>

准备还原数据

暂未实现

#完成数据备份
/usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 --databases=d3 /tmp/data/
#第一次增量备份
/usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 \
--databases=d3 --incremental /tmp/data/ --incremental-basedir=/tmp/data/2019-05-15_21-40-02/
#第二次增量备份
/usr/local/xtrabackup/bin/innobackupex --user=root --password=123456 \
--databases=d3 --incremental /tmp/data/ --incremental-basedir=/tmp/data/2019-05-15_21-40-02/
#以此类推
上次编辑于:
贡献者: change
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3