2013-10-16 40 views
0

我是新来的SQL服务器。我有一个SQL服务器,我有第二个SQL服务器(备份服务器)。我想复制数据从SQL服务器到第二个和我所有的交易创建更新删除必须是立即反映在第二台服务器上。我的表中有非常大的数据,假设有数百万行。我该如何实现这一点。我没有使用第三方工具的先决条件。在Microsoft SQL Server中复制数据

+2

你使用的是什么版本的Sql Server? 2005,2008,2012/Express,Standard,Enterprise ... –

+0

sql server 2008 enterprise – constantlearner

回答

3

您可以尝试让这两个参考一些帮助:

在一个侧面说明一个重要的事情,你应该需要计划做之前复制的您将用于复制的复制模型。

有复制模型的列表,你可以使用: -

  • 对等网络模型
  • 中央出版商模型
  • 中央出版商与远程分发模型
  • 中央订购模式
  • 出版用户模型

以上各项都有自己的优势。根据您的需要检查它们。

而且要添加到它有三种类型的复制: -

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

@constantlearner: - 这个问题太宽泛了,无法得到答案。最好的办法是尝试并尝试上述任何链接,并告诉我们您是否遇到任何问题! :) –

+1

感谢您的帮助,我会尝试与他们。我是新的SQL服务器 – constantlearner

+1

@constantlearner: - 不客气! –

3

指定您需要的数据要在第二反射服务器立即,实时。

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

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

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

如果你有这些限制,OK,你可能会如果你没有确定这些限制,请调整/澄清你的要求,可以考虑使用Synchronous Database Mirroring (High-Safety Mode).

0

退房在SQL Server 2008中的复制本教程:

Tutorial: Replicating Data Between Continuously Connected Servers

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

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

这可以通过链接服务器和触发器来完成......但Michael提到的有关阻止服务器提交事务的风险与触发器一样重要或者更多,您可以避免您自己的T-SQL/SSIS +作业。

希望可以帮到...

+0

为什么降价? –

+1

-1链接只有答案是不鼓励的。您应该将相关信息添加到您的答案中,但这个问题实际上太宽泛了,不应该保持开放。 – Mansfield

+0

@Mansfield好的,很高兴知道......我将来会做出相应的调整。为了记录,我认为这样一个广泛的培训要求是适当的,而且比其他人所做的仅仅告诉他他的问题太广泛,更有帮助。 (至少我找到了一个教程。)如果我贡献更多(*高兴做*),你反向downvote? –