T-SQL:建议将数据复制到另一个数据库

时间:2014-12-15 03:40:13

标签: sql-server tsql

我需要建议将每日数据复制到另一台服务器。

为了给你一个情况的图像,我会解释一下。有工作站将事务发布到2个数据库服务器(DB1DB2)。这些数据库服务器托管在2个独立的物理服现在每日交易量为50.000,但很快就会增加。可能会有几天工作站停止运行(可操作但无法发布数据)和几天后发布的交易。

所以,我所做的是对这两个链接的服务器运行查询。每日查询输出包含〜50.000条记录,最少15分钟的抓取时间,因为链接服务器存在性能问题。我将创建一个SP并安排它在早上2点运行。

我的担忧从这里开始,输出将被复制到另一个数据仓库(DW)。这是我们客户的特殊土地,我不太了解。此DW将链接到这些数据库服务器,以便可以跨数据发送数据(由我的存储过程生成)。

现在,你要做什么来复制数据:

  1. DB1上创建一个虚拟表,以便在同一服务器上复制存储过程输出,以确保它可用,我们不需要再次重新运行存储过程。然后客户端稍后检索它。

  2. 使用"选择"将内容复制到远程DW表的语句。在获取和向DW发送数据期间,我不知道这个会发生什么。请记住,我的存储过程需要大约15分钟来获取数据。

  3. 通过ftp发布数据(由存储过程检索)和xml文件。

  4. 请告诉我是否有办法在工作上设置提醒或通知。

  5. 我只想采取预防措施,以便在出现问题时更容易追踪。

    非常感谢任何建议。谢谢。盎司。

1 个答案:

答案 0 :(得分:0)

在SQL Server中处理数据时,您需要查看高可用性解决方案,根据SQL Server的版本和版本,您将拥有不同的选项。

http://msdn.microsoft.com/en-us/library/ms190202(v=sql.105).aspx

如果只需要移动特定表的数据,则可以使用SSIS作业或SQL Server Replication等选项。

如果您希望将给定数据库中的所有表复制到另一个服务器,则应使用Log Shipping。这允许您将源数据库的整个内容复制到另一个位置。因为这是在较小的时间间隔内完成的,所以您的负载将在更长的时间内分配,而不是一次运行大型事务。

另一个很好的选择是SQL Server Replication。此选项将捕获源上的事务并将其推送到目标。此模型需要发布者(源),分发者(可以是源或其他数据库)和订阅者(目标)

此外,您可以创建频繁运行的SSIS作业,只移动指定数量的数据。