DBA(二):percona软件、innobackupex备份与恢复

percona软件介绍

MySQL备份工具

常用的MySQL备份工具
  • 物理备份的缺点
  • 跨平台性差
  • 备份时间长、冗余备份、浪费存储空间
  • mysqldump备份的缺点
  • 效率较低、备份和还原速度慢、锁表
  • 备份过程中,数据插入和更新操作被阻塞
XtraBackup工具
  • 开源,是一款强大的在线热备份工具
  • 备份过程中不锁库表,适合生产环境
  • 由专业组织Percona提供(改进MySQL分支)
  • 主要包含两个组件
  • xtrabackup:C程序,支持InnoDB/XtraDB
  • innobackupex:以Perl脚本封装xtrabackup,还支持MyISAM
安装percona

libev软件
提取码:mrt8
percona软件包
提取码:wnmo
libev软件包可以直接使用rpm命令安装
percona软件要到下载软件的目录进行yum安装,解决依赖

[root@host51 ~]# rpm  -ivh  libev-4.15-1.el6.rf.x86_64.rpm 
[root@host51 ~]# yum  -y  install  percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm
[root@host51 ~]# which  innobackupex
/usr/bin/innobackupex

  • 查看安装列表
[root@host51 ~]# rpm  -ql  percona-xtrabackup-24
/usr/bin/innobackupex             //备份innodb、xtrdb、myisam引擎的表
/usr/bin/xbcloud
/usr/bin/xbcloud_osenv
/usr/bin/xbcrypt
/usr/bin/xbstream
/usr/bin/xtrabackup                   //备份innodb、xtrdb引擎的表
/usr/share/doc/percona-xtrabackup-24-2.4.7
/usr/share/doc/percona-xtrabackup-24-2.4.7/COPYING
/usr/share/man/man1/innobackupex.1.gz
/usr/share/man/man1/xbcrypt.1.gz
/ usr/share/man/man1/xbstream.1.gz
/usr/share/man/man1/xtrabackup.1.gz
  • 查看命令帮助
[root@host51 ~]# innobackupex   --help   //常用选项
[root@host51 ~]# man  innobackupex     //详细帮助
innobackupex命令
  • 常用选项
常用选项含义
–host主机名
–user用户名
–port端口号
–password密码
–databases数据库名
–no-timestamp不用日期命名备份文件存储的子目录名
–redo-only日志合并
–apply-log准备恢复数据
–copy-log拷贝数据
–incremental 目录名增量备份
–increment-basedir=目录名增量备份时,制定上一次备份数据存储的目录名
–increment-dir=目录名准备恢复数据时,指定增量备份数据存储的目录名
–export导出表信息
import导入表空间
--databases="库名"            //1个库
--databases="库1   库2"       //多个库
--databases="库1.表"          //1张表
  • 命令格式
  • 完全备份
[root@host51 ~]# innobackupex  --user  用户名  --password  密码  备份目录名   --no-timestamp
  • 完全恢复
[root@host51 ~]# innobackupex   --apply-log  目录名  //准备恢复数据
[root@host51 ~]# innobackupex   --copy-log  目录名    //恢复数据
  • 增量备份
[root@host51 ~]# innobackupex  --user  用户名  --password  密码  --incremental  增量目录  --increment-basedir=目录名  --no-timestamp
  • 增量恢复
[root@host51 ~]# innobackupex  --apply-log  --redo-only 目录名  --no-timestamp    //准备恢复数据
[root@host51 ~]# innobackupex  --copy-back  目录名     //恢复数据
innobackupex备份与恢复
完全备份与恢复

应用示例:在host51主机将所有信息备份,在host52主机做完全恢复,在备份的过程中不会对备份的表加锁,但是要求必须在空库下进行备份

准备环境:
首先!实验的所有主机都一定要有percona软件以及libev软件
实验将host51主机的库还原成初始状态的库
创建一个新的用于实验的库
创建两个存储数据的表,分别疯狂的写入数据
在51主机上
mysql> drop database  db1 ;  drop  database  db2 ;  drop  database  db3; 
mysql> show  databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
mysql> create  database  gamedb;
mysql> create  table  gamedb.a(id  int);
mysql> create  table  gamedb.b(name  char(10));
mysql> insert  into gamedb.a  values(10);   #多创建几个
mysql> insert  into gamedb.b  values("bob");   #多创建几个
mysql> select  count(*)   from  gamedb.a  ;
+----------+
| count(*) |
+----------+
|       10 |
+----------+
1 row in set (0.01 sec)

mysql> select  count(*)   from  gamedb.b  ;
+----------+
| count(*) |
+----------+
|       11 |
+----------+
1 row in set (0.00 sec)

mysql> select  *  from  gamedb.a;
+------+
| id   |
+------+
|   10 |
|   11 |
|   12 |
|  100 |
|  500 |
|  566 |
|   43 |
| 4455 |
| 4457 |
| 3552 |
+------+
10 rows in set (0.00 sec)

mysql> select  *  from  gamedb.b;
+--------+
| name   |
+--------+
| tian   |
| bob    |
| aaa    |
| bbb    |
| ccc    |
| sss    |
| ddd    |
| eee    |
| ffff   |
| gjkgjk |
| fffghh |
+--------+
11 rows in set (0.00 sec)

innobackupex    --user  root  --password  123456  /fullbak
 rm  -rf  /fullbak/
innobackupex    --user  root  --password  123456  /fullbak  --no-timestamp
ls  /fullbak
  
[root@host51 ~]# cat  /fullbak/xtrabackup_checkpoints 记录当前备份数据的类型和范围
backup_type = full-backuped
from_lsn = 0
to_lsn = 3010832
last_lsn = 3010841
compact = 0
recover_binlog_info = 0
[root@host51 ~]# scp  -r  /fullbak/   192.168.4.52:/root

在52主机上进行数据恢复,在52主机上也要有两个软件包
恢复数据的步骤:
1.关闭mysqld服务
2.删除数据库目录下的所有,恢复数据时要求目录为空
3.准备恢复数据
4.恢复数据
5.修改当前数据库目录的拥有者和所属组为mysql
6.重启服务
7.以root用户登录数据库查看数据是否恢复成功
[root@host52 ~]# systemctl  stop  mysqld      //关闭服务
[root@host52 ~]# rm  -rf  /var/lib/mysql/*    //清空目录下的所有,注意不要写成mysql*,这样会删除两个重要文件/mysql-files以及/mysql-keyring,这样会导致后面的数据库进不去哟!!!!
[root@host52 ~]# ls  /var/lib/mysql    #此时该目录下是空的
[root@host52 ~]# cat  /root/fullbak/xtrabackup_checkpoints      //该文件可以看到备份文件的类型以及备份的范围
backup_type = full-backuped
from_lsn = 0
to_lsn = 3010832
last_lsn = 3010841
compact = 0
recover_binlog_info = 0
[root@host52 ~]# ls  /root/fullbak/
backup-my.cnf   ib_logfile0  performance_schema            xtrabackup_checkpoints
gamedb          ib_logfile1  sys                           xtrabackup_info
ib_buffer_pool  ibtmp1       xtrabackup_binlog_info        xtrabackup_logfile
ibdata1         mysql        xtrabackup_binlog_pos_innodb
[root@host52 ~]#innobackupex   --apply-log   /root/fullbak/  准备恢复数据
[root@host52 ~]#cat   /root/fullbak/xtrabackup_checkpoints
backup_type = full-prepared
from_lsn = 0
to_lsn = 3010832
last_lsn = 3010841
compact = 0
recover_binlog_info = 0
[root@host52 ~]#ls  /var/lib/mysql   #此时是空的
[root@host52 ~]# innobackupex  --copy-back   /root/fullbak/       //恢复数据
[root@host52 ~]#ls  /var/lib/mysql
gamedb          ib_logfile0  mysql               xtrabackup_binlog_pos_innodb
ib_buffer_pool  ib_logfile1  performance_schema  xtrabackup_info
ibdata1         ibtmp1       sys
[root@host52 ~]# ls  -l  /var/lib/mysql
总用量 122920
drwxr-x---. 2 root root       72 2月  19 17:24 gamedb
-rw-r-----. 1 root root      480 2月  19 17:24 ib_buffer_pool
-rw-r-----. 1 root root 12582912 2月  19 17:24 ibdata1
-rw-r-----. 1 root root 50331648 2月  19 17:24 ib_logfile0
-rw-r-----. 1 root root 50331648 2月  19 17:24 ib_logfile1
-rw-r-----. 1 root root 12582912 2月  19 17:24 ibtmp1
drwxr-x---. 2 root root     4096 2月  19 17:24 mysql
drwxr-x---. 2 root root     8192 2月  19 17:24 performance_schema
drwxr-x---. 2 root root     8192 2月  19 17:24 sys
-rw-r-----. 1 root root       17 2月  19 17:24 xtrabackup_binlog_pos_innodb
-rw-r-----. 1 root root      482 2月  19 17:24 xtrabackup_info
[root@host52 ~]#chown  -R  mysql:mysql  /var/lib/mysql
[root@host52 ~]# ls  -l  /var/lib/mysql
总用量 122920
drwxr-x---. 2 mysql mysql       72 2月  19 02:46 gamedb
-rw-r-----. 1 mysql mysql      480 2月  19 02:46 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 2月  19 02:46 ibdata1
-rw-r-----. 1 mysql mysql 50331648 2月  19 02:46 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 2月  19 02:46 ib_logfile1
-rw-r-----. 1 mysql mysql 12582912 2月  19 02:46 ibtmp1
drwxr-x---. 2 mysql mysql     4096 2月  19 02:46 mysql
drwxr-x---. 2 mysql mysql     8192 2月  19 02:46 performance_schema
drwxr-x---. 2 mysql mysql     8192 2月  19 02:46 sys
-rw-r-----. 1 mysql mysql       17 2月  19 02:46 xtrabackup_binlog_pos_innodb
-rw-r-----. 1 mysql mysql      482 2月  19 02:46 xtrabackup_info

[root@host52 ~]#systemctl  restart   mysqld
[root@host52 ~]# mysql  -uroot  -p123456
mysql>show  databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| gamedb             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql>select  *  from  gamedb.a;
+------+
| id   |
+------+
|   10 |
|   11 |
|   12 |
|  100 |
|  500 |
|  566 |
|   43 |
| 4455 |
| 4457 |
| 3552 |
+------+
10 rows in set (0.07 sec)

mysql>select  *  from  gamedb.a;
+--------+
| name   |
+--------+
| tian   |
| bob    |
| aaa    |
| bbb    |
| ccc    |
| sss    |
| ddd    |
| eee    |
| ffff   |
| gjkgjk |
| fffghh |
+--------+
11 rows in set (0.01 sec)
mysql> select count(*)  from  gamedb.b;
+----------+
| count(*) |
+----------+
|       11 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*)  from  gamedb.a;
+----------+
| count(*) |
+----------+
|       10 |
+----------+
1 row in set (0.00 sec)
恢复单张表
  • 操作步骤:
    1.删除表空间
    2.导出表信息
    3.拷贝表信息文件到数据库目录下
    4.修改表信息文件的所有者以及组用户为mysql
    5.导入表空间, 表空间:存储数据的表文件(表名.ibd)
    6.删除数据库目录下的表信息文件
    7.查看表记录
  • 相关命令
mysql > alter table  库名.表名  discard  tablespace;   //删除表空间
]#  innobackupex  --apply-log   --export  数据库完全备份目录      //导出表信息
]# cp 数据完全备份目录/数据库名目录/表名.{ibd,cfg,exp}    数据库目录/库名目录          //拷贝信息文件
]#  chown  mysql:mysql   数据库目录/库名             //修改所有者所属组
mysql > alter  table  库名.表名   import   tablespace;        //导入表空间
mysql > select  *  from   库名.表名;         //查看表记录
]#  rm  -rf    数据库目录/库名/表名.{cfg,exp}                         //删除表信息文件
在host52主机上模拟不小心删除了gamedb库下的b表,在host51主机上备份还原回数据
[root@host52 ~]# mysql  -uroot  -p123456
 mysql> select  *  from  gamedb.b;
+--------+
| name   |
+--------+
| tian   |
| bob    |
| aaa    |
| bbb    |
| ccc    |
| sss    |
| ddd    |
| eee    |
| ffff   |
| gjkgjk |
| fffghh |
+--------+
11 rows in set (0.00 sec)

mysql> delete  from  gamedb.b;
Query OK, 11 rows affected (0.06 sec)

mysql> select  *  from  gamedb.b;
Empty set (0.00 sec)

mysql> show  tables;
+------------------+
| Tables_in_gamedb |
+------------------+
| a                |
| b                |
| c                |
+------------------+
3 rows in set (0.00 sec)

[root@host52 ~]# mysql  -uroot  -p123456
mysql> delete  from  gamedb.b;     #如果不小心将整个表drop掉了,一定要先重建一个同样的表,以及同样的表结构
Query OK, 11 rows affected (0.06 sec)

mysql> select  *  from  gamedb.b;
Empty set (0.00 sec)

mysql> create  table  gamedb.c(name  char(10) ,sex  enum("boy","girl"));
Query OK, 0 rows affected (0.02 sec)

[root@host52 ~]# ls  /var/lib/mysql/gamedb
a.frm  a.ibd  b.frm  b.ibd  c.frm  c.ibd  db.opt

[root@host52 ~]# ls  /root/fullbak/
backup-my.cnf   ib_logfile0  performance_schema            xtrabackup_checkpoints
gamedb          ib_logfile1  sys                           xtrabackup_info
ib_buffer_pool  ibtmp1       xtrabackup_binlog_info        xtrabackup_logfile
ibdata1         mysql        xtrabackup_binlog_pos_innodb

[root@host52 ~]# mysql  -uroot  -p123456
mysql> alter  table  gamedb.b  discard   tablespace;
Query OK, 0 rows affected (0.00 sec)

mysql> select  *  from  gamedb.b;     #提示没有gamedb的b表的表空间
ERROR 1814 (HY000): Tablespace has been discarded for table 'b'

[root@host52 ~]# cd  /root/fullbak/
[root@host52 fullbak]# ls
backup-my.cnf   ib_logfile0  performance_schema            xtrabackup_checkpoints
gamedb          ib_logfile1  sys                           xtrabackup_info
ib_buffer_pool  ibtmp1       xtrabackup_binlog_info        xtrabackup_logfile
ibdata1         mysql        xtrabackup_binlog_pos_innodb
[root@host52 fullbak]# ls  gamedb/
a.frm  a.ibd  b.frm  b.ibd  db.opt
[root@host52 fullbak]# innobackupex  --apply-log  --export   /root/fullbak

[root@host52 fullbak]# ls  gamedb/
a.cfg  a.exp  a.frm  a.ibd  b.cfg  b.exp  b.frm  b.ibd  db.opt
[root@host52 fullbak]# ls  /var/lib/mysql
auto.cnf        ibdata1      ibtmp1      mysql.sock.lock     xtrabackup_binlog_pos_innodb
gamedb          ib_logfile0  mysql       performance_schema  xtrabackup_info
ib_buffer_pool  ib_logfile1  mysql.sock  sys
[root@host52 fullbak]# cp  /root/fullbak/gamedb/b.{cfg,exp,ibd}   /var/lib/mysql/gamedb/

[root@host52 fullbak]# ls  -l  /var/lib/mysql/gamedb/b.*
-rw-r--r--. 1 root  root    372 2月  19 18:16 /var/lib/mysql/gamedb/b.cfg
-rw-r-----. 1 root  root  16384 2月  19 18:16 /var/lib/mysql/gamedb/b.exp
-rw-r-----. 1 mysql mysql  8560 2月  19 17:24 /var/lib/mysql/gamedb/b.frm
-rw-r-----. 1 root  root  98304 2月  19 18:16 /var/lib/mysql/gamedb/b.ibd

[root@host52 fullbak]# chown  mysql:mysql  /var/lib/mysql/gamedb/b.*

[root@host52 fullbak]#  ls  -l  /var/lib/mysql/gamedb/b.*
-rw-r--r--. 1 mysql mysql   372 2月  19 18:16 /var/lib/mysql/gamedb/b.cfg
-rw-r-----. 1 mysql mysql 16384 2月  19 18:16 /var/lib/mysql/gamedb/b.exp
-rw-r-----. 1 mysql mysql  8560 2月  19 17:24 /var/lib/mysql/gamedb/b.frm
-rw-r-----. 1 mysql mysql 98304 2月  19 18:16 /var/lib/mysql/gamedb/b.ibd

[root@host52 ~]# mysql  -uroot  -p123456
mysql> select  *  from  gamedb.b;     #此时依旧提示没有gamedb的b表的表空间
ERROR 1814 (HY000): Tablespace has been discarded for table 'b'

mysql> alter table  gamedb.b   import  tablespace;
Query OK, 0 rows affected (0.11 sec)

mysql> select *  from  gamedb.b;
+--------+
| name   |
+--------+
| tian   |
| bob    |
| aaa    |
| bbb    |
| ccc    |
| sss    |
| ddd    |
| eee    |
| ffff   |
| gjkgjk |
| fffghh |
+--------+
11 rows in set (0.00 sec)

[root@host52 fullbak]# rm  -rf   /var/lib/mysql/gamedb/b.exp
[root@host52 fullbak]# rm  -rf   /var/lib/mysql/gamedb/b.cfg
#要删除.exp以及.cfg为结尾的文件,否则如果要删除该表时会报错

数据库目录下有.cfg、.frm、.ibd、
.ibd  记录数据的文件,存储表记录
.frm  存储表结构
.exp、.cfg 存储数据的备份信息,是二进制文件,是执行innobackupex生成的文件
每张表都一定会有表结构以及表记录文件
增量备份与恢复
  • 增量备份:备份上次备份后,所有新产生的数据
  • 1.如何判断所有的数据里,哪些是新产生的数据?
  • 2.从哪里开始备份新产生的数据?
  • 原理:
  • 每一个备份目录下都会有一个xtrabackup_checkpoints记录备份的类型和范围,innobackupex在执行备份时,会对比完全备份后备份目录中的last_lsn和当前的last_lsn进行对比,如果数据变大,则是新产生的数据
假如我们每天都会产生新的数据,可以在周一的时候做完全备份,周二至周日可以用mysqldump做增量备份或者差异备份,但mysqldump备份时会锁表,不建议进行此操作,我们可以用innobackupex做增量备份,不会锁表,但如果数据丢失,在进行恢复时一定要确保数据库目录是空的
模拟实验环境,在host51上面做完全备份以及增量备份,在host54(192.168.4.54)上面做数据恢复

做完全备份:
[root@host51 ~]# innobackupex   --user  root  --password  123456      /allbak  --no-timestamp

[root@host51 ~]# ls  /allbak/
backup-my.cnf   ibdata1             sys                     xtrabackup_info
gamedb          mysql               xtrabackup_binlog_info  xtrabackup_logfile
ib_buffer_pool  performance_schema  xtrabackup_checkpoints
[root@host51 ~]# cat  /allbak/xtrabackup_checkpoints 
backup_type = full-backuped
from_lsn = 0
to_lsn = 3013326
last_lsn = 3013335
compact = 0
recover_binlog_info = 0
#LSN  日志序列号
#ib_logfile0   ib_logfile1   日志文件
#to_lsn是第一次备份后备份目录下最后的值
#last_lsn是数据库目录下备份最后的值

在host51上多写入些记录
mysql> select count(*)  from  gamedb.b;
+----------+
| count(*) |
+----------+
|       11 |
+----------+
1 row in set (0.00 sec)

mysql> select count(*)  from  gamedb.a;
+----------+
| count(*) |
+----------+
|       10 |
+----------+
1 row in set (0.00 sec)

mysql> insert  into gamedb.a   values(113);
Query OK, 1 row affected (0.00 sec)
mysql> insert  into gamedb.b   values("xxxx");
Query OK, 1 row affected (0.00 sec)
mysql> select  count(*) from  gamedb.a;
+----------+
| count(*) |
+----------+
|       20 |
+----------+
1 row in set (0.00 sec)

mysql> select  count(*) from  gamedb.b;
+----------+
| count(*) |
+----------+
|       22 |
+----------+
1 row in set (0.00 sec)

mysql> show  create  table  gamedb.b  \G         #默认是innodb存储引擎
*************************** 1. row ***************************
       Table: b
Create Table: CREATE TABLE `b` (
  `name` char(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

在host51上开始做增量备份:
[root@host51 ~]# innobackupex   --user  root  --password  123456  --incremental  /onedir  --incremental-basedir=/allbak   --no-timestamp       //进行增量备份
#--no-timestamp  不在指定的备份文件夹内创建子文件夹
[root@host51 ~]# ls  /allbak/
backup-my.cnf   ibdata1             sys                     xtrabackup_info
gamedb          mysql               xtrabackup_binlog_info  xtrabackup_logfile
ib_buffer_pool  performance_schema  xtrabackup_checkpoints
[root@host51 ~]# ls  /onedir/
backup-my.cnf   ibdata1.delta  performance_schema      xtrabackup_checkpoints
gamedb          ibdata1.meta   sys                     xtrabackup_info
ib_buffer_pool  mysql          xtrabackup_binlog_info  xtrabackup_logfile

[root@host51 ~]# cat  /allbak/xtrabackup_checkpoints   #查看此时备份的类型为完全备份
backup_type = full-backuped
from_lsn = 0
to_lsn = 3013326
last_lsn = 3013335
compact = 0
recover_binlog_info = 0

[root@host51 ~]# cat  /onedir/xtrabackup_checkpoints    #备份的开始是完全备份的结尾数据,类型是增量
backup_type = incremental
from_lsn = 3013326
to_lsn = 3025984
last_lsn = 3025993
compact = 0
recover_binlog_info = 0

[root@host51 ~]# innobackupex   --user  root  --password  123456  --incremental  /twodir  --incremental-basedir=/onedir   --no-timestamp      #再次在host51上面写数据,然后再次进行增量备份到twodir目录
mysql> select  count(*)  from  gamedb.a;
+----------+
| count(*) |
+----------+
|       30 |
+----------+
1 row in set (0.00 sec)

mysql> select  count(*)  from  gamedb.b;
+----------+
| count(*) |
+----------+
|       33 |
+----------+
1 row in set (0.00 sec)

[root@host51 ~]# cat  /onedir/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 3013326
to_lsn = 3025984
last_lsn = 3025993
compact = 0
recover_binlog_info = 0
[root@host51 ~]# cat  /twodir/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 3025984
to_lsn = 3038542
last_lsn = 3038551
compact = 0
recover_binlog_info = 0


增量恢复,在host54上做恢复
此时host54主机拥有allback+onedir+twodir

首先停止数据库服务
清空数据库目录
准备恢复数据
合并数据
把数据拷贝到数据库目录下
修改文件所有者用户为mysql
启动服务
管理员登录查看数据

[root@host51 ~]# scp  -r  /allbak/  root@192.168.4.54:/root
[root@host51 ~]# scp  -r  /onedir/  root@192.168.4.54:/root
[root@host51 ~]# scp  -r  /twodir/   root@192.168.4.54:/root
[root@host54 ~]# ls
allbak    onedir    twodir
[root@host54 ~]# ss  -nutlp  |  grep 3306
tcp    LISTEN     0      80       :::3306                 :::*                   users:(("mysqld",pid=1095,fd=30))
[root@host54 ~]# systemctl  stop  mysqld

[root@host54 ~]# rm  -rf  /var/lib/mysql/*

[root@host54 ~]# ls  /var/lib/mysql

[root@host54 ~]# innobackupex   --apply-log  --redo-only  /root/allbak  

[root@host54 ~]# cat  /root/allbak/xtrabackup_checkpoints 
backup_type = log-applied
from_lsn = 0
to_lsn = 3013326
last_lsn = 3013335
compact = 0
recover_binlog_info = 0
[root@host54 ~]# innobackupex   --apply-log  --redo-only   /root/allbak/   --incremental-dir=/root/onedir  

[root@host54 ~]# cat  /root/allbak/xtrabackup_checkpoints 
backup_type = log-applied
from_lsn = 0
to_lsn = 3025984
last_lsn = 3025993
compact = 0
recover_binlog_info = 0
[root@host54 ~]# cat  /root/onedir/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 3013326
to_lsn = 3025984
last_lsn = 3025993
compact = 0
recover_binlog_info = 0
[root@host54 ~]# innobackupex   --apply-log  --redo-only   /root/allbak/   --incremental-dir=/root/twodir  

[root@host54 ~]# cat  /root/allbak/xtrabackup_checkpoints 
backup_type = log-applied
from_lsn = 0
to_lsn = 3038542
last_lsn = 3038551
compact = 0
recover_binlog_info = 0
[root@host54 ~]# cat  /root/twodir/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 3025984
to_lsn = 3038542
last_lsn = 3038551
compact = 0
recover_binlog_info = 0

[root@host54 ~]# innobackupex   --copy-back    /root/allbak/

[root@host54 ~]# ls  /var/lib/mysql
gamedb          ib_logfile0  performance_schema            xtrabackup_info
ib_buffer_pool  ib_logfile1  sys
ibdata1         mysql        xtrabackup_binlog_pos_innodb

[root@host54 ~]# ls  -l  /var/lib/mysql
总用量 110632
drwxr-x---. 2 root root       72 2月  19 21:33 gamedb
-rw-r-----. 1 root root      587 2月  19 21:33 ib_buffer_pool
-rw-r-----. 1 root root 12582912 2月  19 21:33 ibdata1
-rw-r-----. 1 root root 50331648 2月  19 21:33 ib_logfile0
-rw-r-----. 1 root root 50331648 2月  19 21:33 ib_logfile1
drwxr-x---. 2 root root     4096 2月  19 21:33 mysql
drwxr-x---. 2 root root     8192 2月  19 21:33 performance_schema
drwxr-x---. 2 root root     8192 2月  19 21:33 sys
-rw-r-----. 1 root root       18 2月  19 21:33 xtrabackup_binlog_pos_innodb
-rw-r-----. 1 root root      532 2月  19 21:33 xtrabackup_info

[root@host54 ~]# chown  -R  mysql:mysql  /var/lib/mysql

[root@host54 ~]# ls  -l  /var/lib/mysql
总用量 110632
drwxr-x---. 2 mysql mysql       72 2月  19 21:33 gamedb
-rw-r-----. 1 mysql mysql      587 2月  19 21:33 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 2月  19 21:33 ibdata1
-rw-r-----. 1 mysql mysql 50331648 2月  19 21:33 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 2月  19 21:33 ib_logfile1
drwxr-x---. 2 mysql mysql     4096 2月  19 21:33 mysql
drwxr-x---. 2 mysql mysql     8192 2月  19 21:33 performance_schema
drwxr-x---. 2 mysql mysql     8192 2月  19 21:33 sys
-rw-r-----. 1 mysql mysql       18 2月  19 21:33 xtrabackup_binlog_pos_innodb
-rw-r-----. 1 mysql mysql      532 2月  19 21:33 xtrabackup_info
[root@host54 ~]# systemctl  start  mysqld
[root@host54 ~]# mysql  -uroot  -p123456
mysql> select  count(*)   from  gamedb.a;
+----------+
| count(*) |
+----------+
|       30 |
+----------+
1 row in set (0.02 sec)

mysql> select  count(*)   from  gamedb.b;
+----------+
| count(*) |
+----------+
|       33 |
+----------+
1 row in set (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值