MDF 和 LDF SQL 服务器备份
MDF and LDF SQL Server backups
在 SQL Server Management Studio 中,我可以进行数据库备份并将它们保存为 .bak
文件,这些文件也可以在 SQL Server Management Studio 中恢复。
这样做与设置备份 .MDF
和 .LDF
文件的脚本之间有什么区别吗?如果有任何问题,我可以重新附加 .MDF
和 .LDF
个文件?
谢谢
这取决于您的还原需求和备份 space。当然可以只重新附加 MDF 和 LDF 文件,但有一些限制:
- 您必须先分离数据库,进行备份(同时备份两个文件),然后重新附加。这意味着停机时间。
- 您不能进行增量备份。
- 您不能进行差异备份。
- 您不能进行时间点恢复。
- 每次复制MDF和LDF文件时,基本上都必须进行完整备份,这真的会吃掉space(因此,最好进行增量或差异备份)。
- SQL 服务器有内置机制,可以 运行 无需调用外部脚本来进行定期备份。 MDF 和 LDF 备份需要外部脚本,这些脚本有权访问数据目录、备份位置和 attach/detach 数据库的服务器。
基本上,我会说,除非您有充分的理由不使用内置备份功能,否则我会避免手动备份 MDF 和 LDF 文件。
数据库备份比备份文件强大得多。
首先,如果您在数据库正在使用时备份文件,因为它不断变化,您可能会得到一些有用的东西,或者更有可能得到一个损坏的文件。适当的数据库备份协调备份过程中正在进行的更改,以便备份文件完全一致。文件备份可能会为您提供一个文件,该文件具有事务中的一半更改而另一半没有,或者更糟的是,特定页面中的更改只有一半而另一半没有。
其次,正确的数据库备份可以让您将数据库恢复到从最旧的完整备份开始的任何时间点,而不仅仅是进行备份的时间点。 (您将需要自完整备份以来创建的所有日志备份链才能执行此操作)。
编辑:请注意,正如评论中所指出的,内置函数不一定提供时间点恢复——只有当您使用提供该功能的备份类型时(尽管有使用该类型备份的其他原因,即使您不需要时间点恢复)。
SQL 服务器备份生成的文件仅包含未免费、未使用、space 的数据。 .mdf
和 .ndf
文件将包含(有时非常大量)空的、未使用的 space 使得这些文件比备份文件大。并且您必须将数据库与 SQL 服务器分离才能将其复制出来。
在 SQL Server Management Studio 中,我可以进行数据库备份并将它们保存为 .bak
文件,这些文件也可以在 SQL Server Management Studio 中恢复。
这样做与设置备份 .MDF
和 .LDF
文件的脚本之间有什么区别吗?如果有任何问题,我可以重新附加 .MDF
和 .LDF
个文件?
谢谢
这取决于您的还原需求和备份 space。当然可以只重新附加 MDF 和 LDF 文件,但有一些限制:
- 您必须先分离数据库,进行备份(同时备份两个文件),然后重新附加。这意味着停机时间。
- 您不能进行增量备份。
- 您不能进行差异备份。
- 您不能进行时间点恢复。
- 每次复制MDF和LDF文件时,基本上都必须进行完整备份,这真的会吃掉space(因此,最好进行增量或差异备份)。
- SQL 服务器有内置机制,可以 运行 无需调用外部脚本来进行定期备份。 MDF 和 LDF 备份需要外部脚本,这些脚本有权访问数据目录、备份位置和 attach/detach 数据库的服务器。
基本上,我会说,除非您有充分的理由不使用内置备份功能,否则我会避免手动备份 MDF 和 LDF 文件。
数据库备份比备份文件强大得多。
首先,如果您在数据库正在使用时备份文件,因为它不断变化,您可能会得到一些有用的东西,或者更有可能得到一个损坏的文件。适当的数据库备份协调备份过程中正在进行的更改,以便备份文件完全一致。文件备份可能会为您提供一个文件,该文件具有事务中的一半更改而另一半没有,或者更糟的是,特定页面中的更改只有一半而另一半没有。
其次,正确的数据库备份可以让您将数据库恢复到从最旧的完整备份开始的任何时间点,而不仅仅是进行备份的时间点。 (您将需要自完整备份以来创建的所有日志备份链才能执行此操作)。
编辑:请注意,正如评论中所指出的,内置函数不一定提供时间点恢复——只有当您使用提供该功能的备份类型时(尽管有使用该类型备份的其他原因,即使您不需要时间点恢复)。
SQL 服务器备份生成的文件仅包含未免费、未使用、space 的数据。 .mdf
和 .ndf
文件将包含(有时非常大量)空的、未使用的 space 使得这些文件比备份文件大。并且您必须将数据库与 SQL 服务器分离才能将其复制出来。