mysql-5.6.25 编译安装 和 使用 xstrabackup 备份实战 (二)

MySQL备份主要的方式是使用mysqldump来做逻辑导出备份,Mysqldump是由mysql服务器自带的一个工具

优点:

使用简单;备份生成的文件格式为sql脚本格式.
缺点:

导出的结果可能会不一致,如果强行一致则需要锁定所有的表(myisam,innodb,etc..),导出需要经过sql层处理,随着数据库变大,速度会变得非常慢.

针对以上的特点,目前业界主要的针对innodb的热备工具有:

1)mysql商业版中的备份工具(需要收费);

2)percona公司的开源工具xtrabackup工具.

Xtrabackup工具的主要特点有:

1)热备innodb表(不需要锁,myisam表需要read lock);

2)不需要通过sql层处理,直接物理拷贝文件;支持增量备份;

3)支持并行备份;

4)支持straming

5)开源.

好,废话少说,开始安装吧!!

1)安装

首先从percona的网站下载过来一个tar.gz文件,直接解压即可(例:安装在/root/soft目录下)
[[email protected] soft]# pwd
/root/soft
[[email protected] soft]# ls
percona-xtrabackup-2.1.8-733-Linux-x86_64.tar.gz  
[[email protected] soft]# tar -xvf percona-xtrabackup-2.1.8-733-Linux-x86_64.tar.gz
解压后生成一个目录:
percona-xtrabackup-2.1.8-Linux-x86_64
把/root/soft/percona-xtrabackup-2.1.8-Linux-x86_64/bin 加到用户的.bash_profil文件的PATH变量中,然后source或重新登录用户生效.
确认相关文件有执行权限
[[email protected] bin]# ls -l
total 114080
-rwxr-xr-x 1 root root   169217 Mar  3 08:02 innobackupex
lrwxrwxrwx 1 root root       12 Mar 28 08:59 innobackupex-1.5.1 -> innobackupex
-rwxr-xr-x 1 root root  2226551 Mar  3 08:02 xbcrypt
-rwxr-xr-x 1 root root  2300304 Mar  3 08:02 xbstream
-rwxr-xr-x 1 root root 13177944 Mar  3 08:02 xtrabackup
-rwxr-xr-x 1 root root 16599128 Mar  3 07:57 xtrabackup_55
-rwxr-xr-x 1 root root 82194272 Mar  3 08:00 xtrabackup_56

2)全备及其恢复

全备:

执行如下语句进行全备:

innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=*** /backup/mysql/data

该语句将拷贝数据文件(由my.cnf里的变量datadir指定)至备份目录下(/backup/mysql/data),注意:如果不指定--defaults-file,默认值为/etc/my.cnf。

备份成功后,将在备份目录下创建一个时间戳目录(本例创建的目录为/backup/mysql/data/2013-10-29_09-05-25),在该目录下存放备份文件。

恢复:

innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=*** --use-memory=4G --apply-log /backup/mysql/data/2013-10-29_09-05-25

innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=*** --copy-back /backup/mysql/data/2013-10-29_09-05-25

从什么可以看出,恢复分为两个步骤,

第1步是apply-log,为了加快速度,一般建议设置--use-memory,这个步骤完成之后,目录/backup/mysql/data/2013-10-29_09-05-25下的备份文件已经准备就绪。

第2步是copy-back,即把备份文件拷贝至原数据目录下。

恢复完成之后,一定要记得检查数据目录的所有者和权限是否正确。

3)增量备份及其恢复

注意:innobackupex 增量备份仅针对InnoDB这类支持事务的引擎,对于MyISAM等引擎,则仍然是全备。

增量备份:

增量备份需要基于全备,先假设我们已经有了一个全备(/backup/mysql/data/2013-10-29_09-05-25),在该全表的基础上做增量备份。

innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=*** --incremental-basedir=/backup/mysql/data/2013-10-29_09-05-25 --incremental /backup/mysql/data

其中--incremental-basedir指向全备目录,--incremental指向增量备份的目录。

上面语句执行成功之后,会在--incremental执行的目录下创建一个时间戳子目录(本例中为:/backup/mysql/data/2013-10-29_09-52-37),在该目录下存放着增量备份的所有文件。

在备份目录下,有一个文件xtrabackup_checkpoints记录着备份信息。

全备的信息如下:

backup_type = full-backuped

from_lsn = 0

to_lsn = 563759005914

last_lsn = 563759005914

基于该全备的增量备份的信息如下:

backup_type = incremental

from_lsn = 563759005914

to_lsn = 574765133284

last_lsn = 574765133284

从上面可以看出,增量备份的from_lsn正好等于全备的to_lsn。

那么,我们是否可以在增量备份的基础上再做增量备份呢?答案是肯定的,只要把--incremental-basedir执行上一次增量备份的目录即可,如下所示:

innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=*** --incremental-basedir=/backup/mysql/data/2013-10-29_09-52-37 --incremental /backup/mysql/data

它的xtrabackup_checkpoints记录着备份信息如下:

backup_type = incremental

from_lsn = 574765133284

to_lsn = 574770200380

last_lsn = 574770200950

可以看到,该增量备份的from_lsn是从上一次增量备份的to_lsn开始的。

恢复:

增量备份的恢复比全备要复杂很多,第一步是在所有备份目录下重做已提交的日志,如:

innobackupex --apply-log --redo-only BASE-DIR

innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

其中BASE-DIR是指全备目录,INCREMENTAL-DIR-1是指第一次的增量备份,INCREMENTAL-DIR-2是指第二次的增量备份,以此类推。

这里要注意的是:最后一步的增量备份并没有--redo-only选项!还有,可以使用--use_memory提高性能。

以上语句执行成功之后,最终数据在BASE-DIR(即全备目录)下。

第一步完成之后,我们开始第二步:回滚未完成的日志:

innobackupex --apply-log BASE-DIR

上面执行完之后,BASE-DIR里的备份文件已完全准备就绪,最后一步是拷贝:

innobackupex --copy-back BASE-DIR

同样地,拷贝结束之后,记得检查下数据目录的权限是否正确。

时间: 2024-10-29 19:08:04

mysql-5.6.25 编译安装 和 使用 xstrabackup 备份实战 (二)的相关文章

mysql-5.6.25 编译安装 和 使用 xstrabackup 备份实战

一.Mysql-5.6.25 安装 1.必要软件:yum -y install gcc gcc-c++  autoconf automake  bison  ncurses-devel libtool-ltdl-devel* cmake make 2.编译安装 ########################## 可选安装:cmake11.2.1版本[[email protected] src]# wget http://www.NaNake.org/files/v2.8/cmake-2.8.1

mysql 5.6.25编译安装详细步骤

1 #安装依赖 2 yum -y install make gcc-c++ cmake bison-devel ncurses-devel perl vim 3 4 #准备用户和组 5 groupadd mysql 6 useradd mysql -g mysql -M -s /sbin/nologin 7 8 #下载mysql 5.6.25 9 10 wget -c https://downloads.mysql.com/archives/get/file/mysql-5.6.25.tar.g

mysql5.6.25编译安装步骤(这是我复制别人的,方便查看)

原文地址:https://www.cnblogs.com/netsa/p/7088494.html 简略步骤: mysql5.6.25编译安装步骤: 下载mysql准备用户和组yum安装依赖解压mysqlcmake编译mysqlmake && make install ----时间约10分钟mysql安装目录权限设置数据库初始化拷贝配置文件root密码重置,原来是没密码的远程账户授权设置服务启动和开机启动  ======实战==============================#安装

      Mysql的介绍以及编译安装mariadb

一:mysql的介绍: mysql数据库是工作于线程模式的.是一种关系型数据库,有严格的数据模型结构,这样在并发读写量大的时候,就不得不对其进行扩展,而这种方式扩展还是非常麻烦的. 由于读操作是可以缓存的,所以我们可以为mysql提供缓存服务器. 程序读取数据时先查缓存服务器,再查mysql数据库,这样如果缓存有访问的内容,那么就可以节省 访问时间. 二:关系型数据管理系统 RDBMS 关系模型中主要组件: 数据方案:数据库 表,视图(虚表,基于某种关系用语句形成的),索引, 存储过程,存储函数

mysql 5.1 升级编译安装5.6把原MyISAM表转换成InnoDB,并全局备份一次【原创】

mysql 5.1 升级编译安装5.6把原MyISAM表转换成InnoDB,并全局备份一次 1.[备份指定数据库]不要用逗号mydb hellodb [[email protected] ~]# mysqldump -uroot -p  --databases mydb hellodb  > /tmp/all.sql [修改ENGINE=MyISAM 为 ENGINE=InnoDB] [[email protected] home]# cp hellodb.sql hellodb.sql.bak

【MySQL】源码编译安装和配置MySql 5.5.32(单实例)

[需求描述] 在CentOS环境中,通过编译源码的方式,安装并且配置“单实例”的MySQL5.5.32数据库. MySQL的安装目录为:/application/mysql-5.5.32 MySQL数据文件的安装目录为:/application/mysql-5.5.32/data MySQL默认的字符编码为:UTF8 [环境参数] VMware:10.0.1 Host:Win7 DB:MySql 5.5.32 编译工具:cmake-2.8.8.tar.gz 其他依赖:ncurses-devel-

mysql 5.6.41编译安装详细步骤

转自:https://www.cnblogs.com/netsa/p/7088494.html 简略步骤: mysql5.6.41编译安装步骤: 下载mysql准备用户和组yum安装依赖解压mysqlcmake编译mysqlmake && make install ----时间约10分钟mysql安装目录权限设置数据库初始化拷贝配置文件root密码重置,原来是没密码的远程账户授权设置服务启动和开机启动 ======实战============================== 1 #安装

CentOS下MySQL 5.7.9编译安装

MySQL 5.7 GA版本的发布,也就是说从现在开始5.7已经可以在生产环境中使用,有任何问题官方都将立刻修复. MySQL 5.7主要特性: 更好的性能:对于多核CPU.固态硬盘.锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是吾等用户更关心的 更好的InnoDB存储引擎 更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库.此外,GTID在线平滑升级也变得可能 更好的优化器:优化器代码重构的意义将在

Mysql 5.7.17 编译安装

环境准备: mysql 安装包:mysql-5.7.17.tar.gz yum源: [[email protected]_1 ~]# cat /etc/yum.repos.d/server.repo [local] name=local baseurl=file:///mnt/cdrom gpgcheck=0 enabled=1 [[email protected]_1 ~]# 系统版本: [[email protected]_1 ~]# cat /etc/redhat-release Cent