一、快照备份概述

  • MySQL数据库本身并不支持快照功能,因此快照备份是指通过文件系统支持的快照功能对数据库进行备份。备份的前提是将所有数据库文件放在同一文件分区中,然后对该分区进行快照操作
  • 支持快照功能的文件系统和设备包括:
    • FreeBSD的UFS文件系统
    • Solaris的ZFS文件系统
    • GNU/Linux的逻辑管理器(Logical Volume Manager,LVM)等
  • 这里以LVM为例进行介绍,UFS和ZFS的快照实现大致和LVM相似

二、LVM概述

  • LVM是LINUX系统下对磁盘分区进行管理的一种机制。LVM在硬盘和分区之上建立一个逻辑层,来提高磁盘分区管理的灵活性
  • 管理员可以通过IⅥM系统轻松管理磁盘分区,例如:
    • 将若干个磁盘分区连接为一个整块的卷组(Volume Group),形成一个存储池
    • 管理员可以在卷组上随意创建逻辑卷(Logical Volumes),并进一步在逻辑卷上创建文件系统
    • 管理员通过LVM可以方便地调整卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配
  • 简单地说,用户可以通过LVM由物理块设备(如硬盘等)创建物理卷,由一个或多个物理卷创建卷组,最后从卷组中创建任意个逻辑卷(不超过卷组大小),如下图所示:

  • 下图显示了由多块磁盘组成的逻辑卷LV0:

  • 通过vgdisplay命令查看系统中有哪些卷组,如:

  • vgdisplay命令的输出结果显示当前系统有一个rep的卷组,大小为260.77GB,该卷组访问权限是read/write等。命令lvdisplay可以用来查看当前系统中有哪些逻辑卷:

    • 可以看到,一共有3个逻辑卷,都属于卷组rep,每个逻辑卷的大小都是100GB。dev/rep/repdata这个逻辑卷有两个只读快照,并且当前都是激活状态的

三、LVM快照原理

  • LVM使用了写时复制(Copy-on- write)技术来创建快照
  • 当创建一个快照时,仅复制原始卷中数据的元数据( meta data),并不会有数据的物理操作,因此快照的创建过程是非常快的。当快照创建完成,原始卷上有写操作时,快照会跟踪原始卷块的改变,将要改变的数据在改变之前复制到快照预留的空间里,因此这个原理的实现叫做写时复制。而对于快照的读取操作,如果读取的数据块是创建快照后没有修改过的,那么会将读操作直接重定向到原始卷上,如果要读取的是已经修改过的块,则将读取保存在快照中该块在原始卷上改变之前的数据。因此,采用写时复制机制保证了读取快照时得到的数据与快照创建时一致
  • 下图显示了LVM的快照读取,可见B区块被修改了,因此历史数据放人了快照区域。读取快照数据时,A、C、D块还是从原有卷中读取,而B块就需要从快照读取了

  • 命令Ivcreate可以用来创建一个快照,--permission r表示创建的快照是只读的:

  • 在快照制作完成后可以用 Display命令查看,输出中的COW-table size字段表示该快照最大的空间大小,Allocated to snapshot字段表示该快照目前空间的使用状况:

  • 可以看到,当前快照只使用0.04%的空间。快照在最初创建时总是很小,当数据来源卷的数据不断被修改时,这些数据库才会放入快照空间,这时快照的大小才会慢慢增大。
  • 用LVM快照备份 InnoDB存储引擎表相当简单,只要把与 InnoDB存储引擎相关的文件如共享表空间、独立表空间、重做日志文件等放在同一个逻辑卷中,然后对这个逻辑卷做快照备份即可
  • 在对 InnoDB存储引擎文件做快照时,数据库无须关闭,即可以进行在线备份。虽然此时数据库中可能还有任务需要往磁盘上写数据,但这不会妨碍备份的正确性。因为InnoDB存储引擎是事务安全的引擎,在下次恢复时,数据库会自动检查表空间中页的状态,并决定是否应用重做日志,恢复就好像数据库被意外重启了

MySQL(InnoDB剖析):51---备份与恢复之(快照备份(lvcreate、lvdisplay))相关推荐

  1. MySQL(InnoDB剖析):24---B+树索引(聚集索引与非聚集索引(辅助索引))、B+树索引的分裂

    一.B+树索引概述 B+树索引的本质就是B+树在数据库中的实现.但是B+索引在数据库中有一个特点就是高扇出性,因此在数据库中,B+树的高度一般都在2~4层,也就是说查找某一键值的行记录最多只需要2~4 ...

  2. MySQL(InnoDB剖析):36---锁之(阻塞、死锁、锁升级)

    一.阻塞 因为不同锁之间的兼容性问题,在有些时刻一个事务中的锁需要等待另一个事务中的锁释放它所占用的资源,这就是阻塞.阻塞并不是一件坏事,其是为了确保事务可以并发且正常地运行 innodb_lock_ ...

  3. MySQL(InnoDB剖析):53---性能调优之(CPU的选择、内存的重要性、磁盘对数据库性能的影响)

    一.CPU的选择 用户首先需要清楚当前数据库的应用类型.一般而言,可分为两大类:OLTP(Online Transaction Processing,在线事务处理)和OLAP(Online analy ...

  4. MySQL(InnoDB剖析):42---事务之(事务控制语句:begin、commit、rollback、savepoint、transaction)

    一.事务的自动提交 默认情况下,没有使用begin显式开启事务,事务都是自动提交的 autocommit变量 该变量用于控制SQL语句是否自动提交(auto commit) 默认值为1,表示自动提交 ...

  5. MySQL(InnoDB剖析):15---table之(表空间:段(segment)、区(extent)、页(page))

    一.InnoDB逻辑存储结构 从InnoDB的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称之为表空间(tablespace) 表空间又由段(segment).区(extent).页(page ...

  6. MySQL(InnoDB剖析):---B+树索引(聚集索引与非聚集索引(辅助索引))、B+树索引的分裂

    小伙伴们大家好!今天是大年三十,给大家拜个早年!在此小弟祝各位大哥们与家人团团圆圆,和和睦睦,新的一年身体健康,工作顺利! 一.B+树索引概述 B+树索引的本质就是B+树在数据库中的实现.但是B+索引 ...

  7. MySQL(InnoDB剖析):29---全文检索(倒排索引、全文索引/全文检索)

    一.引言 演示说明 前面介绍过了,B+树索引的特点是可以通过索引字段的前缀进行查找.例如对于下面的查询B+树是支持的 select * from blog where content like 'xx ...

  8. MySQL(InnoDB剖析):43---事务之(事务隔离级别:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE)

    ISO和ANIS SQL标准指定了4种事务隔离级别的标准,但是很少有数据库厂商循环这些标准.例如Oracle数据库就不支持READ UNCOMMITTED和REPEATABLE READ SQL标准定 ...

  9. MySQL(InnoDB剖析):10---文件之(参数文件.cnf)

    一.参数文件概述 当MySQL实例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及制定某些初始化参数 在默认情况下,MySQL实例会按照一定的顺序在指定的位置进行参数文件的 ...

最新文章

  1. 新手探索NLP(七)——情感分析
  2. Apache ZooKeeper - 构建ZooKeeper源码环境及StandAlone模式下的服务端和客户端启动
  3. postgresql建表带注释_postgresql建表带自增id和注释语句
  4. 服务器如何用显示器更改ip,ip地址怎么改
  5. Disruptor本地线程队列_实现线程间通信---线程间通信工作笔记001
  6. java框架实例---自定义标签实例
  7. javax.mail.MessagingException: 501 Syntax: HELO hostname Linux端异常解决
  8. 【cornerstoneTools】【vue】使用cornerstoneTools搭建标注系统相关代码
  9. 新华三杯考前突击---Day4---综合篇
  10. 喷墨打印机的使用与维护
  11. OFDM专题之多径效应引起的码间串扰问题
  12. C# WaitAll 等待所有线程执行完毕
  13. 春运火车票开抢,最强攻略请注意查收
  14. JavaScript垃圾收集
  15. win10 1903 1909 Realtek 声卡均衡器 调节失效 解决
  16. 西辽开国皇帝耶律大石:孤独的苍鹰称霸西域
  17. element中表格报错 ResizeObserver loop completed with undelivered notifications.
  18. Windows cmd 使用 ls命令的方法
  19. HTC G14刷机教程!HTC Sensation G14 RECOVERY,ROOT教程!HTC G14解锁教程!G14 ROOT教程!S-OFF教程!!
  20. 利用python删除excel的空白行

热门文章

  1. 混合模式(工厂方法模式+策略模式+门面模式)
  2. 三星Gear S智能手表自带3G模块 可直接打电话
  3. 2023年考社工证新政策 报名条件有变化吗
  4. 解决 ios 微信小程序分享到朋友圈 禁用问题
  5. 轻取软考45分之软考信息系统项目管理师项目成本管理​章节学习笔记
  6. COCI2014strojopis
  7. 四川2020职称计算机考试副高,2020年教师职称普通副高和基层副高的区别?
  8. Flink学习笔记之提交任务
  9. 每日一题——魔鬼之城
  10. 电脑照片删除了怎么恢复回来