2010-01-05 71 views
0

我需要通过DSL线路(大约16k/s)远程连接到SQL Express 2005实例,速度要快得多。在软件级别的SQL Server复制?

我想我可以通过在客户端的本地计算机上创建一个SQL Express 2005实例并使其成为服务器上数据的缓存版本来实现。

我打算只允许更改远程服务器,然后要求用户偶尔从它下拉更新。这并不理想,但它会起作用。

因此,没有SQL Express的支持我在网络上类似查询:

INSERT INTO local.dbo.users (id, username, email, timestamp_modified) 
    SELECT remote.dbo.users(id, username, email, timestamp_modified) 
     WHERE remote.dbo.users.timestamp_modified > LAST MODIFIED 

回答

1

为什么写的东西已经建成并提供给您与您已安装的产品?

你应该看看你的DSL线上的日志传送。这是一款非常可靠的SQL Server产品,并且已经进行了广泛的测试。

http://msdn.microsoft.com/en-us/library/ms187103.aspx

虽然Express版本没有SQL Server代理,也有变通方法,您可以使用:

http://blog.willbeattie.net/2009/07/log-shipping-in-sql-server-express-2008.html

+0

需求日志传送似乎不可能。 – 2010-01-05 18:56:44

2

对于一个你可以使用真正的复制。您还应该查看Service Broker。两者都允许您将数据从远程推送到SQL Express实例。 Service Broker的性能和扩展性更好,经过慢速DSL连接的验证,但其学习曲线陡峭。 Replicaiton很容易设置,但你必须忍受它的限制。

使用像你计划的链接服务器不会工作。不可靠,速度慢,并且通过链接服务器进行更新需要您设置分布式事务。

+0

当其中一个副本关闭大部分时间(这是一台笔记本电脑)时,复制如何工作?是否可以在按下按钮时按需复制? – 2010-01-05 18:57:41

+1

对于Ocasinally Connected Systems而言,它们都不能很好地工作,尤其是经常更改IP /名称的笔记本电脑(笔记本电脑在网络上具有不同的IP和完全限定名称,取决于它们从哪里连接)。一种选择是通过VPN使用Snapshot复制(相当麻烦,并且您需要一种在笔记本电脑连接时启动复制代理的方式)。另一种选择是同步框架:http://msdn.microsoft.com/en-us/sync/bb887608.aspx这是专为笔记本电脑和移动设备设计的。 – 2010-01-05 19:02:21