xtrabackup备份与恢复

一:安装xtrabackup

二:备份:完全备份+二进制日志

三:恢复:完全备份+二进制日志

四:完全备份+增量备份

五:恢复:完全备份

1.1如果遇到如下问题是因为需要依赖包

1.2解决方法

yum -y install perl perl-devel libaio libaio-devel perl-Time-HiResperl-DBD-MySQL

1.3如果mysql是通过源码编译方式安装的,在安装xtrabackup的时候记得在最后添加--nodeps,因为它是依赖mysql client的

2.1执行innobackupex对数据库进行完全备份

[[email protected] /]# innobackupex --user=user_name -password=pwd  saveTargetDirectory

说明:在备份的同时,innobackupex还会在备份目录中创建如下其它文件

1.xtrabackup_checkpoints:备份类型(如完全或增量)、备份状态(如是否已经perpared状态)和LSN(日志序列号)

2.xtrabackup_binlog_info:mysql服务器备份时正在使用的二进制日志文件及备份这一刻为止二进制日志事件的位置

3.xtrabackup_binlog_pos_innodb:二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前position

4.xtrabackup_binary:备份中用到的xtrabackup的可执行文件

5.bckup-my.cnf:备份命令用到的配置选项信息

在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录。这样,innobackupex命令就会创建一个BACKUP-DIR目录来存储备份数据

2.2准备(prepare)一个完全备份

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含“尚未提交的事务”或者“已经提交但尚未同步到数据文件中的事务”。因此,此时数据文件仍处于不一致状态。“准备”的主要作用正是通过回滚未提交的事务以及同步已经提交的事务到数据文件,也使得数据文件属于一致性状态

innobackupex命令的--apply-log选项可用于实现上述功能

[[email protected] /]# innobackupex --apply-log /path/to/BACKUP-DIR

在实现“准备”的过程中,innobackupex通常还可以使用--use-memory选项来指定其可以使用的内存的大小,默认通常为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高其完成速度

3.1模拟备份完成后,数据库又做了其它的一些操作

3.2拷贝二进制日志文件,并把二进制日志文件备份之后的二进制事件输出到sql文件,然后删除数据目录下的所有文件

3.3执行恢复

[[email protected] /]# innobackupex --copy-back /path/to/backDir

3.4恢复完成之后文件以及目录的属组属主不是mysql,所以需要修改恢复后的所有文件的属组属主

[[email protected] /]# chown -R mysql.mysql /MySQL_DATA/

3.5把二进制日志文件转成sql文件,启动mysql服务,关闭会话级别的二进制日志

mysql> set sql_log_bin=0;

3.6开启会话级别的二进制日志

4.1添加数据

4.2完全备份

[[email protected] /]# innobackupex --user=root -password=‘redhat‘ /path/full/dir

4.3再次添加数据

4.4第一次 innobackupex增量备份

innobackupex --incremental 当前增量备份地址 --incremental-basedir=上一次增量备份存放地址

说明:innobackupex --incremental /backup --incremental-basedir=BASEDIR

其中,basedir指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/backup目录中创建一个新的以时间命名的目录,以存放所有的增量备份数据。另外,在执行过增量备份之后,再一次进行增量备份时,其--incremental-basedir应该指向上一次的增量备份所在的目录

需要注意的是:增量备份仅能应用于InnoDB或者XtraDB表,对于MyISAM表而言,执行增量备份时其实进行的是完全备份

“准备”(prepare)增量备份与准备完全备份有着一些不同,尤其要注意的是:

1.需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。

2.基于所有的备份将未提交的事务进行“回滚”

增量备份是指,上次完全备份或者增量备份之后产生的新数据的备份,所以第二次的增量备份的basedir应该指向上一次增量备份的目录

4.5再次新增数据,再次增量备份

4.6“准备”prepare完全备份

[[email protected] /]# innobackupex --apply-log --redo-only 完全备份存放地址

4.7“准备”prepare第一次增量备份

[[email protected] /]# innobackupex --apply-log --redo-only 完全备份存放地址 
                                 --incremental-dir=第一次增量备份目录

4.8“准备”prepare第二次增量备份

[[email protected] /]# innobackupex --apply-log --redo-only 完全备份存放地址
                                 --incremental-dir=第二次增量备份目录

5.还原数据

5.1停止mysql服务

5.2删除数据目录下的所有文件(如果是生产环境,最后把二进制日志文件拷贝出去更好的方式是二进制日志文件和数据目录不要放到一个目录下)

5.3 innobackupex执行完全恢复

5.4修改属组属主

5.5启动mysql服务,连接mysql查看数据

时间: 2024-10-12 23:54:58

xtrabackup备份与恢复的相关文章

MySQL之Xtrabackup备份与恢复

MySQL之Xtrabackup备份与恢复 MySQL之Xtrabackup备份与恢复 一.Xtrabackup介绍 MySQL冷备.mysqldump.MySQL热拷贝都无法实现对数据库进行增量备份.在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况下,可以每天进行完整备份,如果每天产生的数据量较大,需要定制数据备份策略.例如每周实用完整备份,周一到周六实用增量备份.而Percona-Xtrabackup就是为了实现增量备份而出现的一款主流备份工具,xtra

xtrabackup备份与恢复实践

说明 xtrabackup  --percona 特点: 开源,在线备份innodb表 支持限速备份,避免对业务造成影响 支持流备 支持增量备份 支持备份文件压缩与加密 支持并行备份与恢复,速度快 地址:https://www.percona.com/downloads/XtraBackup xtrabackup备份原理 基于innodb的crash-recovery功能 备份期间允许用户读写,写请求产生redo日志 从磁盘上拷贝数据文件 从innodb redo log  file实时拷贝走备

xtrabackup备份与恢复MySQL

Xtrabackup 是percona公司的开源项目,用以实现类似innodb官方的热备份工具InnoDB Hot Backup的功能,能够非常快速地备份与恢复mysql数据库. Xtrabackup中包含两个工具: xtrabackup是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构: innobackupex是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力. 下面介绍xtrabackup的全部.增量的备份与恢复.

16、Xtrabackup备份与恢复

XTRABACKUP xtrabackup是percona公司开发的第三方备份软件,只备份innodb引擎表的ibd文件(frm不备份),不备份myisam引擎表.备份性能很高,备份期间没有任和锁,ddl.dml.select都不受影响 xtrabackup全备: step1:这步只是在系统层做了个拷贝,数据库目录只拷贝ibd文件,frm表结构需要恢复时手动拷贝,log文件不备份 [[email protected] data]# xtrabackup --backup --datadir=/m

XtraBackup 备份与恢复

前一篇文章我们讲到了PXB的原理以及安装方法,接下来将详细介绍 XtraBackup 备份和恢复的具体过程. xtrabackup 工具有许多参数,具体可去官网查询(xtrabackup 参数选项),这里简单介绍一些常用的参数. --defaults-file=[MY.CNF] 指定配置文件:只能从给定的文件中读取默认选项. 且必须作为命令行上的第一个选项:必须是一个真实的文件,它不能是一个符号链接. --database=# 指定备份的数据库和表,格式为:--database="db1[.tb

XtraBackup 备份与恢复实例讲解

XtraBackup官网 www.percona.com 下载XtraBackup wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/i386/percona-xtrabackup-2.3.3-1.el6.i686.rpm XtraBackup基本安装 yum install percona-xtrabackup-2.3.3-1.el6.i686.rpm xtrab

MySQL备份与恢复常用方法总结(mysqldump/xtrabackup/lvm快照备份/二进制日志及时点恢复)

MySQL备份与恢复常用方法总结 (mysqldump/xtrabackup/lvm快照备份/逻辑备份与恢复/二进制日志及时点恢复) 自言:学习在于总结,把所了解的类似东西放到一起更能加深记忆 一.了解备份相关知识 1)按服务器备份时状态可分为:     热备份:读.写不受影响:     温备份:仅可以执行读操作:     冷备份:离线备份:读.写操作均中止:2)按服务器备份数据集可分为:     物理备份:复制数据文件:     逻辑备份:将数据导出至文本文件中:3)按服务器备份数据量可分为:

多种方法备份Mysql数据库

前言:Mysql数据库的备份是重中之重,在生产过程中,数据库会因硬件故障,软件故障,黑客攻击,误操作等造成数据丢失,但经过精密的备份,完全能把数据恢复过来. 一,备份工具 这里介绍几种常用的备份方式 cp:物理备份工具, 适用于所有的存储引擎, 冷备.完全备份.部分备份 mysqldump:逻辑备份工具, 适用于所有的存储引擎, 支持温备.完全备份.部分备份.对于InnoDB存储引擎支持热备 xtrabackup:一款非常强大的InnoDB/XtraDB热备工具, 支持完全备份.增量备份, 二,

XtraBackup全量备份与恢复MySQL数据

防伪码:没有相当程度的孤独是不可能有内心的平和. 1.概述 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server 和 MariaDB,并且开源,淘宝的RDS for MySQL的物理备份就是基于XtraBackup做的. Xtrabackup有两个主要的工具:xtrabackup.innobackupex (1)xtrabackup是C/C++编译的二进制文件