mysql系列-------使用第三方工具-percona来备份mysql和恢复

使用第三方工具来备份mysql-----percona

一、前期准备工作:

1、安装依赖包:yum -y install perl-Digest-MD5 perl-DBD-MySQL

    rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm

2、安装主包: percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm

  percona是一款在线热备工具

3、包含两个组件:

       /usr/bin/xtrabackup     :支持innodb和xtraDB(增量备份)

      /usr/bin/innobackupex   :支持innodb和myisam(只支持全备,不支持增量)

4、innobackupex 包含的一些选项

  --user                  用户名     

  --password          密码  

  --databases         库名

  --no-timestamp          不使用系统日期做备份目录的子目录名

  --apply-log                 恢复日志

  --copy-back               恢复数据

二、完全备份和完全恢复

1、完全备份

     innobackupex --user root --password 123456 --database="mysql db66 performance sys"

     --no-timestamp   /allbak   //指定备份三个数据库,生成的备份文件目录不用系统时间做目录名

2、恢复数据时,数据库目录为空,三个系统库必须备份进去

首先恢复日志:innobackupex --user root --password 123456 --apply-log  /allbak

删除数据库目录:   rm    -rf      /var/lib/mysql

创建数据库目录:   mkdir /var/lib/mysql

恢复数据:innobackupex --user root --password  123456  --copy-back  /allbak/

赋予数据目录权限:chown -R mysql:mysql /var/lib/mysql

  重启服务,验证:systemctl restart mysqld

三、增量备份和增量恢复

1、在增量备份之前先做一次完全备份。

innobackupex --user root --password 123456

--databases="performance_schema sys mysql db666"

--no-timestamp  /onebak

2、第一次增量备份

innobackupex --user root --password 123456     //指定用户名密码

--databases="performance_schema sys mysql db666" //指定需要备份的数据库

--incremental /new1                //指定增量备份的路径

--incremental-basedir=/onebak   //指定以哪个备份来做为增量备份的参考

--no-timestamp

3、第二次增量备份:

innobackupex --user root --password 123456

--databases="performance_schema sys mysql db666"

--incremental /new2     //第二次增量备份的路径

--incremental-basedir=/new1   //以上次增量备份做为参考来做增量备份

--no-timestamp

4、增量恢复的文件目录说明

xtrabackup_checkpoints xtrabackup_logfile //这两个文件记录修改的lsn号

5、恢复步骤

A、删除数据目录下的文件:rm -rf /var/lib/mysql/*

B、恢复日志---完全备份的日志

 innobackupex --user root --password 123456

--databases="performance_schema sys mysql db666"

--apply-log --redo-only   //恢复日志,并合并日志

/onebak --no-timestamp

C、恢复第一次增量的备份(只需要恢复日志,日志合并即可)

 innobackupex --user root --password 123456

--databases="performance_schema sys mysql db666"

--apply-log --redo-only /onebak  //源日志路径

--incremental-dir=/new1 --no-timestamp   //需合并的日志文件的路径

D、恢复第二次增量的备份

innobackupex --user root --password 123456

--databases="performance_schema sys mysql db666"

--apply-log --redo-only /onebak //源日志文件的路径

--incremental-dir=/new2 --no-timestamp //第二次增量备份合并的日志

E、恢复数据,只需还原全备份里面的,因为增量备份的内容已经合并到全备里面

innobackupex --user root --password 123456  --copy-back  /onebak

F、给数据目录给权限,重启服务验证

chown    -R     mysql:mysql    /var/lib/mysql

systemctl     restart      mysqld

四、恢复完全备份数据中的单张表

1、export //导出表信息 import //导入表空间

   删除表空间:alter  table 表    discard  tablespace;

2、备份单个数据库:

   innobackupex --user root --password 123456 

   --databases="mydb" --no-timestamp /mydb  //只备份一个数据库

3、删除表,创建表(表字段必须要和以前的一样,模拟表丢失

drop table t1;       create table t1(id int);

4、导出表信息:用到的参数是--export

innobackupex --user root --password 123456 --databases="db66" --apply-log --export /db66

5、删除表空间:在mysql命令行里操作

 alter table db66.t1 discard tablespace;

6、把备份目录下导出的表信息拷贝到数据库目录下,并给权限

cp /db66/db66/t1.{cfg,exp,ibd} /var/lib/mysql/db66/

chown mysql /var/lib/mysql/db66/t1.*

7、导入表空间

alter table db66.t1 import tablespace;

8、验证:select * from db66.t1;

原文地址:https://blog.51cto.com/14421632/2415070

时间: 2024-08-15 19:24:42

mysql系列-------使用第三方工具-percona来备份mysql和恢复的相关文章

Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)

Percona Xtrabackup备份mysql大数据库(完整备份与增量备份) 文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 innobackupex使用方法 完整备份及还原 增量备份及还原 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁).XtraBackup支持所有的Percona

Percona Xtrabackup备份mysql (完整备份与增量备份)

Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM 的备份同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流压缩到传输到其它服务器 4.能比较容易地创建主从同步 5.备份MySQL时不会增大服务器

Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份 同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流

Percona Xtrabackup备份mysql(转)

原文:http://www.drupal001.com/2014/02/percona-xtrabackup-mysql/ Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热

Percona Xtrabackup备份mysql全库及指定数据库(转)

原文:http://www.drupal001.com/2014/02/percona-xtrabackup-mysql/ Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热

Percona Xtrabackup 备份MySQL 实例(转)

老规矩,开场白,刚开始用mysqldump,备份100G+的数据库,再加上服务器繁忙,备份速度像蜗牛似的,于是寻找更高效的备份方法.网上都说用xtrabackup比较适合备份大的数据库,而且备份效率也高,就尝试使用一次,结果明显感觉比mysqldump备份与恢复速度就是快不少,那以后就用它了.大礼拜日的在家也没事,结合生产环境,写了这篇文档,刚接触的朋友,可以参考下,不多说,入正题! 1.初次备份前准备工作 1.1 了解备份方式 热备份:读写不受影响(mysqldump-->innodb) 温备

MySQL系列:innodb源码分析之redo log恢复

在上一篇<innodb源码分析之重做日志结构>中我们知道redo log的基本结构和日志写入步骤,那么redo log是怎么进行数据恢复的呢?在什么时候进行redo log的日志推演呢?redo log的推演只有在数据库异常或者关闭后,数据库重新启动时会进行日志推演,将数据库状态恢复到关闭前的状态.那么这个过程是怎么进行的呢?以下我们逐步来解析. 1.recv_sys_t结构 innodb在MySQL启动的时候,会对重做日志文件进行日志重做,重做日志是通过一个recv_sys_t的结构来进行数

使用XtraBackup恢复|备份 Mysql数据库 -- 数据恢复篇

数据恢复篇 XtraBackup工具介绍: 现在我们给MySQL做备份的时候经常会考虑到数据量的增长,数据量较小的时候用mysqldump,随着数据量越来越大mysqldump也就不太合适了.第一不支持增量备份,第二恢复的时候也较慢.这里推荐使用Percona公司的XtraBackup. 简单介绍一下热备份工具XtraBackup,它是Percona公司推出的一款热备份工具,备份的时候不影响数据读写操作,是商业工具HotBackup的一个替代(现在应该叫MySQL Enterprise Back

mysql系列之多实例2----基于多配置文件

经过上一篇博文mysql系列之多实例1----介绍对mysql多实例进行了简单的介绍,本片博文将开始针对mysql多实例的第一种实现方案,基于多配置文件的mysql多实例进行部署实现. 环境: CentOS 6.5 x86_64位 采用最小化安装,系统经过了基本优化 selinux 为关闭状态,iptables 为无限制模式 mysql版本:mysql-5.5.38 源码包存放位置:/usr/local/src 源码包编译安装位置:/usr/local/mysql 数据库存放位置:/mydata