在microsoft sqlserver中复制数据

时间:2013-10-16 17:02:59

标签: sql sql-server sql-server-2008

我是sql server的新手。我有一个sql server,我有第二个sql server(backupserver)。我想将数据从sql server复制到第二个,所有我的事务创建更新删除必须反映在第二个服务器上我的表中假设有数百万行,我的数据非常庞大。我怎样才能实现这一目标。我没有使用第三方工具的优势。

3 个答案:

答案 0 :(得分:3)

您可以尝试从这两个引用中获得一些帮助:

另外,在进行复制之前,您需要规划的重要事项是您将用于复制的复制模型。

您可以使用复制模型列表: -

  • 点对点模式
  • 中央发布商模型
  • 拥有远程分销商模式的中央发布商
  • 中央订户模型
  • 发布订阅者模型

以上每一项都有其自身的优势。根据您的需要检查它们。

另外要添加它有三种类型的复制: -

  1. Transactional replication
  2. Merge replication
  3. Snapshot replication

答案 1 :(得分:3)

您指定需要实时立即在第二台服务器上反映数据。

此要求将为主服务器上发生的每个事务增加延迟,因为每个操作都需要在辅助服务器上提交,然后才能在主服务器上提交。

除延迟外,此要求还可能会降低您的可用性。如果辅助服务器不再能够从主服务器成功提交事务,则主服务器也不能再提交事务,并且系统已关闭。

有关这些约束的更多信息,请refer to the extensive discussion around this topic(CAP theorem)

如果您对这些限制没有问题,可以考虑使用Synchronous Database Mirroring (High-Safety Mode).

如果您对这些限制不满意,请调整/澄清您的要求。

答案 2 :(得分:0)

查看有关SQL Server 2008复制的本教程:

Tutorial: Replicating Data Between Continuously Connected Servers

由于您说“......实时立即反映在第二台服务器上”,这意味着您要使用事务复制。您仍然只能选择复制某些表。

“数百万行”是否代表某种历史?如果是这样,请考虑迈克尔提到的风险......以及您是否需要第二台服务器中的所有历史记录,或者只需要当前/最近的活动。如果它只是当前/最近的,那么在T-SQL或SSIS中编写一些内容可能更安全,更少系统耗尽,以便执行循环,读取和复制数据的作业。

这可以通过链接服务器和触发器来完成......但迈克尔提到的关于阻止服务器提交事务的风险与触发器一样多或多关注......你可以避免自己的T-SQL / SSIS +工作。

希望有帮助...