我在本地有一个数据库,在远程位置有一个类似的数据库类型,现在我的本地数据库每隔一分钟就插入一些50到100条记录。同时,我必须将这些记录插入到远程数据库中,该数据库驻留在具有公共IP的数据库服务器中。不会有任何LAN或WAN,这必须使用互联网完成,但该服务器可以使用publid IP访问,有可能我可以使用触发器或SQL服务器本身的一些东西吗?或者我是否应该使用.NET编写一些web服务(基本上.net应用程序将数据记录到此数据库。请帮助我解决此问题。 谢谢, 拉马
答案 0 :(得分:0)
Transactional Replication可以通过互联网部署,但建议using a VPN(或DirectAccess)。另一种方法是使用Service Broker instead of Replication。
不工作的事情是Web服务调用,触发器,.Net自定义应用程序等。在保持事务完整性(保证两个服务器上的提交或回滚)时,检测数据更改,远程数据库关闭或可访问时的应用程序可用性(想想修补),可维护性,可维护性,更不用说了处理任一站点的HR/DR解决方案,所有这些解决方案在现实生活中都失败了。
答案 1 :(得分:0)
您还可以创建一个Windows服务,它将更新远程服务器中的数据。如果您不想使用数据库的复制。
基本理念是这样的。
Windows服务将监视数据库更改以及是否有任何内容。它将使用SQLBulkyCopy类上传所有更改。
要了解有关SQLBulkCopy类的更多信息,请访问以下链接。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx
以下是SQLBulkCopy类的工作示例 - http://www.sqlteam.com/article/use-sqlbulkcopy-to-quickly-load-data-from-your-client-to-sql-server