备份的目的

能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方。

备份的分类

以操作过程中服务的可用性分:

冷备份:cold backup mysql服务关闭,mysql离线

温备份:warm backup mysql服务在线,但是不允许写请求,例如 read lock,在线的某些功能需要中止。

热备份:hot backup 备份同时,业务读写请求继续,业务不受干扰。(没有绝对的热备份,无限接近,停止的时间忽略不计)

myisam :不支持热备

innodb : 需要专用工具

以操作方式区分:

逻辑备份: 备份的是建表、建库、插入等操作所执行sql语句(ddl dml dcl),适用于中小型数据库,效率相对较低(相对复杂,且在恢复过程中容易丢失数据,不推荐使用)

物理备份: 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,

但不能恢复到不同的mysql版本。(推荐使用)

lvm快照备份的优缺点

优点:

几乎是热备 (创建快照前把表上锁,创建完后立即释放)

支持所有存储引擎

备份速度快

无需使用昂贵的商业软件(它是操作系统级别的)

缺点:

可能需要跨部门协调(使用操作系统级别的命令,dba一般没权限)

无法预计服务停止时间

数据如果分布在多个卷上比较麻烦 (针对存储级别而言)

lvm 快照备份原理:

lvm对lv提供的快照功能,只对lvm有效。

当一个snapshot创建的时候,仅拷贝 原始卷 里数据的 元数据(meta-data)。因此建立快照的速度非常快

创建的时候,并不会有数据的物理拷贝,因此 snapshot的创建几乎是实时的,当原始卷上有写操作执行时,

snapshot 跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在 改变之前被拷贝到 snapshot预留的空间里,

因此这个原理的实现叫做写时复制 (copy-on-write)。

在写操作写入块之前,将原始数据移动到 snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。

而对于snapshot的读操作,如果是读取数据块是没有修改过的,那么会将读操作直接重定向到原始卷上,如果是要

读取已经修改过的块,那么就读取拷贝到snapshot中的块。

lvm 快照备份流程:

lvm快照: 锁表时间接近热备

1. 加全局读锁

mysql> flush tables with read lock;

2.创建快照, lvcreate -l 500m -s -n lv-mysql-snap /dev/datavg/lv-mysql ;

3.刷新二进制日志 mysql> flush logs

4 释放锁  mysql>unlock tables

5. 挂载 快照设备 ,并从快照设备中,对数据库文件进行打包与 压缩

6、卸载快照设备

7、 移除快照设备 lvremove -f /dev/datavg/lv-mysql-snap

产生了一份新的 二进制日志。

此时,手动插入 几条数据,修改几条数据 ======》 体现最新的 二进制日志中。!

模拟崩溃:

停止服务,删除 数据库所有文件 ( 二进制日志不要和数据库数据放在同一目录 )

要求,恢复所有数据,包括 刚才 新增 和 修改了的 数据。

恢复流程:

1、恢复最近的一次 完全备份, mysql-2018-9-19-full.tar.gz /mysql 解压。

2、将最近的一份二进制日志 进行导出 mysqlbinlog /data/mysql-binlog/mysql.000025 > /tmp/a.sql

3、启动mysql服务(产生一份新的二进制日志 ),登录mysql

4、设置 临时 停止记录 二进制 日志。 mysql> set session sql_log_bin=0;

5、mysql> source /tmp/a.sql;

6、mysql> set session sql_log_bin=1; 重新开启二进制日志功能

至此,恢复完成! 用 select 语句 进行 查询验证,看数据是否恢复 。

希望与广大网友互动??

点此进行留言吧!

mysql5.7数据库快照_lvm快照备份数据库(Mysql5.7)相关推荐

  1. RMAN备份数据库_使用RMAN备份数据库文件

    1.使用RMAN备份整个数据库 可以在数据库挂载或打开时执行整个数据库备份. 使用BACKUP DATABASE命令从RMAN提示符中执行整个数据库的备份. 你可能想从整个数据库备份中排除特定的表空间 ...

  2. mysql dump 数据库_MySQL使用mysqldump备份数据库

    在本教程中,您将学习如何使用mysqldump工具备份MySQL数据库. MySQL GUI工具(如phpMyAdmin,SQLyog等)通常为备份MySQL数据库提供了方便的功能. 但是,如果您的数 ...

  3. 如何实现php自动备份数据库,使用php自动备份数据库表的实现方法

    1.前言 mysql数据库的备份方式有很多: 例如: 1.使用mysqldump函数 mysqldump -u username -p dbname table1 table2 ... > Ba ...

  4. mysql数据库的在线数据备份与数据恢复

    MySQL是一种常用的关系型数据库管理系统,它支持在线备份和恢复数据.在线备份指的是在MySQL数据库运行时备份数据,而不会中断或影响现有的数据库服务.在本文中,我们将介绍MySQL数据库的在线数据备 ...

  5. mysql数据库恢复策略_MySQL 备份和恢复策略(一)

    在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.本文主要对MyISAM表做备份恢复. 备份策略一:直接拷贝数据 ...

  6. MySQL:备份数据库脚本报错mysqldump: Couldn‘t execute ‘SELECT COLUMN_NAME****

    脚本如下 @echo off echo 如果备份过程遇到任何问题请联系 感谢您的使用title MYSQL数据库备份进行中,请不要关闭该窗口 color 0c echo. echo MySQL数据库备 ...

  7. 使用SQL Server Management Studio 创建作业备份数据库

    在项目中,经常需要备份数据库,如果能做到只需点个按钮("开始备份数据库"按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sq ...

  8. 【运维 | Docker】服务器备份数据库到电脑

    服务器备份数据库到电脑 服务器备份数据库到电脑 思路: linux:定时备份脚本,会暴露数据库密码,压缩加密密码,需要加密 win: 定时bat脚本,会暴露服务器密码,需要加密 还有一种借助xshel ...

  9. MySQL数据库使用命令行备份|MySQL数据库备份命令

    例如: 数据库地址:127.0.0.1 数据库用户名:root 数据库密码:pass 数据库名称:myweb 备份数据库到D盘跟目录mysqldump -h127.0.0.1 -uroot -ppas ...

最新文章

  1. hive数据倾斜的解决办法
  2. 用route命令解决Wifi和网卡不能同时上内外网问题
  3. iOS安装CocoaPods的详细步骤
  4. 从使用到原理学习Java线程池
  5. 计算机文化基础第三版龙天才课后答案,龙天才
  6. 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(1)--创建和使用可重用工作流...
  7. html5调用app服务端,webapp调用摄像头(H5+),并发送给服务端
  8. 最新的jQuery插件和JavaScript库
  9. c语言组成整数的最大数字,c语言 编写程序将一个正整数中的所有偶数数字取出来并用这些数字构成一个最大数。...
  10. Asp.net MVP模式介绍
  11. 工程介绍好处费性质_中间人拿工程好处费是否违法
  12. GBIT51231-2016装配式混凝土结构建筑技术标准
  13. 如何区分项目组合管理,项目集管理,和项目管理
  14. 【搜索】训练E - Crazy Robot
  15. java 微信公众号发红包,Java微信支付-微信红包
  16. extern 关键字详解
  17. python日期运算_Python:日期计算器
  18. 正圆锥体空间方程_科学解读:什么是时间?什么是空间?理论上时空是什么?...
  19. ubuntu / linuxmint 搜狗输入法安装后 fcitx configure找不到的解决办法
  20. Java 压缩PDF文档

热门文章

  1. ubuntu16.04 sudo apt-get update解决Hash sum错误
  2. wifi管理系统_KJ725(A)精确人员定位管理系统实现对井下人员和车辆的精确定位
  3. opengl版本发展史及各种概念的厘清
  4. 如何让机器人持续地进行模仿学习(IROS 2021)
  5. 粒子滤波在图像跟踪领域的实践
  6. 天正立面lisp什么意思_合欢花的花语是什么?为什么合欢花叫苦花?
  7. docker 容器数据备份
  8. np.reshape 中的 -1 参数
  9. JCIM| 基于双向RNN的分子生成模型
  10. 欧几里德结构数据与 非欧几里德结构数据