36

我有一个包含最新数据的数据库,我想将数据库内容复制到其他一些服务器中。由于非技术原因,我无法直接使用复制功能或同步功能同步到其他 SQL Server 实例。

现在,我有两个解决方案,我想了解每个解决方案的优缺点。谢谢!

解决方案1:分离包含最新数据的源数据库,然后复制到需要最新数据的目标服务器,并在目标服务器上附加数据库;

方案二:对整个数据库的源服务器进行全量备份,然后将数据复制到目的服务器,在目的服务器端进行全量恢复。

提前谢谢,乔治

4

3 回答 3

26

分离/附加选项通常比执行备份更快,因为它不必创建新文件。因此,从服务器 A 到服务器 B 的时间几乎是纯粹的文件复制时间。

备份/恢复选项允许您执行完整备份、恢复该备份,然后执行差异备份,这意味着您可以减少两者之间的停机时间。

如果您要进行数据复制,这是否意味着您希望数据库在两个位置都可以正常工作?在这种情况下,您可能需要备份/恢复选项,因为这将使当前数据库完全正常运行。

编辑:只是为了澄清几点。停机时间是指,如果您将数据库从一台服务器迁移到另一台服务器,通常会在传输过程中阻止人们使用它。因此,从服务器 A 上的“停止”点到服务器 B 上的“开始”点,这可以被认为是停机时间。否则,在传输过程中对服务器 A 上的数据库执行的任何操作都不会复制到服务器 B 上。

关于“创建新文件”。如果分离数据库,您可以立即复制 MDF 文件。它已经准备好被复制了。但是,如果您执行备份,则必须等待创建 .BAK 文件,然后将其移动到新位置以进行还原。同样,这一切都归结为这是快照副本或迁移。

于 2009-03-04T11:08:25.793 回答
8

备份和恢复更有意义,即使您可能会从分离附加选项中多花几分钟时间。在分离之前,您必须使原始数据库脱机(断开所有人的连接),然后数据库在您重新连接之前不可用。您还必须跟踪所有文件,而通过备份将所有文件分组。使用最新版本的 SQL Server,备份会被压缩。

只是为了纠正一些事情:数据库备份和差异备份不会截断日志,也不会破坏日志链。

此外,COPY_ONLY 功能只对差异基础很重要,对 LOG 不重要。假设日志链中没有中断,则可以从任何备份开始按顺序应用所有日志备份。存档点略有不同,但我看不出重要的地方。

于 2012-09-17T14:18:56.940 回答
4

解决方案 2 将是我的选择……主要是因为它不会在源数据库上造成任何停机时间。我能看到的唯一缺点是,根据数据库恢复模型,事务日志将被截断,这意味着如果您想从事务日志中恢复任何数据,您将被塞满,您必须使用备份文件。

编辑:找到一个不错的链接;http://sql-server-performance.com/Community/forums/p/5838/35573.aspx

于 2009-03-04T11:10:41.123 回答