2015-03-25 141 views
1

在SQL Server Management Studio中,我可以进行数据库备份并将它们保存为.bak文件,这些文件也可以在SQL Server Management Studio中进行恢复。MDF和LDF SQL Server备份

是否有这样做并建立一个脚本备份.MDF.LDF文件之间有什么区别 - 如果曾经有过一个问题,我可以重新连接.MDF.LDF文件?

谢谢

回答

3

这取决于您的还原需求和备份空间。这当然是可能的,只是重新安装MDF和LDF文件,但也有一定的局限性:

  • 你必须先分离数据库进行备份(在同一时间两个文件),然后重新安装。这意味着停机。
  • 您无法进行增量备份。
  • 您无法进行差异备份。
  • 您无法进行时间点恢复。
  • 每次复制MDF和LDF文件时,基本上都必须进行完整备份,这可能会占用很多空间(因此,可以更好地执行增量或差异备份)。
  • SQL Server具有内置的机制,可以在不调用外部脚本来执行定期备份的情况下运行。 MDF和LDF备份需要有权访问数据目录,备份位置和服务器的附加/分离数据库的外部脚本。

基本上,我会说,除非你有一个非常好的理由不使用内置的备份功能,否则我会避免手动备份MDF和LDF文件。

+0

谢谢siride。这听起来像依赖于MDF和LDF不是一个好的选择,那么,如果数据库必须离线/分离MDF和LDF文件才能使用。你提到SQL Server内置了用于运行定期备份的机制 - 请你详细说明一下吗?欢呼声 – b85411 2015-03-25 02:03:29

+0

@ bh85411:服务器本身通过T-SQL命令进行备份。查看关于'BACKUP'和'RESTORE'的文档。 SSMS也有很多GUI的东西,使脚本和时间表很容易。 – siride 2015-03-25 02:05:37

2

数据库备份比备份文件功能强大得多。

首先,如果您在数据库正在使用时备份文件,因为它不断变化,您可能会得到一些可行的结果,或者更有可能得到损坏的文件。正确的数据库备份会与备份过程协调正在进行的更改,以便备份文件完全一致。一个文件备份可能会给你一个文件,其中有一半的变化在一个事务中而不是另一半,或者更糟糕的是,一个特定页面中的变化只有一半而不是另一半。

其次,通过正确的数据库备份,您可以将数据库恢复到最早完整备份开始的任意时间点,而不仅仅是备份的时间点。 (您将需要自完整备份以来进行的所有日志备份链)。

编辑:请注意,正如注释中指出的,内置函数不一定提供时间点恢复 - 只有当您使用提供该功能的备份类型时(尽管有其他即使您不需要时间点恢复,也可以使用此类备份的原因)。

+0

只有在使用完整或批量记录恢复模式时,后者才是真实的。如果您使用Simple,则无法获得时间点恢复,尽管您可以恢复到最后一次备份的时间,这通常足够好。 – siride 2015-03-25 02:06:59

0

由SQL Server备份生成的文件只包含数据不是空闲的,未使用的空间。 .mdf.ndf文件将包含(有时非常大量的)空的,未使用的空间,使这些文件大于备份文件。而且你必须从SQL Server分离数据库才能将其复制出来。

+0

此外,从SQL Server 2008及更新版本开始,备份也可以进行压缩 - 节省更多空间 – 2015-03-25 06:03:40