MySQL之全库备份与恢复--innobackupex

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 结合相关脚本使用,效果更佳~MySQL脚本(percona-tools)http://blog.itpub.net/29510932/viewspace-1787716/-------------------------------------------------...
结合相关脚本使用,效果更佳~MySQL脚本(percona-tools)http://blog.itpub.net/29510932/viewspace-1787716/
-------------------------------------------------------------------------------------------------正文---------------------------------------------------------------------------------------------------------------
工具:percona-xtrabackup-2.3.2
环境:Linux 2.6.32-279.el6.x86_64
数据库版本:源数据库与目标数据库版本一致Server version: 5.6.26-log MySQL Community Server (GPL)
----------------------------------------------------------------------------------------------工具的安装------------------------------------------------------------------------------------------------------------
1.percona官网下载percona-xtrabackup-2.3.2
https://www.percona.com/downloads/XtraBackup/LATEST/
注意系统的类型,内核版本,和32/64位的区别


2.服务器环境的搭建
新版本的工具对系统环境的要求比旧版本多了点,执行以下语句
yum install libaio libaio-devel perl-Time-HiRes curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel perl-ExtUtils-MakeMaker perl-DBD-MySQL.* package -y
同时还需要如下两个包libev-4.04-2.el6.x86_64.rpm,zlib-1.2.3-29.el6.x86_64.rpm,这两个包可以在rpmfind里面搜索到
如果用到了压缩,需要qpress官网http://www.quicklz.com/
下载位置如下,解压缩出来就是一个qpress的文件,复制到/usr/bin/下面即可


-----------------------------------------------------------------------------------------------备份恢复演练--------------------------------------------------------------------------------------------------------
全量备份使用的命令:
innobackupex --user=root --passwordPWD --parallel=8 --no-timestamp --use-memory=8G /data/2015-11-02
附带参数意义:
parallel -->并行度,同时使用8个线程进行备份操作
no-timestamp -->不使用时间戳,直接在指定的目录下生成备份文件,如果不加这个参数,那么会在备份文件下根据当前时间单独建立一个文件名为具体时间的目录来存放备份文件
use-memory -->使用的内存数量,在不影响服务器上其他应用的前提下,可以稍微调高一些,主要用于apply-log阶段的crash recovery,其他阶段加与不加没什么影响
摘抄部分比较有用的参数说明:
rsync
-->开启本地文件传输的插件,用于非InnoDB引擎的文件拷贝(否则用cp,在处理很多的DB或者表的数据库实例时会更快
databases -->指定备份的数据库,多个数据库之间用空格分开,备份表就写成database1.table1

如果一切没有问题,那么在最后会有如下输出,可以看到还是有锁表的,虽然备份的速度比较快,还是要注意一下对业务的影响;


scp拷贝到目标库以后,先用apply-log对备份文件进行预处理
innobackupex --apply-log /data/2015-11-02/
处理结果如下图


在这个阶段出问题的话,大部分时候是目标库和源库的数据库设置有问题,统一一下两个库的my.cnf

预处理完成以后,就可以把数据文件拷贝回去了,使用copy-back
innobackupex --copy-back /data/2015-11-02/
一切ok的话,最后会有如下输出


在这个阶段容易出问题的地方:
1.源数据库和目标数据库的my.cnf配置不同
2.datadir指定的路径,存在目录,或者目录下存在文件,(可以使用参数去强制进行覆盖,但是不推荐,有风险)
3.之前apply-log失败了
4.找不到my.cnf

如果直到copy-back都没有出问题的话,那么一般就算是正常恢复了,先修改文件夹权限(chown -R mysql:mysq: mysql),然后启动mysql


大功告成~
-----------------------------------------------------------------------------------------------额外的内容--------------------------------------------------------------------------------------------------------
如果备份的库,数据库规模比较大,可以开启压缩,在全量备份的时候加入--compress --compress-threads=8即可
值得注意的是,如果使用了压缩,那么在目标库进行预处理之前,先要用innobackupex --decompress /data/2015-11-02/指令把文件解压缩,然后再依次进行预处理和以后的步骤
压缩的效果可以对比一下,从上至下依次为原始数据库文件,普通全量备份,压缩全量备份(请无视中间的那个16k的文件夹..._(:з」∠)_...)


同样的,也可以使用这种备份恢复的方式来进行数据库升级,采用同一个源目标库,使用MySQL-5.7.9-GA作为目标库时,使用一样的步骤进行数据文件的恢复,
在启动MySQL以后,执行mysql_update -uroot -p命令对系统表进行更新


关于innobackupex的其他备份恢复功能,抽空再更新......
看官方文档写的是可以从全库备份的备份文件里面恢复单表数据,但是只能够在percona server的XtraDB上面使用
原文:|Percona XtraBackup| based backups also allow for table level recovery even though the backup was done at the database level (needs the recovery database server to be |Percona Server| with XtraDB).
index_merge和metadata lock继续拖.....
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
1月前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
176 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
1月前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
557 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
1月前
|
存储 关系型数据库 MySQL
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
MySQL是一款开源关系型数据库,高性能、易用、跨平台,支持多种存储引擎,广泛应用于Web开发、企业级应用等领域。本教程介绍其特点、架构及在主流Linux系统中的安装配置方法。
476 0
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
|
3月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
319 10
|
5月前
|
存储 关系型数据库 MySQL
【赵渝强老师】使用select...into outfile语句备份MySQL
本文介绍了MySQL中使用`SELECT...INTO OUTFILE`语句将表数据导出为文本文件的方法。通过示例演示了如何备份员工表(emp)的数据,包括创建存储目录、设置权限、配置参数`secure_file_priv`以及解决相关错误的过程。字段分隔符和行终止符可自定义,确保数据格式符合需求。最后展示了备份文件的内容,验证操作成功。
397 36
|
5月前
|
存储 SQL 关系型数据库
【赵渝强老师】使用mysqldump备份MySQL
本文介绍了 MySQL 自带的逻辑备份工具 mysqldump 的使用方法。通过 mysqldump,可以将数据库中的数据转换为对应的 SQL 插入语句,便于备份和还原。文章详细说明了如何备份所有数据库、指定数据库及特定表,排除某些表不备份的操作,以及删除数据库后如何通过备份文件恢复数据。同时提供了视频讲解和具体命令示例,帮助用户更好地理解和应用该工具。
247 5
|
5月前
|
存储 SQL 关系型数据库
【赵渝强老师】使用mydumper备份MySQL
本文介绍了使用mydumper工具进行MySQL数据库备份与恢复的操作方法。相比单线程工作的mysqldump,mydumper支持多线程,速度提升可达10倍。其功能包括事务性表快照、快速压缩、导出binlog等,并提供详细的参数说明和操作步骤。文章通过实例演示了安装mydumper、创建存储目录、全库备份、指定数据库及表备份、删除数据库以及使用myloader恢复数据的完整流程,并附带视频讲解,帮助用户更好地理解和应用该工具。
230 0
|
7月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
346 28
|
7月前
|
存储 关系型数据库 MySQL
利用Cron表达式实现MySQL数据库的定时备份
以上就是如何使用Cron表达式和mysqldump命令实现MySQL数据库的定时备份。这种方法的优点是简单易用,而且可以根据需要定制备份的时间和频率。但是,它也有一些限制,例如,它不能备份MySQL服务器的配置文件和用户账户信息,也不能实现增量备份。如果需要更复杂的备份策略,可能需要使用专门的备份工具或服务。
195 15
|
2月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
126 3

推荐镜像

更多