广告
返回顶部
首页 > 资讯 > 数据库 >Percona Xtrabackup备份mysql (完整备份与增量备份)
  • 651
分享到

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

2024-04-02 19:04:59 651人浏览 八月长安
摘要

Percona Xtrabackup备份Mysql (完整备份与增量备份)Xtrabackup简介Percona XtraBackup是开源免费的mysql数据库热备份软件,它能对InnoDB和XtraDB

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时不会增大服务器负载


Xtrabackup的特性是针对大数据进行备份恢复使用,数据库大小一般在G以上或10G以上,对于数据量小的Mysql库完全可以使用


mysqldump来解决,备份和恢复速度快而且操作简便快捷,这里对mysqldump命令就不做介绍了。


Xtrabackup安装


这里只介绍ubuntu-12.04下的安装方法,其它系统的安装方法请参考 Http://www.percona.com/doc/percona-


xtrabackup/2.1/installation.html


apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

在/etc/apt/sources.list加入:



deb http://repo.percona.com/apt precise main

deb-src http://repo.percona.com/apt precise main

执行update及安装操作


apt-get update

apt-get install percona-xtrabackup

注:precise是Ubuntu-12.04的版本代号,如果是其它系统版本,需要更换。


Xtrabackup工具介绍


安装XtraBackup后,其实会有几个工具:


innobackupex:这个是其实是下面三个工具的一个perl脚本封装,可以备份MyISAM, InnoDB, XtraDB表。但在处理Myisam时需要


加一个读锁。


xtrabackup:一个由C编译而来的二进制文件,只能备份InnoDB和XtraDB数据。


xbcrypt:用来加密或解密备份的数据。


xbstream:用来解压或压缩xbstream格式的压缩文件。


建议使用perl封装的innobackupex来作数据库备份,因为比较容易使用。所以下面只介绍innobackupex的使用。其它的使用参考: 


http://www.percona.com/doc/percona-xtrabackup/2.1/manual.html


innobackupex使用方法


完整的选项使用请执行innobackupex –help,这里只介绍使用常用的选项进行完整备份及增量备份和还原。


innobackupex Options 这里只对常用参数进行描述


–defaults-file 数据库的配置文件路径,感觉本地备份不写也可以,远程没测试过。


–apply-log 准备在一个备份上启动mysql服务。


–copy-back 从备份目录拷贝数据,索引日志到my.cnf文件里规定的初始位置。


–no-timestamp 创建备份时不自动生成时间目录,可以自定义备份目录名例如: /backups/mysql/base


–databases 用于指定要备份的数据库, 多个库文件使用方法: “database1 database2″


–incremental 在全备份的基础上进行增量备份,后跟增量备份存贮目录路径


–incremental-basedir=DIRECTORY 增量备份所需要的全备份路径目录或上次做增量备份的目录路径


–incremental-dir=DIRECTORY 增量备份存贮的目录路径


–redo-only 用于准备增量备份内容把数据合并到全备份目录,配合–incremental-dir 增量备份目录使用。


–force-non-empty-directories 如果是特定库备份还原,不需要删掉整个mysql目录,只是特定库的及相关文件就可以,还原时


加上此参数就不会报错。


其他具体参数可以参考:http://www.percona.com/doc/percona-


xtrabackup/2.1/innobackupex/innobackupex_option_reference.html


完整备份及还原


一、全部数据库


备份:


innobackupex --user=root --passWord=root --defaults-file=/etc/mysql/my.cnf /data/mysql_backup/full_backup

还原:


service mysql stop

 

rm -rf /var/lib/mysql

 

mkdir /var/lib/mysql

 

innobackupex --apply-log /data/mysql_backup/full_backup --use-memory=1G --user=root --password=root

 

innobackupex --copy-back /data/mysql_backup/full_backup

 

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

 

service mysql start

查看恢复的数据库


二、指定数据库


备份:


假如我们要备份Centos和aabb数据库。


innobackupex --user=root --password=root --defaults-file=/etc/mysql/my.cnf --databases="centos aabb" 


/data/mysql_backup/

这样就会在/data/mysql_backup生成一个带时间的目录,如果不需要带时间,可以使用选项–no-timestamp。


如果想备份成压缩文件,可以使用如下语句:


innobackupex --user=root --password=root --defaults-file=/etc/mysql/my.cnf --databases="centos aabb" --no-


timestamp --stream=tar ./ | gzip - > centos-aabb.bz.tar.gz

还原:


假如完整备份的路径为/data/mysql_backup/full_backup,如果完整备份是压缩文件,需要先解压再还原。

service mysql stop

 

rm -rf /var/lib/mysql/ibdata*

 

rm -rf /var/lib/mysql/ib_logfile*

 

rm -rf /var/lib/mysql/centos

 

rm -rf /var/lib/mysql/aabb

 

innobackupex --apply-log /data/mysql_backup/centos_aabb_full_backup

 

innobackupex --copy-back --defaults-file=/etc/mysql/my.cnf /data/mysql_backup/centos_aabb_full_backup

 

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

 

service mysql start

增量备份及还原


在这里全库的增量备份方法就不多讲了,只是针对特定数据库进行讲解,其实是同理的就是把下面参数中的–databases 选项去


掉就可以,感兴趣的可以自己试下。


增量备份是建立在完整备份的基础上的,所以首先确保已经完整备份了一次。


完整备份:


innobackupex --user=root --password=root --databases="centos" --no-timestamp 


/data/mysql_backup/centos_full_backup

现在完整备份的目录为/data/mysql_backup/centos_full_backup。


增量备份:


第一次增量备份:


innobackupex --incremental /data/mysql_backup/inc1 --no-timestamp --incremental-


basedir=/data/mysql_backup/centos_full_backup --user=root --password=root --defaults-file=/etc/mysql/my.cnf

第二次增量备份:需要把–incremental-basedir指定到上次做增量备份的目录,这里应该知道/data/mysql_backup/inc1


innobackupex --incremental /data/mysql_backup/inc2 --no-timestamp --incremental-basedir=/data/mysql_backup/inc1 


--user=root --password=root --defaults-file=/etc/mysql/my.cnf

选项–incremental是指定作增量备份 –incremental-basedir选项是指定上一次增量备份的目录(如果是第一次作增量备份,则


为完整备份的目录)。


还原:


增量备份的还原操作跟完整的还原有点不一样,首先必须使用–apply-log –redo-only对完整备份的目录及所有增量备份目录进


行操作,然后就可以像还原完整备份时的操作了。


对每个备份目录作apply-log redo-only操作(包括完整备份)


innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --user=root --password=root

 

innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --incremental-


dir=/data/mysql_backup/inc1 --user=root --password=root

 

innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --incremental-


dir=/data/mysql_backup/inc2 --user=root --password=root

看到有文章在恢复增量备份的时候提到在做最后一个读取增量记录的时候不使用–redo-only 参数, 经过测试,使用了此参数后


恢复的数据库也都运行正确,我使用的是2.17版本xtrabackup, 至于以前版本就没测试过。有知道的可以在这里分享下。


下面就跟还原完整备份时一样了:



service mysql stop

 

rm -rf /var/lib/mysql/ibdata*

 

rm -rf /var/lib/mysql/ib_logfile*

 

rm -rf /var/lib/mysql/centos

 

innobackupex --apply-log /data/mysql_backup/centos_full_backup --use-memory=1G --user=root --password=root

 

##--use-memory 能够定义读取备份时的内存大小,以便快速的完成还原准备工作。

 

innobackupex --copy-back --defaults-file=/etc/mysql/my.cnf /data/mysql_backup/centos_full_backup

 

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

 

service mysql start

现在全部增量恢复就完成了,可以登录数据库查看下恢复的数据了


您可能感兴趣的文档:

--结束END--

本文标题: Percona Xtrabackup备份mysql (完整备份与增量备份)

本文链接: https://www.lsjlt.com/news/41611.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Percona Xtrabackup备份mysql (完整备份与增量备份)
    Percona Xtrabackup备份mysql (完整备份与增量备份)Xtrabackup简介Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB...
    99+
    2022-10-18
  • percona-xtrabackup完全及增量备份与恢复
    一、简介Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。其主要特点是备份过程快速、可靠,不会...
    99+
    2022-10-18
  • mysql-物理备份-Percona xtrabackup
    xtrabackup是percona公司开发的一个用于mysql物理热备的备份工具。 软件安装后一共有4个可执行文件:      innobackupex:pe...
    99+
    2022-10-18
  • Percona XtraBackup怎样实现全备及增量备份与恢复
    Percona XtraBackup怎样实现全备及增量备份与恢复,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 p...
    99+
    2022-10-19
  • XtraBackup的增量备份
    实验场景: 两个mysql实例,一个端口为3306,一个端口为3307。 现在要在3306上做增量备份,并将备份恢复到3307上去。 备份: A) 0级备份 innobackup...
    99+
    2022-10-18
  • Percona XtraBackup 2.4 xtrabackup全量、增量备份恢复流程
    xtrabackup常用参数 --backup 创建备份并将备份存放到--target-dir目录 --defaults-file=[MY.CNF] 配置文件的路径 --target-dir=DIRE...
    99+
    2022-10-18
  • Percona Xtrabackup 8.0备份MySQL8
    随着Percona XtraBackup 8.0的推出,Percona XtraBackup 2.4将继续支持MySQL和Percona Server 5.6和5.7数据库。由于MySQL 8.0在数据字典...
    99+
    2022-10-18
  • MySQL定时备份(全量备份+增量备份)
    参考 zmcyu 的 mysql数据库的完整备份、差异备份、增量备份 更多binlog的学习参考马丁传奇的 MySQL的binlog日志,这篇文章写得认真详细,如果看的认真的话,肯定能学的很好的。 如果查看binlog是出现语句加密的情况...
    99+
    2016-10-03
    MySQL定时备份(全量备份+增量备份)
  • MySQL数据库完全备份与增量备份详解
    目录定义完全备份与恢复演示定义 完全备份就是将数据库中的数据及所有对象全部备份。 由于 mysql 服务器中的数据文件是基于磁盘的文本文件,所以完全备份就是复制数据库文件,是最简单也是最快速的方式。 但 MySQL 服务...
    99+
    2022-08-10
    MySQL数据库完全备份 MySQL数据库增量备份
  • 10分钟完成MySQL物理xtrabackup增量备份
    在生产环境中,我们一般采取mysqldump全库备份,但这对于大型数据库是不可用的,因为mysqldump是逻辑备份,备份和恢复的效率缓慢,根据个人经验给出一个临界值的话,50G以下的数据库可以用mysql...
    99+
    2022-10-18
  • mysql系列之5--完全备份和增量备份
    一、利用系统自带的工具实现完全备份:mysqldump数据备份方式:          物理备份:直接拷贝库或表对应的文件。限于myisam,跨平台性差 &...
    99+
    2022-10-18
  • mysql备份策略的实现(全量备份+增量备份)
    目录设计场景技术点服务器信息准备工作编写全量备份脚本(Mysql-FullyBak.sh)编写增量备份脚本设置定时任务crontab恢复操作最近项目需要对数据库数据进行备份,通过查阅各种资料,设计了一套数据库备份策略...
    99+
    2022-05-21
    mysql备份策略 mysql 全量备份 mysql 增量备份
  • Percona XtraBackup备份过程介绍
    备份过程可以用下图来说明: innobackupex 在启动后,会先 fork 一个进程,启动 xtrabackup进程,然后就等待 xtrabackup 备份完 ibd 数据文件; xtraba...
    99+
    2022-10-18
  • MySQL 增量备份
    增量备份的特点        增量备份的优点是没有重复数据,备份量不大,时间短。缺点也很明显,需要上次完全备份及完全备份之后所有的增量备...
    99+
    2022-10-18
  • mysql如何全量备份和增量备份
    本篇内容主要讲解“mysql如何全量备份和增量备份”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql如何全量备份和增量备份”吧!mysql 全量备份:vi...
    99+
    2022-10-18
  • mysql全量备份和增量备份方法
    文章目录 一、mysql全量备份1、修改 /etc/my.cnf文件添加如下内容2、测试任务脚本3、添加执行脚本4、天假定时任务 二、mysql增量备份1、修改 /etc/my.cnf文件...
    99+
    2023-10-11
    mysql 数据库
  • mysql全库备份/增量备份脚本
    http://hongge.blog.51cto.com/ 生产环境中Mysql数据库的备份是周期性重复的操作,所以通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本 mysqldump备份...
    99+
    2022-10-18
  • MySQL完全、增量的备份与恢复
    数据库备份的重要性 提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据备份就没法找到数据。 使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案。 没有数据库就没有一切,数据...
    99+
    2022-10-18
  • Xtrabackup 增量备份、恢复、原理
    整合了网上的一些资料,结合自己的理解,并进行了实验验证理解一:1,Xtrabackup是什么Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具I...
    99+
    2022-10-18
  • MySQL 增量备份与还原
    说明:所谓增量备份,就是备份自上一次备份之后增加或改变的文件或内容。然而MySQL没有提供直接的增量备份方法,但是却可以通过MySQL的二进制日志间接实现增量备份。下面有关操作方法进行测试。..实验环境:装...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作