MSSQL日志序列号的还原操作是怎样的
Admin 2022-07-28 群英技术资讯 802 次浏览
今天就跟大家聊聊有关“MSSQL日志序列号的还原操作是怎样的”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“MSSQL日志序列号的还原操作是怎样的”文章能对大家有帮助。Microsoft SQL Server 事物日志中每个记录都由一个唯一的日志序列号(LSN)标识,如果 LSN2 大于 LSN1,则 LSN2 所标识的日志记录描述的更改发生在日志记录 LSN1 描述的更改之后。
顺序还原期间,还原完整备份后,数据被还原到进行备份的时间点相对应的 LSN,利用差异和日志备份可以将还原的数据库推到稍后的时间,该时间与一个更高的 LSN 相对应。
还原计划中,最重要的日志序列号(LSN)是第一个和最后一个 LSN。
first_lsn或FirstLSN:备份集中第一个或最早日志记录的日志序列号。对于数据备份和差异备份,第一个 LSN 标识的是需要此备份执行恢复的最早日志记录,对于日志备份,第一个 LSN 标识的是备份中包含的第一个日志记录。
last_lsn或LastLSN:备份集之后的下一条日志记录的序列号。最后一个 LSN 标识的是备份结束后的下一个日志记录。对于数据备份和差异备份(以及包含大容量日志操作的日志备份)。必须至少前滚到此 LSN,否则,还原期间复制的数据会出现不一致。对于日志备份,它包含的日志记录最多到(但不包含)此LSN。
日志序列号和数据备份或差异备份
对于数据备份或差异备份,first_lsn 和 last_lsn 之间的日志数据包含在备份中,这使得使用该备份(而无需日志备份)就可以恢复到 last_lsn。
对于数据备份或差异备份,如果按还原顺序使用备份,则 last_lsn 可能是最早的恢复点,如果需要更早的恢复点,则必须使用更早的备份。
当计划在还原数据备份或差异备份后使用哪个日志备份前滚时,通常将从该数据备份或差异备份之后的第一个日志备份开始,检查备份的属性时,你就会发现这样一个日志备份,其 first_lsn 小于或等于数据备份或差异备份中的 last_lsn,并且 last_lsn 大于数据备份或者差异备份中的 last_lsn。
日志序列号和日志链中的日志备份
新的日志链将随顺序局创建后的第一个完整数据库备份而启动,或在从简单恢复模式切换到完整或大容量日志恢复模式后启动。
first_lsn 和 last_lsn 用于将日志备份连成一个连续的序列(即日志链)。可以使用连续的日志备份序列前滚数据库(可以从最近的数据库备份或者差异备份前滚,也可以从丢失或损坏的数据库备份和差异备份的早期备份前滚)。
在日志备份中,first_lsn 是备份中第一个日志记录的 LSN,从此日志记录开始,日志备份最多包含到 LSN 为 last_lsn 的日志记录(但不包含该日志记录)。而且仅当早期备份(Backup_A)中的最后一个日志记录的 LSN 大于或等于后期备份(Backup_B)的第一个日志记录的 LSN 时,这两个日志备份才是连续的;也就是 Backup_A.last_lsn >= Backup_B.first_lsn。如果不是这样,这两个备份之间将存在空白。
这些 LSN 之间关系的意义如下:
A.last_lsn = B.last_lsn:则 B 通常是紧跟着 A 后进行的日志备份
A.last_lsn > B.last_lsn:存在重叠。重叠通常是由于创建仅复制日志备份或在时点还原后备份第一个日志引起的。重叠可能会涉及不同的恢复分叉。
日志链断开的原因
通常,SQL Server 数据库引擎会防止日志备份序列中出现空白,从而使日志链保持完整。但是,如果数据库管理员先将恢复模式更改为简单恢复模式,然后再将其改回完整或者大容量日志恢复模式,会使日志链断开。
由于日志链已断开,因此无法在涉及简单恢复模式的恢复模式中前滚。更改到完整或大容量日志恢复模式后,应使用新的差异基准或差异基准集。此外,也可以使用差异备份填补空白。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章介绍了SQL Server中使用表变量和临时表的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
在SQL中,我们经常会使用到查询操作,如果只是普通查询,可能会出现重复数据的情况,那么SQL要怎么实现查询且去掉重复数据呢?下面小编给大家介绍几种方法,有需要的朋友可以参考参考。
学习SQL对于常用的数据类型是需要掌握的,为了让大家熟悉和掌握数据类型,下面给大家介绍一下常见的SQL数据类型,以下有描述和使用注意事项,大家可以看看。
这篇文章给大家介绍使用自定义参数方式实现 superset 实现SQL动态查询功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
学习SQL sever,查询语句是必须要掌握的,对此本文就给大家介绍一下关于sql server简单的查询语句,因为简单语句是基础,要想做复杂查询,先掌握简单查询语句很重要。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008