mysql5.7主从全备恢复_Mysql5.7—运维常用备份方式(超全)

小生博客:http://xsboke.blog.51cto.com

小生 Q Q:1770058260

-------谢谢您的参考,如有疑问,欢迎交流

一、 Mysqldump备份结合binlog日志恢复使用mysqldump进行全库备份,并使用binlog日志备份,还原时,可以使用binlog日志恢复到备份前的任意位置或时间

1. Binlog简介主要用于主从复制和恢复数据库,使用mysqlbinlog命令查看binlog二进制日志文件下面我们通过一个实例,演示,binlog是怎么恢复到某个时间点的

ffcba56b236f13ff10694a7871fca0eb.png

重启mysql服务使配置生效

a75869a741a4b6545b9d6b1ff03da266.png

验证binlog是否开启成功

64ea75b7a2b15578e91d06857d214897.png

创建测试使用的数据库和表并插入数据

07b3724bf6366c125547a61a11a9240f.png

为了方便实验,我们将有误操作的记录,放到一个新的binlog日志文件中

542e53c38cba391a68da1289984f6d78.png

现在发现删除zhangsan是误操作,现在需要将zhangsan恢复

,去查看binlog日志文件,根据位置实现将表还原到没有删除zhangsan时,然后跳过删除zhangsan的位置,恢复tom

0d59da4190ec8ff5c9325de3f0253e2d.png

可以做一个分析图,用来分析出,恢复时指定的区号

9fabb99effe4d6589150b9562206b92a.png从此图可以分析出,mysql-bin.00001文件全部恢复即可,Mysql-bin.00002的219-416区是不需要恢复的

下面开始模拟

首先根据需求导出部分binlog日志

2154c92f61362f330b1f4bc1ddc2d8f8.png

模拟删除数据库

c9c2768437fb223ea3a73e647b0dbc07.png

通过binlog日志恢复

b0dc59525e307c85c5dbb0c90a935247.png

验证

45ba7b11a381ddce111f232f0e102a50.png

2. Mysqldump简介mysqldump是mysql用于备份和数据转移的一个工具;将sql语句封装到文件,文件包含所有重建你的数据库所需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等,可以用来实现轻量级的快速迁移或恢复数据库mysqldump 是将数据表导成 SQL 脚本文件,可以在不同的 MySQL 版本之间使用mysqldump用于数据量很小的备份(大概几个G),当数据量大的时候不建议使用导出对象:单个表、多个表、单个数据库、多个数据库、所有数据库

1) 示例

导出指定数据库或单个表

51936c4e486c3802ab6d9a78ef38de74.png

f3e46968f3db210433ab11b0ac2dc266.png

导出多个数据库

78b8c9d30b8ec19a175575488f38d190.png

导出所有

ee9904c38373df10e486fe0c7ca4ae64.png

完整备份数据库并重新开启一个新binlog

2da85cb0b344ba671147dbe9b95a6a2b.png

导入

b4c19b8145db3d31c4c00940ec106410.png

2)Mysqldump备份方案

周日凌晨1点全库备份;

周一到周六凌晨每隔4个小时增量备份一次;

设置crontab任务,每天执行备份脚本;

首先设置cronta任务

9ee4b63b7fa15827a8cbe0c45828d73b.png

编辑mysqlfullbackup脚本

83401ac98d326c29db18c613b3147455.png

编辑mysqldailybackup.sh脚本内容

3228a13bd43ed57ea24253fa16d00736.png

二、 Xtrabackup备份工具

1. Xtrabackup简介

Xtrabackup属于物理备份,支持物理热备,开源,性能比ibbackup强

Xtrabackup支持增量备份、完整备份、差异备份,与binlog日志组合

Xtrabackup提供两个命令行工具:Xtrabackup:可以备份innodb和xtraDB存储引擎的表Innobackupex:支持备份innodb和myisam表的存储引擎,使用perl语言编写,执行过程中会执行一个读锁

2. 注意事项

因为xtrabackup属于物理热备,所以在备份的时候可能出现已经提交但是没有将数据写入数据文件或没有提交的事务,所以在恢复时需要解决这个问题,使用—applog-log参数可以将已经备份的数据中已提交的数据写入数据文件,未提交的数据全部回滚,以保证数据的唯一性数据恢复时需要删除data下的所有文件还原后,需要设置恢复文件的属主属组,mysql才能正常运行

3. Xtrabakup的优点备份速度快,可以用于较大的数据库,弥补mysqldump的部分不足支持热备份,备份过程不打断事务的执行支持压缩备份节约磁盘空间和流量自动实现备份检验还原速度快

4. Xtrabackup安装首先下载xtrabackup并且进行安装Wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz

012ec1a554f97a2d9dbfc580d23687ed.png

5474f2b0e76ca0ddecb4e2d96ec8a390.png

安装相关插件

73d6ca57b3078d9f1f691a7bdbd2ed6e.png

安装percona-toolkit

1b2a9647b70925651a1bb295406bfe79.png

5. Xtrabackup+binkog

Xtrabackup+binlog可以实现时间点还原

1)首先创建备份目录

a5fa19041f611d1bf125f1d97194781f.png

2)注意开启binlog日志

0815b5a138bb85bbf28a52609b87d796.png

3)执行完整备份(使用xtrabackup的“流”及“压缩备份”功能)

ffe723e279f2f64bea2305e4c59310dd.png

4)查看备份

21e0dc7829f649058f0d2dcf8d437ead.png5)在生产环境中,还会备份binlog日志可以使用—start-position和—stop-position以跳过误删除的位置,去备份binlog日志,这里不再演示6)Xtrabackup还原还原前需要解决数据一致性的问题

c322d9614753ecc2a860a5d4328d4d17.png

开始还原

a3a90f20b1668fd3658daddf2445a11d.png

为还原的文件设置属主属组

cba59bf6d5ce7e90a4d57e5544824a3e.png

0a0c10174bb3bd48da6e4b1340603f74.png

最后如果需要恢复到某个时间点,可以利用备份的binlog日志文件恢复

6. 在生产环境中使用的备份用户可能不是root,这时需要注意权限了

ba87cda7fe06be11c964b2a70e0e0e52.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 运行容器_Docker之运行 Django 容器

首先此篇笔记默认你已经安装好了 Docker,并了解 Docker 的基础概念,诸如镜像、容器、以及他们之间的关系等。如果不太了解,等我回头了解清楚以后,可以再写一篇文章阐述一下。(狗头当然,对于这篇文章&#x…

mysql8.0与mysql7.0_MySQL 5.7 vs 8.0,哪个性能更牛?

测试mysql5.7和mysql8.0分别在读写,选定,只写模式下不同并发时的性能(tps,qps)最早测试使用版本为mysql5.7.22和mysql8.0.15sysbench测试前先重启mysql服务,并清除os的缓存(避免多次测试时命中缓存)每次进行测试都是新生成测试数据…

springmvc使用requestmapping无法访问控制类_研究人员称人类使用的新烟碱类杀虫剂让蜜蜂无法入睡...

来自布里斯托尔大学的科学家进行了研究,显示常见的杀虫剂可以阻止蜜蜂和苍蝇睡个好觉。就像人类一样,许多昆虫也需要睡眠才能正常工作。然而,如果它们接触过新烟碱类杀虫剂,它们的睡眠就会受到影响,新烟碱类杀虫剂是一…

linux 监控mysql脚本_Linux系统MySQL主从同步监控shell脚本

操作系统:CentOS系统目的:定时监控MySQL数据库主从是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态1、创建脚本文件vi /home/crontab/check_mysql_slave.sh #编辑,添加下面代码#!/bin/sh…

python协成_Python协程(上)

几个概念:event_loop 事件循环:程序开启一个无限的循环,程序员会把一些函数注册到事件循环上。当满足事件发生的时候,调用相应的协程函数。coroutine 协程:协程对象,指一个使用async关键字定义的函数&#…

js父元素获取子元素img_css,前端_父标签div中包含一个子元素img标签,子元素div标签,为什么img要加上浮动,子元素div才会处于正常位置?,css,前端 - phpStudy...

父标签div中包含一个子元素img标签,子元素div标签,为什么img要加上浮动,子元素div才会处于正常位置?dom结构如图img加上float 子元素div显示正常。不加float div显示错位。附上我写的一个dome测试用的,大家可本地看下究…

android运营商获取本机号码_一键登录已成大势所趋,Android端操作指南来啦!

根据极光(Aurora Mobile)发布的《2019年Q2移动互联网行业数据研究报告》,2019年第二季度,移动网民人均安装APP总量已达56款。面对如此繁多的APP,想在用户的手机中占据一席之地,移动开发者们就不得不努力提升用户体验。而现实却是&…

spring批量写入mysql数据库_MyBatis-spring和spring JDBC批量插入Mysql的效率比较

工具框架用spring-batch,数据库是mysql(未做特殊优化)。比较数据框架mybatis和spring jdbc的插入效率。Mybatis三种实现:1、mybatis的官方写法Java代码publicvoidbatchInsert1(List poilist)throwsException {SqlSession sqlSession sqlSessionFactory.…

金额转换java_java金额转换

像商品价格,订单,结算都会涉及到一些金额的问题,为了避免精度丢失通常会做一些处理,常规的系统中金额一般精确到小数点后两位,也就是分;这样数据库在设计的时候金额就直接存储整型数据类型,前端…

java bloomfilter_爬虫技术之——bloom filter(含java代码)

在爬虫系统中,在内存中维护着两个关于URL的队列,ToDo队列和Visited队列,ToDo队列存放的是爬虫从已经爬取的网页中解析出来的即将爬取的URL,但是网页是互联的,很可能解析出来的URL是已经爬取到的,因此需要VI…

java php js_【javascript/PHP】当一个JavaScripter初次进入PHP的世界,他将看到这样的风景...

本文将从以下11点介绍javascript和PHP在基础语法和基本操作上的异同:1.数据类型的异同2.常量和变量的定义的不同,字符串连接运算符不同3.对象的创建方法的不同4.PHP与JS在变量声明提升和函数声明提升的差异5.var在JS和PHP中使用的差异6.PHP和JS在访问对象…

从零开始学java 框架_从零开始学 Java - 搭建 Spring MVC 框架

如果创建一个 Spring 项目Spring MVC 框架在 Java 的 Web 项目中应该是无人不知的吧,你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会,如果你不会的话,那可真令人忧伤。1.在 MyEclipse 创建项目后,可以以…

java 系统类型_Java获取操作系统类型

Java获取操作系统完整版系统枚举类:public enum EPlatform {Any("any"),Linux("Linux"),Mac_OS("Mac OS"),Mac_OS_X("Mac OS X"),Windows("Windows"),OS2("OS/2"),Solaris("Solaris"),SunOS…

azure mysql on vnet_管理 VNet 终结点 - Azure 门户 - Azure Database for MySQL | Microsoft Docs

您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.使用 Azure 门户创建和管理 Azure Database for MySQL VNet 服务终结点和 VNet 规则Create and manage Azure D…

java jmap jc_利用jmap命令查看JVM内存使用详情

介绍打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。它的用途是为了展示java进程的内存映射信息,或者堆内存详情。可以输出所有内存中对象的工具,甚至可以将VM 中的heap&#xf…

雅居乐万豪酒店java_“万豪,我心所属之地” | 上海雅居乐万豪酒店Terence Sun的实习故事...

​我叫孙庭骏,来自台北,目前就读瑞士恺撒里兹酒店管理学院,在来上海之前曾在瑞士苏黎世万豪酒店的餐饮部实习过两次,共一年的时间,所以万豪对我来说并不陌生。万豪一直深深吸引我的莫过于它的核心价值以及非凡待客之道…

java quartz spring_JavaLib-quartz | 基于Spring Boot Quartz开发的定时任务

基于Spring Boot Quartz开发的JavaLib-quartz,目的是帮你快速构建定时任务系统,你可以专心编写你的业务逻辑,而不必关注定时任务具体是如何实现的,他的性能如何,有没有异常以及异常处理,监控等等问题。这些…

java static 加载顺序_一个例子搞清楚Java类加载顺序

当我们new一个GirlFriend时,我们都做了什么?一个例子搞懂Java程序运行顺序public class Girl {Person person new Person("Girl");static{System.out.println("Girl static");}static Person staticPerson new Person("GirlS…

java 轻量数据库_DBTree是一个springboot2 + vue-element-template实现的轻量数据库表结构查看及管理工具...

DBTree简介DBTree是一个WEB版的轻量数据库表结构查看及管理工具,相比phpMyAdmin, DBTree只专注于方便开发查看表结构信息和 注释维护。通过树形展示库表结构,可以对表进行自定义归类,在线更新注释。你还可以使用它来部分替代mybatis generato…

java通用异常_Java常用异常整理

填坑,整理下Java的常用异常。正确使用异常在实际编码中非常重要,但面试中的意义相对较小,因为对异常的理解和应用很难通过几句话或几行代码考查出来,不过我们至少应答出三点:异常类的继承关系、常用异常类、常用异常类…