使用xtrabackup实现mysql备份

 更新时间:2016年11月06日 12:32:07   投稿:hebedich  
Xtrabackup 是percona公司的开源项目,用以实现类似innodb官方的热备份工具InnoDB Hot Backup的功能,能够非常快速地备份与恢复MySQL数据库。今天我们就来详细讨论下Xtrabackup的使用方法

下载地址:https://www.percona.com/downloads/XtraBackup/

安装xtrabackup

[root@node1 ~]# yum install percona-xtrabackup

完全备份

节点一

修改配置文件,设置为每张表单独一个表空间,此项必须在安装数据库的时候就设置

[root@node1 ~]# vim /etc/my.cnf
[mysqld]
innodb_file_per_table=ON

创建备份目录

[root@node1 ~]# mkdir /backpus/

备份

[root@node1 ~]# innobackupex --user=root /backpus/

复制给节点2

[root@node1 ~]# scp -r /backpus/2016-07-13_20-27-04 192.168.1.114:/root/

节点二

(节点二的mysql安装后不要启动,启动后因生成有初始化文件无法还原)

[root@node2 ~]# yum install percona-xtrabackup

把备份文件移动到/backups目录下

[root@node2 ~]# mkdir /backups/
[root@node2 ~]# mv 2016-07-13_20-27-04/ /backups/

对备份文件进行整理

[root@node2 ~]# innobackupex --apply-log /backups/2016-07-13_20-27-04/

还原

[root@node2 ~]# innobackupex --copy-back /backups/2016-07-13_20-27-04/

修改文件权限

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

增量备份

修改数据

[root@node1 ~]# mysql
MariaDB [(none)]> use hellodb;
MariaDB [hellodb]> create table xxoo2 (id int);
MariaDB [hellodb]> insert into xxoo2 values (1),(10),(83);

对之前完全备份的文件进行增量备份

[root@node1 ~]# innobackupex --incremental /backpus/ --incremental-basedir=/backpus/2016-07-13_20-27-04

对完全备份做只读,为增量和完全合并做准备

[root@node1 ~]# innobackupex --apply-log --redo-only /backpus/2016-07-13_20-27-04/

合并增量到完全中

[root@node1 ~]# innobackupex --apply-log --redo-only /backpus/2016-07-13_20-27-04/ --incremental-dir=/backpus/2016-07-13_23-13-25/

查看增量备份文件

[root@node1 ~]# less /backpus/2016-07-13_23-13-25/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 1642047
to_lsn = 1646912
last_lsn = 1646912
compact = 0

查看完全备份文件

[root@node1 ~]# less /backpus/2016-07-13_20-27-04/xtrabackup_checkpoints
backup_type = full-prepared
from_lsn = 0
to_lsn = 1646912
last_lsn = 1646912
compact = 0

之后如果有新的增量备份文件还可以继续在完全备份文件上合并 还原时将完全备份文件拿去还原即可

注意:mysql的访问权限,我操作过程中多次出现错误,都是在mysql数据库的属主和属组权限出现的问题。

相关文章

  • MySQL查询随机数据的4种方法和性能对比

    MySQL查询随机数据的4种方法和性能对比

    从MySQL随机选取数据也是我们最常用的一种发发,其最简单的办法就是使用”ORDER BY RAND()”,本文介绍了包括ORDER BY RAND()的4种获取随机数据的方法,并分析了各自的优缺点。
    2014-04-04
  • MySQL for update锁表还是锁行校验(过程详解)

    MySQL for update锁表还是锁行校验(过程详解)

    在MySQL中,使用for update子句可以对查询结果集进行行级锁定,以便在事务中对这些行进行更新或者防止其他事务对这些行进行修改,这篇文章主要介绍了MySQL for update锁表还是锁行校验,需要的朋友可以参考下
    2024-02-02
  • 关于Mysql搭建主从复制功能的步骤实现

    关于Mysql搭建主从复制功能的步骤实现

    这篇文章主要介绍了关于Mysql搭建主从复制功能的步骤实现,在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能,一般都会采用主从复制,需要的朋友可以参考下
    2023-05-05
  • MySQL 事务概念与用法深入详解

    MySQL 事务概念与用法深入详解

    这篇文章主要介绍了MySQL 事务概念与用法,结合实例形式深入分析了MySQL 事务基本概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-05-05
  • 关于mysql innodb count(*)速度慢的解决办法

    关于mysql innodb count(*)速度慢的解决办法

    innodb引擎在统计方面和myisam是不同的,Myisam内置了一个计数器,所以在使用 select count(*) from table 的时候,直接可以从计数器中取出数据。而innodb必须全表扫描一次方能得到总的数量
    2012-12-12
  • MySQL连表查询的实现

    MySQL连表查询的实现

    在Mysql数据库中,表的连接操作是非常重要的,能够将不同的表结合在一起,实现更加丰富和复杂的查询操作,本文主要介绍了MySQL连表查询的实现,感兴趣的可以了解一下
    2023-06-06
  • windows10安装mysql5.7.18教程

    windows10安装mysql5.7.18教程

    windows10安装mysql5.7.18是这样安装的吗?这篇文章主要为大家详细介绍了win10下mysql5.7.18安装配置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • MySQL查看数据库状态命令详细讲解

    MySQL查看数据库状态命令详细讲解

    在工作中,有时候我们需要了解MySQL服务器的状态信息,下面这篇文章主要给大家介绍了关于MySQL查看数据库状态命令的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • MySQL主从复制问题总结及排查过程

    MySQL主从复制问题总结及排查过程

    这篇文章主要介绍了MySQL主从复制问题总结及排查过程,mysql主从是常用的高可用架构之一,也是使用最广泛的的系统架构。在生产环境中mysql主从复制有时会出现复制错误问题。下文更多内容需要的小伙伴可以参考一下
    2022-03-03
  • centos7下安装mysql全过程

    centos7下安装mysql全过程

    这篇文章主要介绍了centos7下安装mysql全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论