暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

GaussDB 数据库高级特性—备份恢复

MySQL社区的备份机制

  • 数据库备份指将数据库系统中的数据加以复制;一旦发生灾难或错误操作时,能够方便且及时地恢复系统的有效数据并实现正常运作,备份的种类包括:
    • 全量备份(Full Backup):即把硬盘或数据库内的所有文件、文件夹或数据作一次的复制;
    • 增量备份(Incremental Backup):指对上一次全部备份或增量备份后更新的数据进行备份;
  • PITR(Point-In-Time Recovery):时间点恢复。通过选择合适的全量备份和增量备份数据,将数据库恢复到指定时间点;
  • XtraBackup是MySQL社区普遍使用的全量备份工具。备份原理是拷贝MySQL数据文件及并记录备份过程中变化Redo日志。恢复原理是通过将备份的Redo日志回放于备份的数据文件上,达到一致性数据状态。MySQL运行中会持续生成Binary Log文件,该文件记录了数据库增量变更,通过保存Binary Log文件完成增量备份;
  • Xtrabackup存在两个问题:1)对于TB级别数据文件,拷贝文件耗时长。2)大并发情况下,备份期间产生的Redo日志多。以上两点都会极大影响了数据备份和恢复的效率。

GaussDB(for MySQL)的备份机制

  • GaussDB(for MySQL)与社区MySQL采用不同的备份机制
    • 全量备份采用快照机制,秒级完成创建快照,具有更高的备份效率;
    • 增量备份采用Redo日志,对数据库实例的性能影响更小;
  • 快照机制
    • 快照的定义:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间占(拷贝开始的时间点)的映像。快照可以是其所表示的数据一个副本,也可以是数据的一个复制品;
    • 快照的类型
      • 写时拷贝COW(Copy On Write)
      • 写重定向ROW(Redirect On Write)
      • 延迟删除DTR(Dealy To Recycle)

写时拷贝

  • 当一个新的写操作执行时,首先读出写操作将要覆盖地址的当前数据,将读出数据保存在专用空间并建立索引,然后再执行新的写操作(写入目标地址)。
  • 创建快照前:在磁盘未进行任何快照前,数据写入动作与其他磁盘一样,对数据进行修改,会直接写入原有磁盘数据块对原有数据进行覆盖,原有数据不会被保留。
  • 创建快照:快照创建后,会生成与源磁盘一致的数据副本。此时,后端存储系统在源磁盘所在的存储池中动态划分COW数据空间并自动生成快照,快照的指针指向源磁盘数据的存储位置。
  • 源磁盘写入数据:当实例对源磁盘有数据写入请求时,后端存储系统不会立即写入新数据。后端存储系统利用写前拷贝机制先将写前拷贝数据拷贝到COW数据空间中,并修改映射表中的映射关系,然后将新数据写入源磁盘。
  • 修改源磁盘中的数据A前,需要先将数据A拷贝至COW数据空间,然后修改快照指针指向COW数据空间中数据A的存储位置,最后才将数据A’写入源磁盘。
  • 那么如何恢复原来的数据ABC呢?只需要将COW快照空间回滚源磁盘(将COW快照空间的数据盖到源磁盘上即可),此时的数据就是原来的数据ABC。

写时重定向

  • 读写操作步骤:新的写数据被存入日志(并索引),读原数据盘时,通过检索日志找到对应数据。
  • 创建快照前:在磁盘未进行任何快照前,数据写入动作与其他磁盘一样,对数据进行修改,会直接写入原有磁盘数据块对原有数据进行覆盖,原有数据不会被保留。
  • 创建快照:快照创建后,会生成与源磁盘一致的数据副本。此时,后端存储系统将源磁盘的指针复制给快照,快照的指针指向源磁盘数据的存储位置。
  • 源磁盘写入数据:快照创建后,当实例对源磁盘有数据写入请求时,存储系统利用ROW技术将新写入的数据存放在新的位置,源磁盘的指针更新,指向新数据的存放位置。快照的指针仍指向原始数据的存储位置,从而保存源磁盘在快照创建时间点的数据。
  • 修改源磁盘中的数据A时,会将新数据A’写入新的位置,然后修改源磁盘的指针指向A’的存储位置。快照的指针仍指向原始数据A的存储位置。现阶段的数据即为A’BC,源磁盘的数据不变,为ABC。

延迟删除(append only)

  • GaussDB(for MySQL)存储操作模型为append only,不会对数据页做原地更新,新写入数据不会对原有数据覆盖,快照仅仅影响页面的删除。对于被删除的页面,如果被快照引用,则不删除,直到快照被删除;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论