Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 基于VPN的SQL Server事务复制_Sql Server_Replication - Fatal编程技术网

Sql server 基于VPN的SQL Server事务复制

Sql server 基于VPN的SQL Server事务复制,sql-server,replication,Sql Server,Replication,我在两台服务器之间通过专用VPN连接运行事务复制。数据库相当大,因此我最初使用备份和恢复方法将初始快照转移到订阅服务器计算机,然后让它从那里应用增量事务 在VPN线路出现故障(有时会出现这种情况)之前,一切都正常运行,此时复制过程很容易锁定。在订阅服务器端,有几个SQL进程似乎被挂起,并且在订阅服务器数据库和表上有锁。疯狂的是,这些进程来自复制服务。我可以(通过反复试验)向您保证,除了复制本身之外,没有其他进程锁定此数据库 那么,为什么复制过程会像这样一败涂地呢?为什么它会因为网络连接中断而挂起

我在两台服务器之间通过专用VPN连接运行事务复制。数据库相当大,因此我最初使用备份和恢复方法将初始快照转移到订阅服务器计算机,然后让它从那里应用增量事务

在VPN线路出现故障(有时会出现这种情况)之前,一切都正常运行,此时复制过程很容易锁定。在订阅服务器端,有几个SQL进程似乎被挂起,并且在订阅服务器数据库和表上有锁。疯狂的是,这些进程来自复制服务。我可以(通过反复试验)向您保证,除了复制本身之外,没有其他进程锁定此数据库


那么,为什么复制过程会像这样一败涂地呢?为什么它会因为网络连接中断而挂起?有什么建议可以让它更可靠吗?

我会问一些问题,也许他们可以给你一些想法,因为我这里也没有线索


在尝试开始复制之前,replicator是否有方法测试连接性?有没有一种方法可以将连接性测试放入您用于执行复制的任何脚本中?有没有办法让脚本在出现故障时自动退出?

我听说过类似于vpn连接的问题。有一个帖子可能会对你有所帮助


另一种选择是,如果您有持续的问题,并且取决于您对速度和功能的要求,可以使用日志传送。在我看来,这可以提供一种更具弹性的数据移动方式——至少从网络的角度来看是这样。

使用SQL Server 2005,您可以使用web服务进行复制。这可能不允许您放弃VPN,但因为web服务较少受连接驱动,这可能有助于解决问题。我自己也没有试过,所以我不知道结果会是什么


至于锁,我们担心很多东西都被锁定了,但结果是复制监视器只是锁定了它自己,所以在查看锁时,请确保没有打开它。这听起来不像是您的问题。

您使用什么防火墙来建立VPN隧道?您正在使用lastet固件吗。@John Sansom-不确定,我对网络没有真正的控制权。您正在运行什么版本的SQL Server(2000、2005、2008)?当有一个进程被锁定时,您能用等待进程的spid执行DBCC INPUTBUFFER(spid)并显示它在做什么吗?这可能有助于追踪。我用的是2005年。我将尝试DBCC INPUTBUFFER。谢谢你的建议。有关于DBCC INPUTBUFFER结果的更新吗?关于日志传送的好主意。如果问题仍然存在,我可能会考虑这个选择。