我正在使用 SQL Server 2008 企业版。我需要将数据库(作为一个整体)转移到另一台服务器(制作一个重复的数据库来设置另一个测试环境)。
我有两个选择,(1)在源服务器上进行完整备份/在目标服务器上恢复;(2) 在源服务器上进行分离/在目标服务器上附加。
根据我的要求比较两种解决方案的优缺点?
提前谢谢,乔治
我正在使用 SQL Server 2008 企业版。我需要将数据库(作为一个整体)转移到另一台服务器(制作一个重复的数据库来设置另一个测试环境)。
我有两个选择,(1)在源服务器上进行完整备份/在目标服务器上恢复;(2) 在源服务器上进行分离/在目标服务器上附加。
根据我的要求比较两种解决方案的优缺点?
提前谢谢,乔治
一想到要分离数据库,将其文件复制到不同的位置,然后将其重新附加到生产服务器上(并将副本附加到测试服务器上),我就不寒而栗。备份旨在提供数据库的完整副本,而无需任何停机时间。它也不会为源数据库的文件带来意外移动/删除/损坏的机会,我已经看到在分离/附加操作期间发生过多次(由于用户错误 - 错字或鼠标滑动)。此外,传输数据库+日志可能会导致传输文件大小比仅备份大得多。
只需进行备份,然后将备份文件复制/移动到目标服务器。从生产的角度来看,这样做更安全。
希望 DBA 可以在这里插话,因为我不是 DB 人。但我确实知道我在执行分离/附加而不是备份/恢复时遇到了与架构相关的问题。我一直认为更安全的方法是备份和恢复。
分离/附加可能更快,具体取决于您的恢复模式以及您是否在备份中使用压缩。分离和附加几乎是即时的,而在源服务器上写入备份文件然后在目标服务器上写入数据库文件需要一段时间。
备份和恢复将减少源服务器上的停机时间,而分离和附加总体上会更快,因为您不需要先将备份复制到目标系统并恢复它(除非您使用物理媒体来传输备份文件从一台服务器到另一台)。
我仍然会选择备份/恢复:它易于使用和理解,并且正常运行时间始终是生产系统的理想属性。此外,您可以使用它来验证您的备份策略,方法是提取常规备份以进行还原或创建新备份。
安装数据库后,您仍然需要通过权限和架构将它们调整到新位置。在这两种情况下,您可能需要在尝试恢复数据之前传输所有用于加密的密钥。
我总是使用Backkup/Restore——它的侵入性较小,它可以让你的数据库保持在线,而且它是相当愚蠢的证明——我就是这一点的活生生的证明。
我假设您每天/每周/无论如何都在运行备份......有什么比简单地将备份复制到您的测试服务器更容易的呢?[显然,在 100GB 时,需要一段时间!]
我不确切知道您在这里要完成什么,但您还可以在 Enterprise 中进行快照复制,这将允许您定期更新您的开发环境或暂存环境。