发布订阅数据库同步问题分享

Posted linybo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发布订阅数据库同步问题分享相关的知识,希望对你有一定的参考价值。

(一) 修改FTP连接

在数据同步的时候,发布服务器需要生成数据快照,保存在本地一个文件夹中。这个当然没有任何问题,但是在订阅服务器需要能够读取这个文件夹中的快照文件包。

 在同一个网段内,我们使用共享文件夹的确可以读取到这些文件,如果是公网和内网之间的同步,是公网非一个网段同步怎么办,我们这里可以使用FTP来连接下来

 

      选择本地发布右键属性:

技术图片 

   选择允许订阅服务器使用FTP下载快照文件。这里使用ftp就可以很好的解决非同一网段读取快照文件的问题。

上面FTP的相关信息可以根据自己的需要设置,并且这里一定要注意FTP根文件夹开始的路径一定要指向快照生成的位置,填写路径比如”/ftp/”. 应用确定之后会提升是否要重新生成快照文件,这里重新生成一次就好了,然后到客户机使用FTP客户端下载一次看是否可以,当然同步的时候不是使用客户端下载。

 

FTP服务端很多,在发布服务器上新建FTP站点的方式很多,Windows2003有自带的ftp服务,也可以使用Server_U,总之要能够下载快照文件就可以。

 

(二)  查看发布程序运行状况

 技术图片

如果数据很大,这里生成的快照可能会很慢的,点击监视可以查看具体运行状况
  技术图片

在这里面可以看到运行的状况,如果任何一个发布出现文件,上面都会显示警告的

 

(三)  新建订阅

技术图片         技术图片 选择发布服务器,即新建发布的那台机器

 

(四) 选择订阅内容

技术图片 

 

(五)  分发代理服务器选择

技术图片 

 这里也可以选择多个订阅服务器,上面已经解释过发布订阅的一个构造,订阅服务器就好比报刊的读者,某一个发行报刊可以有多个读者

 

(六)  分发代理安全性设置

 技术图片

 选择在windows账户下运行,用户名和密码填写发布服务器的用户名和密码

 

连接到分发服务器使用SQL Server登录名:这里填写发布服务器,也就是上面设置的那台机器的。设置好之后下一步下一步完成就可以了

 

 

 

 

(七)  单个用户问题

 技术图片

技术图片
出现这个问题,大家很多人都应该遇到过。解决办法:
use master
go
declare @SQL varchar(max)
set @SQL=‘‘
select @SQL=@SQL+;kill +RTRIM(spid)
from master..sysprocesses 
where dbid=DB_ID(DBNAME)
exec (@SQL)
go
技术图片

alter database  DBNAME  set multi_user 

 

 

(八)  无法打开明确指定的数据库

技术图片 

数据库日志中显示,服务打开明确的数据库,这里就要检查数据访问权限是否足够。
     当然还有一种情况

技术图片 

如果出现这个问题尝试关闭这个服务试试!不能确保一定是这个问题,但是这个服务也能够引起这样的问题

 

(九)  进程无法冲FTP站点下载文件

技术图片 

这个问题遇到的太多了,出现这种问题很多,下载文件过大下载中断,但是本人做这个同步的时候因为涉及到多台机器,有些机器是正常运行有些机器出现这个问题,在使用万网的机器的时候就会有这样一个问题,花费了很长时间这是万网对端口禁用的问题

 

 (十) 分布式事务

上面使用事务复制,多台机器之间建立事务关系,这应该属于分布式事务,所以在windows上必须开启相关服务!

技术图片 

这个服务需要开启。

还有MSDTC也要开启相关设置。在命令行输入dcomcnfg 命令,我的电脑à MSDTCà安全配置

技术图片 

技术图片 

以上是windows2003 上面的配置图

技术图片 

这个是win7系统配置效果图
 

 ******************转摘:https://www.cnblogs.com/qingyuan/archive/2012/08/30/2661826.html

 

以上是关于发布订阅数据库同步问题分享的主要内容,如果未能解决你的问题,请参考以下文章

发布订阅数据库同步问题分享

SqlServer 数据库同步的两种方式 (发布订阅),主从数据库之间的同步

SQL Server 事务复制分发到订阅同步慢

SqlServer2000 数据同步问题

SQL Server 2008 数据库同步的两种方式 (发布订阅)

Sqlserver复制功能问题:发布和订阅配置好后,需要同步数据的表就固定了。