首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >差异备份的CheckpointLSN映射到第一个事务日志的CheckpointLSN备份备份是否为真或假?

差异备份的CheckpointLSN映射到第一个事务日志的CheckpointLSN备份备份是否为真或假?
EN

Database Administration用户
提问于 2017-04-04 12:12:14
回答 1查看 194关注 0票数 2

我有一个与Server检查点日志序列号有关的问题。

我读过一些文章,他们说差异备份的CheckpointLSN映射到在此差异备份之后创建的第一个事务日志备份的CheckpointLSN,但是我在https://technet.microsoft.com页面上找不到确认。

我对此有一个疑问,因为我读到了将日志备份定位到DIFF的唯一可能方法是: DIFF.DatabaseBackupLSN =< LOG.DatabaseBackupLSN,DIFF.LastLSN < LOG.LastLSN

此外,我还进行了以下测试,似乎差异备份的CheckpointLSN映射到了在此差异备份之后创建的第一个事务日志备份的CheckpointLSN。

那么这是正确的吗?

EN

回答 1

Database Administration用户

发布于 2017-04-04 15:47:35

不,它不是一直都在地图。这取决于检查点发生的间隔。您可以使用下面的代码对此进行测试。

为了解释我在评论中说过的话,您可以使用这段代码进行测试。

使用这里中的代码加载300行。

创建一个新表。

代码语言:javascript
复制
USE TestChkPoint
GO

CREATE TABLE dbo.TestTableSize
(
    MyKeyField VARCHAR(10) NOT NULL,
    MyDate1 DATETIME NOT NULL,
    MyDate2 DATETIME NOT NULL,
    MyDate3 DATETIME NOT NULL,
    MyDate4 DATETIME NOT NULL,
    MyDate5 DATETIME NOT NULL
)
GO

如果您执行下面的操作,您将在diff和log1备份之间看到不同的log1。

代码语言:javascript
复制
--insert new data
BACKUP DATABASE TestChkPoint TO DISK= 'C:\TestChkPoint.Full.bak'
--insert new data
BACKUP DATABASE TestChkPoint TO DISK= 'C:\TestChkPoint.diff.bak' WITH DIFFERENTIAL
--insert new data
CHECKPOINT 
BACKUP LOG TestChkPoint TO DISK= 'C:\TestChkPoint.log1.bak'

如果执行此操作,您将在diff和log1备份中看到相同的log1。注意,我注释掉了手动检查点。

代码语言:javascript
复制
--insert new data
BACKUP DATABASE TestChkPoint TO DISK= 'C:\TestChkPoint.Full.bak'
--insert new data
BACKUP DATABASE TestChkPoint TO DISK= 'C:\TestChkPoint.diff.bak' WITH DIFFERENTIAL
--insert new data
--CHECKPOINT 
BACKUP LOG TestChkPoint TO DISK= 'C:\TestChkPoint.log1.bak'

现在,如果将TARGET_RECOVERY_TIME设置为1秒,并在没有手动检查点的情况下执行以下步骤,那么在diff和日志备份之间将看到不同的checkpointLSN。

代码语言:javascript
复制
ALTER DATABASE TestChkPoint SET TARGET_RECOVERY_TIME = 1 SECONDS;  

--insert new data
BACKUP DATABASE TestChkPoint TO DISK= 'C:\TestChkPoint.Full.bak'
--insert new data
BACKUP DATABASE TestChkPoint TO DISK= 'C:\TestChkPoint.diff.bak' WITH DIFFERENTIAL
--no manual checkpoint
--insert new data change 300 to 30000
BACKUP LOG TestChkPoint TO DISK= 'C:\TestChkPoint.log1.bak'
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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