mysql备份工具

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

               备份还原脚本及工具

1Xtrabackup实现是物理备份,而且是物理热备

目前主流的有两个工具可以实现物理热备:ibbackupxtrabackupibbackup是商业软件,需要授权,非常昂贵。而xtrabackup功能比ibbackup还要强大,但却是开源的。

2Xtrabackup提供了两种命令行工具:

xtrabackup:专用于备份InnoDBXtraDB引擎的数据;

innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令,这样用该命令即可以实现备份InnoDB,也可以备份MyISAM引擎的对象。

 演示步骤

首先 解压安装包

wKioL1ljag3TCR2zAADpgCOaLAc658.png-wh_50

复制bin下的所有程序到/usr/bin

wKiom1ljaimj7piCAAEPY5NnT_4034.png-wh_50

Xtrabackup中主要包含两个工具:

xtrabackup:是用于热备份innodb, xtradb表中数据的工具,支持在线热备份,可以在不加锁的情况下备份Innodb数据表,不过此工具不能操作Myisam引擎表

innobackupex:是将xtrabackup进行封装的perl脚本,能同时处理InnodbMyisam,但在处理Myisam时需要加一个读锁。

3)安装插件 使用yum

yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5–y

wKiom1ljaknS_CFlAACTk2GxKUo604.png-wh_50

方案一:xtrabackup完全备份+binlog增量备份

       创建备份目录

wKiom1ljanKRo9NpAAA9TyGdiKk076.png-wh_50

完全备份

innobackupex --user=root --password=123456 /opt/mysqlbackup/full  出现OK 完成

注: --defaults-file=/etc/my.cnf 指定mysql的配置文件my.cfg,如果指定则必须是第一参数

wKiom1ljaoKR0Td1AAD4exkjArE864.png-wh_50

备份数据库会会在备份目录下创建当前日期为名字的目录存放

wKiom1ljaqOCzSkxAAGnRryd4yQ259.png-wh_50

文件说明

(1)xtrabackup_checkpoints ——备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;

每个InnoDB(通常为16k大小)都会包含一个日志序列号 (2)xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。

(3)xtrabackup_binlog_pos_innodb ——二进制日志文件及用于InnoDBXtraDB表的二进制日志文件的当前position

(4)xtrabackup_binary ——备份中用到的xtrabackup的可执行文件;

(5)backup-my.cnf ——备份命令用到的配置选项信息;

在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录。

注意:备份数据库的用户需要具有相应权限,如果要使用一个最小权限的用户进行备份,则可基于如下命令创建此类用户:

wKiom1lja6Gi7kHEAABd1v7aln0269.png-wh_50

wKioL1lja6HjxlHCAACVdZdM_rk452.png-wh_50

 至此全备完全成功,然后向mysql某个库插入几条数据,然后进行增量备份对完全备份的后数据库更改进行二进制日志增量备份:

查看完全备份时binlog日志位置(position)

wKioL1lja7zDKAEGAABhsKodGkc555.png-wh_50

模拟修改数据库

wKiom1lja92za93MAADuxaz22bU283.png-wh_50

增量备份二进制文件

wKiom1ljbBqjKrkcAABXx_pSz10257.png-wh_50

还原数据库二进制文件

首先 模拟吧data文件删除或者转移,然后进行完全备份还原

innobakupex命令的--apply-log选项可用于实现上述功能。--apply-log指明是将日志应用到数据文件上,完成之后将备份文件中的数据恢复到数据库中:

wKiom1ljbCyTWunvAACQI4rApIc770.png-wh_50

还原数据库语法:

# innobackupex --copy-back /opt/mysqlbackup/full/2016-09-12_11-29-55/

这里的--copy-back指明是进行数据恢复






。数据恢复完成之后,需要修改相关文件的权限mysql数据库才能正常启动。

还原数据库语法

wKiom1ljbELAoJ0KAAEAj624ODE162.png-wh_50

data 已经成功还原  重新启动mysql

wKiom1ljbGbiEcPSAAHIV4tC_Bo491.png-wh_50

需要确保所有数据文件属主和属组

wKiom1ljbHaDib28AADILIuuKss636.png-wh_50

还原成功 但是增量备份还没有成功

wKioL1ljbIbD9Ic-AABwrGY3evg095.png-wh_50

为了防止还原时产生大量的二进制日志,在还原时可临时关闭二进制日志后再还原:

mysql> set sql_log_bin=0;

mysql> source /opt/mysqlbackup/inc/2016-09-12.sql

还原成功 数据成功恢复

wKiom1ljbJbAQttGAACUSbE4Y10495.png-wh_50

wKioL1ljbKPAT8w4AACQgy4TbLg812.png-wh_50

重新启动二进制日志  set sql_log_bin=1;

wKiom1ljbLiyx19JAAA5lQ38Cx4573.png-wh_50








     本文转自柴鑫旺 51CTO博客,原文链接:http://blog.51cto.com/chaixinwang/1946081,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
252 4
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
1139 4
MySQL 窗口函数详解:分析性查询的强大工具
MySQL 窗口函数从 8.0 版本开始支持,提供了一种灵活的方式处理 SQL 查询中的数据。无需分组即可对行集进行分析,常用于计算排名、累计和、移动平均值等。基本语法包括 `function_name([arguments]) OVER ([PARTITION BY columns] [ORDER BY columns] [frame_clause])`,常见函数有 `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`, `SUM()`, `AVG()` 等。窗口框架定义了计算聚合值时应包含的行。适用于复杂数据操作和分析报告。
203 11
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
330 3
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
186 3
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
168 3
MySQL高级篇——性能分析工具
MySQL的慢查询日志,用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long-query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为 10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。它的主要作用是,帮助我们发现那些执行时间特别长的 SOL 查询,并且有针对性地进行优化,从而提高系统的整体效率。当我们的数据库服务器发生阻塞、运行变慢的时候,检查一下慢查询日志,找到那些慢查询,对解决问题很有帮助。
MySQL高级篇——性能分析工具
MySQL用户备份
【10月更文挑战第2天】MySQL用户备份
132 3
MySQL如何备份?
【10月更文挑战第2天】MySQL如何备份?
424 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等