首页 数据库 mysql教程 xtrabackup 安装及应用_MySQL

xtrabackup 安装及应用_MySQL

Jun 01, 2016 pm 01:49 PM
安装 开源

bitsCN.com


xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表)

官方网址http://www.percona.com/docs/wiki/percona-xtrabackup:start

 

 

安装:
rpm -ivh --nodephotoshop/ target=_blank class=infotextkey>ps xtrabackup-1.2-22.rhel5.x86_64.rpm
--nodephotoshop/ target=_blank class=infotextkey>ps(不检查软件间的依赖关系),因为安装xtrabackup需要mysql_client,但是我的是通过源码安装的。

 

前奏:
环境变量要设置正确
比如 export PATH=$PATH:/usr/local/mysql/bin   如果mysql没有设置到PATH里 会报错。

 

1.innobackupex-1.5.1 和 xtrabackup备份详解
========================================================================================
innobackupex-1.5.1会根据/et/my.cnf来确定MySQL的数据位置。

1.普通备份:
innobackupex-1.5.1 [--defaults-file=/etc/my.cnf]  --user=root [--host=192.168.1.52] [--password=xxx] [--port=3306]
 /data/back_data/  2>/data/back_data/1.log   

备份的目录是/data/back_data/
这里的2>/data/back_data/1.log,是将备份过程中的输出信息重定向到1.log

innobackupex-1.5.1 --slave-info .....
--slave-info会记录复制主日志的 复制点,便于重新做复制用。(用在备份从机器用)

备份后的文件:
xtrabackup_binlog_info    -- 存放binlog的信息。(binlog需要另外拷贝备份,如果需要binlog的话)
xtrabackup_checkpoints    -- 存放备份的起始位置和结束位置。


恢复:
首先停掉数据库,然后删除数据库目录下的所有数据库文件.
cd /data/mysql_data
rm -rf *     # 删除数据目录里的所有文件

innobackupex-1.5.1 --user=root --apply-log /data/back_data/2010-10-26_16-09-37   # 应用日志
innobackupex-1.5.1 --user=root --copy-back /data/back_data/2010-10-26_16-09-37

默认innobackupex-1.5.1会将二进制日志信息存放在文件xtrabackup_binlog_info中发(方便做Slave)。
cd /data
chown -R mysql:mysql mysql_data/
重启mysql服务

 


2.打包(Tar)备份:
innobackupex-1.5.1 --user=root [--password=xxx] --stream=tar /data/back_data/2/  2>/data/back_data/2.log  1>/data/back_data/2.tar

还原:
cd /data/back_data/2/
tar ixvf 2.tar
root@mablevi-desktop:/data/back_data/2# ls
2.tar  backup-my.cnf  ibdata1  ibdata2  mablevi  mysql  xtrabackup_binlog_info  xtrabackup_checkpoints  xtrabackup_logfile
准备还原
root@mablevi-desktop:~# innobackupex-1.5.1 --user=xxx [--password=xxx] --apply-log /data/back_data/
......
innobackupex: completed OK!

删除数据目录里的所有文件
rm -rf /data/mysql_data/*
拷贝:
root@mablevi-desktop:~# innobackupex-1.5.1 --user=xxx [--password=xxx] --copy-back /data/back_data/
......
innobackupex: completed OK!

cd /data
chown -R mysql:mysql mysql_data/
重启mysql服务


3. 压缩(tar gzip)备份
innobackupex-1.5.1 --user=root [--password=xxx] --stream=tar 
/data/back_data/2/  2>/data/back_data/2.log | gzip > /data/back_data/2.tar.gz 
这里使用了管道|将innobackupex-1.5.1作为gzip的标准输入。恢复,只需要使用tar -izxvf 解压对应的文件后,操作完全同普通备份。

还原:
使用tar –izxvf 解压对应的文件后,操作完全同普通备份。
cd /data/back_data/2/
tar ixvf 2.tar

root@mablevi-desktop://data/back_data/2# ls
backup-my.cnf  ibdata1  ibdata2  mablevi  mysql  xtrabackup_binlog_info  xtrabackup_checkpoints  xtrabackup_logfile
准备还原:
root@mablevi-desktop:~# innobackupex-1.5.1 --user=xxx [--password=xxx] --apply-log /data/back_data/2/
......
innobackupex: completed OK!

删除数据目录里的所有文件
rm -rf /data/mysql_data/*

root@mablevi-desktop:/data/back_data/2# innobackupex-1.5.1 --user=xxx [--password=xxx] --copy-back /data/back_data/2/

cd /data
chown -R mysql:mysql mysql_data/
重启mysql服务

 

 

---------------------------------------------------------------------------------------------------------------------
xtrabackup 备份和恢复

备份:
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/back_data/

恢复:
需要执行两次xtrabackup --prepare
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/back_data/
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/back_data/

注意,xtrabackup只备份数据文件,并不备份数据表结构(.frm),所以使用xtrabackup恢复的时候,你必须有对应表结构文件(.frm)。


增量备份:
1. 全量备份
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/back_data/
2. 增量备份
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/back_data_inc/ --incremental-basedir=/data/back_data/
在增量备份的目录下,数据文件都是以.delta结尾的。增量备份只备份上一次全量备份后被修改过的page,所以增量备份只暂用较少的空间。

增量备份可以在增量备份的基础上增量。

 

增量备份恢复:
我们需要分别对全量、增量备份各做一次prepare操作。
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/back_data/2010-10-26_16-09-37
xtrabackup --prepare --target-dir=/data/back_data/2010-10-26_16-09-37 --incremental-dir=/data/back_data_inc
xtrabackup --prepare --target-dir=/data/back_data/ #这一步不是必须的 
这样,/data/back_data/下的数据文件就可以直接放到你的MySQL数据目录下,恢复数据了。
再次提醒,xtrabackup只备份InnoDB数据文件,表结构是不备份的,所以恢复的时候,你必须有对应表结构文件(.frm)。

rm -rf /data/mysql_data/ib*

cp -i /data/back_data/2010-10-26_16-09-37/ib* /data/mysql_data/

cd /data
chown -R mysql:mysql mysql_data/

 

 


2.innobackupex-1.5.1 与 xtrabackup 相结合
=======================================================================================
首先,innobackupex-1.5.1全备份:
innobackupex-1.5.1 --user=root /data/back_data/ 2>/data/back_data/1.log         #会生成一个时间文件夹,这里假如是2010-10-29_15-57-44
然后,xtrabackup 做增量备份:
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/back_data_inc/4 --incremental-basedir=/data/back_data/2010-10-29_15-57-44


恢复:
首先停掉数据库,备份二进制日志(如果有的话),然后删除数据库目录下的所有数据库文件.
cd /data/mysql_data
rm -rf *           # 删除数据目录里的所有文件

恢复全量备份:
innobackupex-1.5.1 --user=root --apply-log /data/back_data/2010-10-29_15-57-44   # 应用日志
innobackupex-1.5.1 --user=root --copy-back /data/back_data/2010-10-29_15-57-44   # 拷贝文件
恢复增量备份:
xtrabackup --prepare --target-dir=/data/back_data/2010-10-29_15-57-44 --incremental-dir=/data/back_data_inc/5

cd /data
chown -R mysql:mysql mysql_data/

重启mysql服务。

bitsCN.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Win11系统无法安装中文语言包的解决方法 Win11系统无法安装中文语言包的解决方法 Mar 09, 2024 am 09:48 AM

Win11系统无法安装中文语言包的解决方法随着Windows11系统的推出,许多用户开始升级他们的操作系统以体验新的功能和界面。然而,一些用户在升级后发现他们无法安装中文语言包,这给他们的使用体验带来了困扰。在本文中,我们将探讨Win11系统无法安装中文语言包的原因,并提供一些解决方法,帮助用户解决这一问题。原因分析首先,让我们来分析一下Win11系统无法

十个推荐开源免费文本标注工具 十个推荐开源免费文本标注工具 Mar 26, 2024 pm 08:20 PM

文本标注工作是将标签或标记与文本中特定内容相对应的工作。其主要目的是为文本提供额外的信息,以便进行更深入的分析和处理,尤其是在人工智能领域。文本标注对于人工智能应用中的监督机器学习任务至关重要。用于训练AI模型,有助更准确地理解自然语言文本信息,提高文本分类、情感分析和语言翻译等任务的性能。通过文本标注,我们可以教AI模型识别文本中的实体、理解上下文,并在出现新的类似数据时做出准确的预测。本文主要推荐一些较好的开源文本标注工具。1.LabelStudiohttps://github.com/Hu

15个值得推荐的开源免费图像标注工具 15个值得推荐的开源免费图像标注工具 Mar 28, 2024 pm 01:21 PM

图像标注是将标签或描述性信息与图像相关联的过程,以赋予图像内容更深层次的含义和解释。这一过程对于机器学习至关重要,它有助于训练视觉模型以更准确地识别图像中的各个元素。通过为图像添加标注,使得计算机能够理解图像背后的语义和上下文,从而提高对图像内容的理解和分析能力。图像标注的应用范围广泛,涵盖了许多领域,如计算机视觉、自然语言处理和图视觉模型具有广泛的应用领域,例如,辅助车辆识别道路上的障碍物,帮助疾病的检测和诊断通过医学图像识别。本文主要推荐一些较好的开源免费的图像标注工具。1.Makesens

无法在VirtualBox中安装来宾添加 无法在VirtualBox中安装来宾添加 Mar 10, 2024 am 09:34 AM

您可能无法在OracleVirtualBox中将来宾添加安装到虚拟机。当我们点击Devices>InstallGuestAdditionsCDImage时,它只会抛出一个错误,如下所示:VirtualBox-错误:无法插入虚拟光盘C:将FilesOracleVirtualBoxVBoxGuestAdditions.iso编程到ubuntu机器中在这篇文章中,我们将了解当您无法在VirtualBox中安装来宾添加组件时该怎么办。无法在VirtualBox中安装来宾添加如果您无法在Virtua

百度网盘下载成功但是安装不了怎么办? 百度网盘下载成功但是安装不了怎么办? Mar 13, 2024 pm 10:22 PM

  如果你已经成功下载了百度网盘的安装文件,但是无法正常安装,可能是软件文件的完整性发生了错误或者是残留文件和注册表项的问题,下面就让本站来为用户们来仔细的介绍一下百度网盘下载成功但是安装不了问题解析吧。  百度网盘下载成功但是安装不了问题解析  1、检查安装文件完整性:确保下载的安装文件完整且没有损坏。你可以重新下载一次,或者尝试使用其他可信的来源下载安装文件。  2、关闭杀毒软件和防火墙:某些杀毒软件或防火墙程序可能会阻止安装程序的正常运行。尝试将杀毒软件和防火墙禁用或退出,然后重新运行安装

如何在Linux上安装安卓应用? 如何在Linux上安装安卓应用? Mar 19, 2024 am 11:15 AM

在Linux上安装安卓应用一直是许多用户所关心的问题,尤其是对于喜欢使用安卓应用的Linux用户来说,掌握如何在Linux系统上安装安卓应用是非常重要的。虽然在Linux系统上直接运行安卓应用并不像在Android平台上那么简单,但是通过使用模拟器或者第三方工具,我们依然可以在Linux上愉快地享受安卓应用的乐趣。下面将为大家介绍在Linux系统上安装安卓应

推荐:优秀JS开源人脸检测识别项目 推荐:优秀JS开源人脸检测识别项目 Apr 03, 2024 am 11:55 AM

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

如何在Ubuntu 24.04上安装Podman 如何在Ubuntu 24.04上安装Podman Mar 22, 2024 am 11:26 AM

如果您使用过Docker,则必须了解守护进程、容器及其功能。守护进程是在容器已在任何系统中使用时在后台运行的服务。Podman是一个免费的管理工具,用于管理和创建容器,而不依赖于任何守护程序,如Docker。因此,它在管理集装箱方面具有优势,而不需要长期的后台服务。此外,Podman不需要使用根级别的权限。本指南详细讨论了如何在Ubuntu24上安装Podman。更新系统我们首先要进行系统更新,打开Ubuntu24的Terminalshell。在安装和升级过程中,我们都需要使用命令行。一种简单的

See all articles