首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是LSN (日志序列号)?Xtraback增量备份是如何工作的?

什么是LSN (日志序列号)?Xtraback增量备份是如何工作的?
EN

Database Administration用户
提问于 2018-07-30 11:45:06
回答 1查看 1.6K关注 0票数 3

我感到惊讶的是,xtrabackup支持增量备份。xtrabackup复制数据文件并理解数据文件的格式(可以查看内部)?什么是假人的LSN?我找到了什么是日志序列号?它是如何在MySQL中使用的?

来自增量备份的报价

增量备份复制LSN比上一次增量备份或完整备份的LSN更新的每个页面。有两种算法用于查找要复制的此类页面集。第一个可用于所有服务器类型和版本的方法是通过读取所有数据页直接检查页面LSN。Percona提供的第二个功能是启用服务器上已更改的页面跟踪功能,该功能将在页面被更改时记录这些页面。然后,这些信息将被写入一个单独的紧凑的所谓位图文件中.xtrabackup二进制文件将使用该文件只读取增量备份所需的数据页,从而可能节省许多读取请求。如果xtrabackup二进制文件找到位图文件,则默认启用后一种算法。即使位图数据可用,也可以指定xtrabackup增量-强制扫描来读取所有页面。

我还是不明白这是怎么回事。您使用xtrabackup增量备份吗?您推荐xtrabackup增量备份吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-07-30 16:07:57

LSN a.k.a.日志序列号是一个8字节的整数,用作重做日志条目(ib_logfile*)的版本。每次对数据的更改都会在重做日志中生成一个条目,并获得一个新的LSN。LSN随每次更改而递增。

每个InnoDB索引页(存储用户数据的地方)头中都有LSN字段。最后一次修改页面的是LSN。

所以。如果我们知道上一个LSN (我们称之为lsn_full)在进行完全备份时是什么,那么我们就知道从那时起某个特定页面是否发生了变化。因为如果页面的LSN (我们称它为lsn_current)高于lsn_full,那么自上次备份以来,页面已经发生了变化。

Xtrabackup使用这种思想实现增量备份。事实上,您可以使用Xtrabackup实现增量备份和差异备份。查看选项--incremental-lsn--incremental-basedir

是否使用增量备份取决于您对整个过程的信心程度。如果您不完全了解备份和恢复过程中发生了什么,那么很容易陷入困境。(在TwinDB,我必须处理许多增量备份因任何原因无法使用的情况)。

我强烈建议验证备份。确保备份副本可用的最可靠方法是从备份副本恢复数据库。所以我建议算法:

  • 拿上最新的副本。
  • 还原其上的start MySQL实例。
  • 如果某个表包含最近的数据,请检查它。例如,如果您将事务存储在数据库中,请确保有一些事务不早于一天或其他时间。
票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/213562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档