使用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的安装

首先列出以下我当前的服务器环境

下载Xtrabackup

[root@localhost softs]# wget http://www.percona.com/downloads/XtraBackup/LATEST/RPM/rhel5/i386/percona-xtrabackup-2.1.6-702.rhel5.i386.rpm--2014-01-14 10:06:41--  http://www.percona.com/downloads/XtraBackup/LATEST/RPM/rhel5/i386/percona-xtrabackup-2.1.6-702.rhel5.i386.rpm

Resolving www.percona.com... 74.121.199.234

……………………此处省略部分内容输出………………

100%[==========================>] 8,662,225    360K/s   in 32s    

2014-01-14 10:07:43 (1448 KB/s) - `percona-xtrabackup-2.1.6-702.rhel5.i386.rpm' saved [8662225/8662225]

rpm包直接安装

[root@localhost softs]# rpm -ivh percona-xtrabackup-2.1.6-702.rhel5.i386.rpm

error: Failed dependencies:

     perl(DBD::mysql) is needed by percona-xtrabackup-2.1.6-702.rhel5.i386

这里需要解决依赖包的关系,我直接使用本地yum安装

[root@localhost softs]# yum install perl-DBD-MySQL  -y

[root@localhost softs]# rpm -ivh  percona-xtrabackup-2.1.6-702.rhel5.i386.rpm

Preparing...                ########################################### [100%]

1:percona-xtrabackup     ########################################### [100%]

再次尝试安装后成功

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

innobackupex:

这个是其实是下面三个工具的一个perl脚本封装,可以备份MyISAM, InnoDB, XtraDB表。

xtrabackup:

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

xbcrypt:

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

xbstream:

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

建议使用perl封装的innobackupex来作数据库备份,因为比较容易使用。

本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/

时间: 2024-12-05 14:23:35

使用Xtrabackup全量备份和恢复mysql数据库的相关文章

innobackupex来备份和恢复MySQL数据库的例子

背景介绍: 在一些技术群里面,看到仍然有一些运维在用mysqldump这样的命令来备份MySQL,于是感觉有必要介绍一下innobackupex. 现在,绝大多数使用MySQL的场景中,都用到了Master-Slave这样的架构.相对于mysqldump而言,使用innobackupex备份有以下好处: 1. 以数据文件为备份对象,文件级别备份,速度快,尤其适合需要对所有数据进行备份的场景: 2. 热备份,不会对现有的数据库访问造成任何影响: 3. 记录binlog以及replication相关

如何用PHP的页面备份、恢复Mysql数据库中的数据表

mysql|备份|恢复|数据|数据库|页面 <?           //备份数据       $i   =   0;       $crlf="\r\n";       $dbname="xgtqr";       global     $dbconn;       $dbconn   =   mysql_connect("localhost","root","root");       $db  

用批处理实现自动备份和清理mysql数据库的代码_Mysql

有网友问我在win2003下如何自动备份MySQL数据库,既然是自动备份,那肯定得写脚本.我想了想,这个并不是很困难,是很容易实现的,备份可以用脚本实现,那自动又该如何实现呢?也很简单,就用windows自带的"任务计划"功能,设定一个时间,让系统定时跑脚本,不就实现了自动备份数据库的功能了吗? 不过到现在已经有很多的mysql备份软件,例如我比较喜欢使用的是护卫神的好备份软件. 下载地址:http://www.jb51.net/softs/42944.html 首先把脚本代码贴出来:

利用Xtrabackup工具备份及恢复(MySQL DBA的必备工具)_Mysql

Xtrabackup------MySQL DBA的必备工具 注意: 1)文档参照http://www.percona.com/docs/wiki/percona-xtrabackup:start 2)mysql要使用5.1.50版本或以上. 一.Xtrabackup简介及安装 1.Xtrabackup  是percona的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表),可以看做是InnoDB Hotbackup的免费替代品.                   

mysql数据库的全量备份

mysql数据库的全量备份,包括数据和结构.保存最新的10次备份. 准备工作: 创建备份主目录 mkdir  /backup 一:编写脚步文件mysql_backup.sh #!/bin/sh # mysql_backup.sh: 备份mysql数据信息,并且只保留最新的10份. #数据库用户名 db_user="root" #数据库密码 db_passwd="imsuser" #数据库IP db_host="localhost" #数据库名 d

MySQL 从全库备份中恢复指定的表和库示例_Mysql

MySQL 从备份数据库中恢复指定的表和库示例 在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --single-transaction -A --master-data=2 >dump.sql 只还原erp库的内容 [root@HE1 ~]# mysql -uroot -pMANAGER erp --one-database <dump.sql 可以看出这里主要用到的参数是--one-database简写-o

从MySQL全库备份中恢复某个库和某张表

从MySQL全库备份中恢复某个库和某张表 在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --single-transaction -A --master-data=2 >dump.sql 只还原erp库的内容 [root@HE1 ~]# mysql -uroot -pMANAGER erp --one-database <dump.sql </dump.sql<> 可以看出这里主要用到的参数

Linux系统mysql5.7数据库的全量备份和增量备份shell实例

曾经之前也有写过类似mysql全量和增量备份脚本,不过过于简单.昨天晚上给公司线上服务器写了个针对mysql5.7的,相对来讲更为优化的一个实例. 注:这个脚本仅仅适合小型数据库,不适合中大型数据库.毕竟是逻辑备份方式,数据库过大导入会比较慢,建议采用innobackupex方式备份,包括我自己服务器也是采用的innobackupex. 全量备份脚本: #!/bin/bash #bak mysql all # v1.0 #2016.8.4 TIME=`date +%Y%m%d_%H%M%S` L

Greenplum的全量备份介绍, gpcrondump

本节介绍一下Greenplum的全量备份.全量备份脚本 #!/bin/bash GPHOME=/home/digoal/gphome # Replace with symlink path if it is present and correct if [ -h ${GPHOME}/../greenplum-db ]; then GPHOME_BY_SYMLINK=`(cd ${GPHOME}/../greenplum-db/ && pwd -P)` if [ x"${GPHOM