我有一个包含最新数据的数据库,我想将数据库内容复制到其他一些服务器中。由于非技术原因,我无法直接使用复制功能或同步功能同步到其他SQL Server实例。
现在,我有两个解决方案,我想了解每个解决方案的优缺点。谢谢!
解决方案1:分离包含最新数据的源数据库,然后复制到需要最新数据的目标服务器,并在目标服务器上附加数据库;
解决方案2:为整个数据库进行源服务器的完整备份,然后将数据复制到目标服务器并在目标服务器端进行完全恢复。
提前谢谢, 乔治答案 0 :(得分:25)
分离/附加选项通常比执行备份更快,因为它不必创建新文件。因此,从服务器A到服务器B的时间几乎完全是文件复制时间。
“备份/还原”选项允许您执行完整备份,还原,然后执行差异备份,这意味着可以在两者之间减少停机时间。
如果您正在追踪数据复制,这是否意味着您希望数据库在两个位置都能正常运行?在这种情况下,您可能需要备份/恢复选项,因为这将使当前数据库完全正常运行。
编辑:只是为了澄清几点。停机时间我的意思是,如果您将数据库从一台服务器迁移到另一台服务器,通常会阻止人们在运输过程中使用它。因此,从服务器A上的“停止”点到服务器B上的“开始”点,可以将其视为停机时间。否则,在传输过程中对服务器A上的数据库执行的任何操作都不会复制到服务器B上。
关于“创建新文件”。如果分离数据库,则可以立即复制MDF文件。它已经准备好被复制了。但是,如果执行备份,则必须等待创建.BAK文件,然后将其移动到新位置以进行还原。这一切都归结为快照副本或迁移。
答案 1 :(得分:8)
备份和恢复更有意义,即使您可能会从分离附加选项中获取额外的几分钟。您必须在分离之前使原始数据库脱机(断开所有人),然后在您重新连接之前数据库不可用。您还必须跟踪所有文件,而备份时,所有文件都会被分组。使用最新版本的SQL Server,备份将被压缩。
只是为了纠正错误:数据库备份和差异备份不会截断日志,也不会破坏日志链。
此外,COPY_ONLY功能仅适用于差分基础,而不适用于LOG。假设日志链中没有中断,可以从任何备份按顺序应用所有日志备份。与归档点略有不同,但我看不出重要的地方。
答案 2 :(得分:4)
解决方案2将是我的选择...主要是因为它不会在源数据库上创建任何停机时间。我能看到的唯一不利因素是,根据数据库恢复模型,事务日志将被截断,这意味着如果您想要从事务日志中恢复任何数据,那么您必须使用备份文件。 / p> 编辑:找到一个很好的链接; http://sql-server-performance.com/Community/forums/p/5838/35573.aspx