我有2个SQL Server数据库,结构几乎相同。我必须定期将数据和数据从一个移动到另一个。发现的解决方案主要是重建数据库,我只想移动稍微修改过的数据。受影响的表需要是可配置的,并且两个数据库位于不同的计算机上。
所以:每隔一分钟左右获取一次数据,将其插入另一个非常轻的预定义更改并删除原始记录。
在这种情况下,.NET和/或SQL的最佳解决方案是什么?感谢。
答案 0 :(得分:4)
我会使用SQL Server Replication。使用内置复制将阻止任何人重新发明轮子。
答案 1 :(得分:1)
您可能需要镜像数据库。这里有一个你感兴趣的链接:http://technet.microsoft.com/en-us/library/ms189047(v=sql.105).aspx
另一个解决方案更为基础,数据库中的每个表都应该有一个Timestamp字段,然后,通过.net应用程序,您可以根据时间戳选择行并插入到另一个数据库。
答案 2 :(得分:1)
可以创建 SSIS包,以便在可重启的庄园中执行以下操作。
1 - 在服务器A上标记要复制的数据。
2 - 将数据从服务器A复制到服务器B.
3 - 删除服务器A中的标记数据。
这个解决方案的好处是数据源几乎可以符合任何ODBC标准。
我过去编写过一个Data Scoop TSQL程序,它将数据从一个数据库移动到同一服务器上的另一个数据库。它计划每5分钟运行一次。
它使用OUTPUT子句使事务成为一个单元。我也使用TOP(N)子句在while循环中完成它,这样日志文件就不会增长。
-- Delete a row and data to audit table
DELETE FROM [Person].[CountryByContinent]
OUTPUT 'DELETE RECORD', DELETED.Country, DELETED.Continent
INTO [Stage].[Audit] ([Action], [Country], [Continent])
WHERE [Country] = 'Chillis Grill & Bar';
GO
如果它在另一台服务器上,您始终可以使用链接服务器。但是,有时在LAN / WAN传输过程中,它们会很慢。
祝你好运。