发布、订阅数据库同步问题分享(三)

(一) 修改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

原文地址:https://www.cnblogs.com/linybo/p/12028890.html

时间: 2024-10-12 19:33:50

发布、订阅数据库同步问题分享(三)的相关文章

发布、订阅数据库同步问题分享(一)

合并发布(复制)通常也是从发布数据库对象和数据的报表快照开始.并用触发器跟踪在发布服务器和订阅服务器中所做的后续数据更改和架构修改.订阅服务器与发布服务器在连接到网络时进行同步,并交换自上次同步以来发布服务器和订阅服务器间发生变化的所有行.允许站点对已经复制的数据进行匿名更改,并且在晚些时候合并更改和更加需要解决冲突.(数据合并可能导致主键冲突) 适用的情况: (1) 多个定语服务器可能会在不同的时间更新同一数据,这些更改将传播到发布服务器和其他订阅服务器. (2) 订阅服务器需要接手数据,脱机

发布、订阅数据库同步问题分享(二)

上面的设置自己看着办数据库表中如果有些表字段没有指定发布,则在筛选的时候是不允许的可以使用发布数据库机器作为分发服务器,一般情况我们也是这么做的,当然我们也可以使用其他的机器作为分发服务器,这里就需要自己配置分发服务器这里配置了机器名的映射,可以参考一下 (一) SQLServer服务启动 使用数据库同步至少启动两个服务 如上图所示,需要启动数据库实例服务器以及代理服务,这里要注意一下登录验证方式. (二) SQL Agent代理服务登录模式 SQL Agent 使用本地账号登录模式,如果服务为

Sql2008 复制 发布 订阅 (数据同步)

数据库同步问题 1.有一台主数据库服务器A和另外一台数据库服务器B,客户端首先访问数据库B,当B数据库服务器挂掉时就访问A,当对数据库B进行DML操作时,同时对A进行更新,如果A与B之间通讯失败,则将更新后数据存入临时表,当恢复通讯时,自动更新,并将临时数据删除,同样当B不通时,将数据临时存在A中,B恢复连接时,A对B进行更新,怎么实现? 数据库同步更新步骤:主要是采用MSSQL数据库的复制功能(本地发布和本地订阅来完成主数据库服务器和数据库服务器同步的) 条件:1.两台PC机,环境:Win7操

SQL Server 2008复制发布订阅(数据同步)

数据库同步问题 1.有一台主数据库服务器A和另外一台数据库服务器B,客户端首先访问数据库B,当B数据库服务器挂掉时就访问A,当对数据库B进行DML操作时,同时对A进行更新,如果A与B之间通讯失败,则将更新后数据存入临时表,当恢复通讯时,自动更新,并将临时数据删除,同样当B不通时,将数据临时存在A中,B恢复连接时,A对B进行更新,怎么实现? 数据库同步更新步骤:主要是采用MSSQL数据库的复制功能(本地发布和本地订阅来完成主数据库服务器和数据库服务器同步的) 条件:1.两台PC机,环境:Win7操

JS的发布订阅模式

JS的发布订阅模式 这里要说明一下什么是发布-订阅模式 发布-订阅模式里面包含了三个模块,发布者,订阅者和处理中心.这里处理中心相当于报刊办事大厅.发布者相当与某个杂志负责人,他来中心这注册一个的杂志,而订阅者相当于用户,我在中心订阅了这分杂志.每当发布者发布了一期杂志,办事大厅就会通知订阅者来拿新杂志.这样在结合下面的图应该很好理解了. 其实就是将发布者和订阅者解耦了,在实际开发中,经常会遇到某个方法内处理很多的逻辑,最简单的就是直接在方法内直接写.这种是高度耦合的面向过程的写法.对于代码维护

MySQL数据库同步小工具(Java实现)

近期公司做个报表系统,为了报表系统中复杂的查询条件,不影响线上业务系统的使用,研究了一下MySQL数据库同步,下面用Java代码实现MySQL数据库同步,以便自己查阅! ? 数据库同步实现功能点: 1.支持跨服务器跨库的多线程同步 2.每张表的同步有日志记录 3.每次同步记录数可配置 源码和具体的使用细则,可以到下载源码及使用说明?. ? 一.数据同步核心代码 ? ? ? 二.数据库同步多线程实现 ? ? ? ? 三.配置文件及读取配置文件代码 配置文件内容为: 读取配置文件的Java类为: ?

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

最近在琢磨主从数据库之间的同步,公司正好也需要,在园子里找了一下,看到这篇博文比较详细,比较简单,本人亲自按步骤来过,现在分享给大家. 在这里要提醒大家的是(为了更好的理解,以下是本人自己理解,如有错误,请指出):主数据库一般是把数据发布出去,然后在连接从数据库对发布的数据进行订阅,同步到从数据库中. 1.发布.发布需要用实际的服务器名称,不能使用服务器的IP地址进行.能发布的信息包括[表].[存储过程].[用户函数]如果使用IP会有错误,如下图: 具体发布过程如下: 1.找到数据库服务器下的[

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

上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作.发布订阅份为两个步骤:1.发布.2.订阅.首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅.发布可以发布一张表的部分数据,也可以对整张表进行发布.下面分别介绍发布.订阅的过程. 一.发布.发布需要用实际的服务器名称,不能使用服务器的IP地址进行.能发布的信息包括[表].[存储过程].[用户函数]如果使用IP会有错误,如下图: 具体发

SqlServer2012 数据库的同步之发布+订阅

文章参考了百度过的文章,因为版本不同,操作中也遇到了很多问题,现在整理一下,希望对各位朋友有所帮助. 发布订阅份为两个步骤:1.发布.2订阅.首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅. 发布需要用实际的服务器名称,不能使用服务器的IP地址进行.能发布的信息包括[表].[存储过程].[用户函数] 一.发布 1.找到数据库服务器下的[复制]--[本地发布],选择[新建发布].如下图: 2.选择[下一步] (如下图) 3.选择[下一步] 4.默认选