分离数据库作为备份策略

时间:2018-09-04 15:06:10

标签: sql-server database-design database-administration sql-server-administration

我已经阅读了数十篇有关为什么这是一个坏主意的文章。反对将分离式数据库用作备份的争论不休。但是,我仍然认为,就我而言,这是有道理的。意识到那些通常是对管理人员了解甚少的话,我想将我的策略介绍给这里的好人,看看是否有人可以告诉我为什么我会在内部备份机制下做得更好

让我解决一些常见问题。

  1. 我的数据库文件几乎已满,因此备份只能复制一个事实 使用的网页与我无关;
  2. 我没有使用任何文件流存储;
  3. 当我分离并制作副本时,我的应用程序可以处理少量的停机时间;
  4. 分离数据库所伴随的各种文件权限噩梦已经解决。

数据库的总大小约为1TB。我分离和附加而不是使用备份的主要原因是性能。在我的测试中,与执行备份相比,分离数据库,创建基础文件的副本并再次附加原始文件要快得多。在恢复过程中,附加文件(即使我必须先将它们复制到正确的位置)也比恢复它们要快得多。

我可以通过使用完全备份以外的方法来解决备份性能问题,但这对恢复没有帮助。万一发生灾难,我需要快速备份并运行。我的应用程序可以定期处理少量的停机时间,但是任何长时间的停机都是灾难性的。恢复1TB数据库所需的时间比企业希望为该应用程序容忍的时间长。

我经常阅读的最后一项内容是,分离数据库存在一定的风险。就像我们应该执行备份的测试还原一样,我会立即将所有复制的MDF / LDF / NDF文件附加到灾难恢复SQL Server,以确保副本是正确的。我想在这里暴露的是我可以分离数据库并破坏某些内容,从而使原始DB文件不再可以重新附加。老实说,我从未见过这种情况,因此,如果确实有这种可能,我觉得这很遥远。我每天晚上都要这样做,所以在这种(不太可能?)情况下,我将损失一天的报告数据。

我还想念其他东西吗?

1 个答案:

答案 0 :(得分:3)

使用这种方法,您选择优先于减少恢复时间而不是恢复点(恢复时数据丢失)。这是每个人都必须在某种程度上做出的合理取舍。

每次分离并重新连接以进行备份时,数据库将处于脱机状态,而BACKUP命令完全不需要停机。与偶尔在备份过程中比每天更关注停机时间,这似乎很不寻常,但是我想这取决于备份的实际时间和假设的恢复时间。

您没有提到事务日志备份。对于大多数人而言,日志备份可提供最佳的恢复时间和恢复点。您是否考虑过将相对不频繁的日志备份作为替代策略?

如果恢复时间是当务之急,那么您可能需要具有可以恢复到的热备份硬件。如果您有备用服务器,则可以使用标准备份和还原来最大程度地减少停机时间,这比使用分离方法要多得多:只需每天将数据库还原到备用服务器即可。您甚至可以记录交易日志备份的日志。

与任何备份和还原策略一样,您应该对其进行测试。进行试运行,看看损失一天的工作实际要花多少钱。也许很容易低估了这笔费用。

分离并重新连接时,请确保包括日志文件。除了附加的副本外,还保留一个脱机副本。如果附件碰巧失败(例如,由于其中一个文件已移动),则在某些情况下,文件可能会被“触摸”,因此无法轻松地再次附加它们。我的建议是永远不要尝试从您的 only 数据库文件副本附加附件。

您仍然需要使用BACKUP备份Master数据库(如果需要,还可以备份model / msdb)。