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

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


一、 Mysqldump备份结合binlog日志恢复

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

1. Binlog简介

  • 主要用于主从复制和恢复数据库,使用mysqlbinlog命令查看binlog二进制日志文件

  • 下面我们通过一个实例,演示,binlog是怎么恢复到某个时间点的

重启mysql服务使配置生效

验证binlog是否开启成功

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

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

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

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

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

  • 从此图可以分析出,mysql-bin.00001文件全部恢复即可,

  • Mysql-bin.00002的219-416区是不需要恢复的

下面开始模拟

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

模拟删除数据库

通过binlog日志恢复

验证

2. Mysqldump简介

  • mysqldump是mysql用于备份和数据转移的一个工具;

  • 将sql语句封装到文件,文件包含所有重建你的数据库所需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等,可以用来实现轻量级的快速迁移或恢复数据库

  • mysqldump 是将数据表导成 SQL 脚本文件,可以在不同的 MySQL 版本之间使用

  • mysqldump用于数据量很小的备份(大概几个G),当数据量大的时候不建议使用

  • 导出对象:单个表、多个表、单个数据库、多个数据库、所有数据库

1) 示例

导出指定数据库或单个表

导出多个数据库

导出所有

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

导入

2)Mysqldump备份方案

周日凌晨1点全库备份;

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

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

首先设置cronta任务

编辑mysqlfullbackup脚本

编辑mysqldailybackup.sh脚本内容

二、 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

安装相关插件

安装percona-toolkit

Wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm

5. Xtrabackup+binkog

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

1)首先创建备份目录

2)注意开启binlog日志

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

4)查看备份

5)在生产环境中,还会备份binlog日志

可以使用—start-position和—stop-position以跳过误删除的位置,去备份binlog日志,这里不再演示

6)Xtrabackup还原

还原前需要解决数据一致性的问题

开始还原

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

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

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

转载于:https://blog.51cto.com/xsboke/1925641

MySQL:常用备份方式(基于5.7)相关推荐

  1. mysql的常用的备份工具_39、mysql常用备份工具

    备份和恢复的作用 1.做灾难恢复 2.做审计 3.测试(备份数据做恢复测试) 备份类型: 根据备份时,数据库服务器是否在线 冷备:cold backup 服务器处于离线状态 温备:warm backu ...

  2. MySQL数据备份方式,及热备与冷备的优缺点

    一.按照数据库的运行状态分类: (1) 热备:在数据库运行时,直接进行备份,对运行的数据库没有影响 (2) 冷备:在数据库停止运行的时候进行备份,这种备份方式最为简单,只需要拷贝数据库物理文件即可. ...

  3. mysql5.7物理备份_Mysql5.7—运维常用备份方式

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

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

    小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------谢谢您的参考,如有疑问,欢迎交流 一. Mysqldump备份结合binlog日志 ...

  5. mysql数据库备份方式,跳槽大厂必看!

    NO1:说说zookeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现(Chubby是不开源的),它是集群的管理者,监视 ...

  6. mysql数据库备份方式

    可以使用SQLyog工具进行备份.但是最高效得方式还是命令行啊 1备份单个数据库: mysqldump -u用户名 -p密码 数据库名 表名 -w="筛选条件" > 导出文件 ...

  7. mysql常用备份指令

    mysql远程连接 --指定ip和端口号注意端口号为大写P mysql -h 127.0.0.1 -P 3306 -u root -p root mysqladmin指令 --查看帮助文档mysqla ...

  8. mysql主从备份 ssl_基于SSL的mysql主从复制

    基于SSL的mysql主从复制 [背景] MySQL的协议是明文的,当复制一些重要数据时.有时需要用到SSL功能,以保证数据的安全性. [准备] 准备前期准备 一.主从时间一致性 [root@node ...

  9. 常用的数据库备份方式(完全备份、差异备份、增量备份)

    我们来看一道2011年的系统架构设计师考试真题: 2011年下半年系统架构设计师考试上午真题试题(综合知识) 数据备份是信息系统运行管理时保护数据的重要措施.()可针对上次任何一种备份进行,将上次备份 ...

最新文章

  1. PC机安装android apk | adb install -r
  2. Vue04 -- 计算属性用法(v-for的筛选排序)
  3. 为什么优秀的程序猿都阅读源码
  4. Pinyin4j中文字符和拼音之间的转换
  5. 服务器tail正常,cat正常,vim打开中文乱码
  6. 【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
  7. daatable动态创建
  8. mysql 5.7.20 win64_Win10下MySQL5.7.20 Mysql(64位)解压版安装及bug修复
  9. 面对亚马逊和谷歌的争夺战,小企业该如何生存?
  10. SQLServer生成带数据的脚本
  11. 荐一个不错的UI设计网站: uimaker
  12. 数学建模基本模型(一) 优化模型
  13. 从Uber和快的、滴滴、易到App对比看人性
  14. 趣图 | EDG牛逼!!!
  15. Vue-5 路由参数的传递和获取(query 和 params),导航守卫和路由元信息,History模式
  16. 计蒜客-植物大战僵尸
  17. 图像分割:DeepLabV3与DeepLabV3+介绍
  18. 读史鉴今:女人的十二种结局
  19. Hadoop操作HDFS命令
  20. 1.1程序设计(C语言基础)

热门文章

  1. CodeFores 665D Simple Subset(贪心)
  2. 订餐系统-第一个用NodeJs实现的项目
  3. 任意手机虚拟按键增加方法
  4. exit()和_exit()的区别
  5. git-osc自己定义控件之:CircleImageView
  6. form表单提交回调函数
  7. Git常见相关知识与命令
  8. Thinkphp修改一句代码,使得foreach标签支持对象,增加变量[数组对象]混合解析法!...
  9. [转]centos7下yum安装mysql
  10. [Linux] Linux命令之pstree - 以树状图显示进程间的关系