Xtrabackup 流备份与恢复

Xtrabackup是MySQL数据库的备份不可多得的工具之一。提供了全备,增备,数据库级别,表级别备份等等。最牛X的还有不落盘的备份,即流备份方式。对于服务器上空间不足,或是搭建主从,直接使用流式备份大大简化了备份后的压缩复制所带来的更多开销。Xtrabackup支持tar格式以及xbstream格式的流备份。本文即是对此展开的相关描述。

1、基于tar格式备份
a、备份到本地
# innobackupex --stream=tar  /tmp >/backup/bak.tar           ###非压缩方式
# innobackupex --stream=tar /tmp |gzip >/backup/bakz.tar.gz  ###压缩方式
# ls -hltr
total 42M
-rw-r--r-- 1 root root  39M Apr 15 17:23 bak.tar
-rw-r--r-- 1 root root 3.3M Apr 15 17:24 bakz.tar.gz

###解压备份
# mkdir bak bakz
# tar -xivf bak.tar -C /backup/bak
# tar -xizvf bakz.tar.gz -C /backup/bakz
# du -sh *
38M bak
39M bak.tar
38M bakz
3.3M   bakz.tar.gz

b、备份到远程
# innobackupex --stream=tar /tmp | ssh [email protected] \ "cat - > /backup/bak.tar"  ###非压缩方式
# innobackupex --stream=tar /tmp | ssh [email protected] \ "gzip >/backup/bak.tar.gz" ###压缩方式

2、使用xbstream格式备份
a、备份到本地
# innobackupex --stream=xbstream /tmp >/backup/bak.xbstream                       ###非压缩方式 
# innobackupex --stream=xbstream --compress /tmp >/backup/bak_compress.xbstream   ###压缩方式
# ls -hltr
total 43M
-rw-r--r-- 1 root root  37M Apr 15 17:41 bak.xbstream
-rw-r--r-- 1 root root 6.0M Apr 15 17:41 bak_compress.xbstream

###解压备份
# mkdir bk bk_compress
# xbstream -x < bak.xbstream -C /backup/bk       ###解压xbstream格式

###解压xbstream格式,compress参数的备份                 
# xbstream -x < bak_compress.xbstream -C /backup/bk_compress                         ###首先解压xbstream
# for bf in `find . -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) && rm $bf; done ###再解压qp压缩格式
# innobackupex --decompress /backup/bk_compress     ###如果xtrabackup版本大于2.1.4,可以直接通过该方式解压

b、备份到远程
###使用压缩备份到远程并解压
# innobackupex --stream=xbstream --compress /tmp | ssh [email protected] "xbstream -x -C /backup/stream"

3、流备份的全备与增备
###全备数据库,使用--extra-lsndir参数生产checkpoints文件
# innobackupex --stream=xbstream --compress --extra-lsndir=/backup/chkpoint /tmp >/backup/bak_compress.xbstream
# more /backup/chkpoint/xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 8408290
last_lsn = 8408290
compact = 0

### Author : Leshami
### Blog   : http://blog.csdn.net/leshami
###增备数据库,如果后续还需要再次增备,则可以再次指定--extra-lsndir,如果与上次备份指定相同的位置,该文件被覆盖
# innobackupex --compress --incremental --extra-lsndir=/backup/chkpoint --incremental-basedir=/backup/chkpoint \
>  --stream=xbstream /tmp >/backup/bak_compress_inc.xbstream

4、流备份的异机恢复
###备份到异机
# innobackupex --stream=xbstream --extra-lsndir=/backup/chkpoint /tmp | ssh [email protected] "xbstream -x -C /backup/stream"
# innobackupex --incremental --extra-lsndir=/backup/chkpoint --incremental-basedir=/backup/chkpoint --stream=xbstream \
> /tmp | ssh [email protected] "xbstream -x -C /backup/stream_inc"

###异机恢复,copy-back及后续步骤省略
# innobackupex --apply-log --redo-only /backup/stream
# innobackupex --apply-log /backup/stream --incremental-dir=/backup/stream_inc

5、其它注意事项
a、如果使用xbstream格式异机备份时,异机未安装xbstream(封装在xtrabackup中)则出现如下错误提示。
  bash: xbstream: command not found
  xtrabackup: Error writing file ‘UNOPENED‘ (Errcode: 32 - Broken pipe)
  xb_stream_write_data() failed.
  compress: write to the destination stream failed.
  xtrabackup: Error writing file ‘UNOPENED‘ (Errcode: 32 - Broken pipe)
  xb_stream_write_data() failed.
  xtrabackup: Error writing file ‘UNOPENED‘ (Errcode: 32 - Broken pipe)
  [01] xtrabackup: Error: xtrabackup_copy_datafile() failed.
  [01] xtrabackup: Error: failed to copy datafile.
  innobackupex: Error: The xtrabackup child process has died at /usr/bin/innobackupex line 2681.

b、异机备份时需要建立等效性,如下示例
  # ssh-keygen
  Generating public/private rsa key pair.
  Enter file in which to save the key (/root/.ssh/id_rsa):
  Enter passphrase (empty for no passphrase):
  Enter same passphrase again:
  Your identification has been saved in /root/.ssh/id_rsa.
  Your public key has been saved in /root/.ssh/id_rsa.pub.
  The key fingerprint is:
  29:45:ee:8d:b3:55:f1:5f:2f:da:2a:88:0c:0d:37:9f [email protected]
  
  ###copy 公钥到远程主机
  # ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
  21
  The authenticity of host ‘192.168.1.7 (192.168.1.7)‘ can‘t be established.
  RSA key fingerprint is 1d:7c:40:98:ef:de:6f:b8:8c:b2:87:72:0e:79:db:0a.
  Are you sure you want to continue connecting (yes/no)? yes
  Warning: Permanently added ‘192.168.1.7‘ (RSA) to the list of known hosts.
  [email protected]‘s password:
  Now try logging into the machine, with "ssh ‘[email protected]‘", and check in:
  
    .ssh/authorized_keys
  
  to make sure we haven‘t added extra keys that you weren‘t expecting.
  
  ###验证等效性是否成功
  # ssh 192.168.1.7 date;
  Wed Apr 15 17:55:31 CST 2015

c、使用tar格式远程增量备份时收到如下提示,即只支持xbstream
  xtrabackup: error: streaming incremental backups are incompatible with the
  ‘tar‘ streaming format. Use --stream=xbstream instead.

d、用流备份,默认的临时目录都是系统的/tmp目录,需要保证该目录有足够的空间,或指定--tmpdir选项

e、流备份日志输出
  innobackupex --stream=xbstream /tmp 2>>"$backupLog" | gzip > "$backup_file" 2>>"$backupLog"

6、更多参考
      基于innobakcupex跨实例不完全恢复步骤      基于Innobackupex的MySQL备份脚本      基于Innobackupex的不完全恢复      基于Innobackupex的完全恢复      基于Innobackupex的增备及恢复     基于Innobackupex的全备恢复      Innobackupex 全备数据库

时间: 2024-07-29 09:20:34

Xtrabackup 流备份与恢复的相关文章

Mysql不锁表备份之Xtrabackup的备份与恢复

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

使用innobackupex基于从库搭建mysql主从架构

?? MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一.但对于较大的数据库则该方式并非理想的选择.使用Xtrabackup可以快速轻松的构建或修复mysql主从架构.本文描述了基于现有的从库来快速搭建主从,即作为原主库的一个新从库.该方式的好处是对主库无需备份期间导致的相关性能压力.搭建过程中使用了快速流备份方式来加速主从构建以及描述了加速流式备份的几个参数,供大家参考. 有关流式备份可以参考:Xtrabackup 流备份与恢复 1.备份从库###远程备份期间

MySQL之Xtrabackup备份与恢复

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

xtrabackup 全备份,增量备份,恢复 mysql数据库

Xtrabackup使用指南 InnoDB数据备份工具 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写,也就是不加锁),是商业备份工具InnoDB Hotbackup的一个很好的替代品 一.Xtrabackup介绍  A.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具

数据备份与恢复

一. 数据备份与恢复 1.1 备份数据的方式 物理备份:cp   tar Mysqlhotcopy:只能备份存储引擎是myisam的表 且依赖于perl-DBD-MySQL Yum   -y  install  perl-DBD-MySQL 备份格式: Mysqlhotcopy -uroot  -p123  原库名  新库名; 逻辑备份:用mysql自己提供的命令或第三方软件提供的备份命令, 备份创建库,表和产生表记录时的sql语句. 1.2 数据备份策略 完全/完整备份:备份数据库服务器上的所

xtrabakup备份与恢复

内核方面:$ cat /etc/centos-release CentOS Linux release 7.4.1708 (Core)$ uname -r 3.10.0-693.el7.x86_64下载安装xtrabackup:$ wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/Percona-XtraBackup-2.4.12-r170eb8c-

Xtrabackup--备份mysql

Xtrabackup介绍 Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁):mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合. Xtrabackup安装完成后有4个可执行文件,其中2个比较重要的备份工具是innobackupex.xtrabackup 1)xtrabackup 是专门用来备份

xtrabackup备份与恢复实践

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

Xtrabackup全量备份与恢复mysql数据库

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