Nev*_*ing 2 sql-server transaction-log
我有两个问题。我有一个处于完全恢复模式的数据库。让我们将事务日志简称为 LDF 文件。
SQL Server 允许我在从数据库恢复到自身时恢复到过去的时间点。这甚至有意义吗?当我尝试它没有产生预期的结果。如果它不起作用,为什么甚至允许这样做?它有什么实际用途吗?
在玩 LDF 文件时,我发现了一个好奇心:考虑在简单模式下使用数据库。然后我将其切换到完全恢复模式。然后我在数据库中插入了一些 10000 行,检查 LDF 并发现 LDF 文件大小没有增加。当我进行完整备份然后再次将 10000 行插入数据库时,LDF 文件才会增加。这是某种优化吗?注意:我在两次操作之前都缩小了 LDF 文件。
感谢所有的解释。
恢复数据库的过程只会在时间上向前推进,永远不会向后1。因此,将数据库恢复到某个时间点涉及从完整备份开始,然后将事务日志备份应用到/包含您希望恢复到的时间点。
这个想法是存在将数据库恢复到以前存在的特定状态的能力。如果整个数据库丢失(灾难)并且必须从备份中重新构建,则可能需要这样做;或者,“坏事”可能已经发生,无论是恶意的,还是由于腐败,必须就地恢复。
如果您在使用此功能时遇到问题,我们将需要有关您将如何操作的更多信息。
正如评论中所提到的,在进行完整备份之前,数据库在内部处于FULL
或BULK_LOGGED
保持在SIMPLE
模式中,这提供了可以从中恢复数据库的“基础”。我见过这种叫做“伪简单”的模式。
您看到的有关日志文件大小的行为可能是由于上述原因,尽管这取决于行的INSERT
编辑方式。在SIMPLE
(和伪简单)恢复中,如果日志文件开始变满,aCHECKPOINT
将启动,这将在内部释放日志文件中的空间作为进程的一部分。因此,如果INSERT
s 在单独的事务中完成,则不会增加日志。INSERT
在单个事务中执行所有s会增加日志,因为在事务提交或回滚之前无法清除回滚整个事务所需的日志记录。
1不包括STANDBY
模式恢复、崩溃恢复等。
归档时间: |
|
查看次数: |
1073 次 |
最近记录: |