1、发布和订阅方均是SQLSERVER2000
2、有多个发布方(计算机),订阅方一个。其中订阅方从多个发布方订阅数据(单向)。假设就只有一个表需要发布/订阅数据,且发布方、订阅方表名相同。即多表融合成一表。
问题:
1、用何种发布方式为佳?
2、当发布方和订阅方很长时间联系不上时,重新同步时,而此时发布方数据发生变化时,发布与订阅能否保持数据一致?
9 个解决方案
#1
关注!
#2
如果能保持一致,请问该如何设置?
#3
3、如果能保持一致,请问该如何设置?
#4
1。如果你只是单向的,建议用快照,最不浪费的,但没有冲突解决功能,事务也可以,但我个人觉得快照更简单。你可以自己规定每台发布在某一时间进行,只要不同时对一个表进行修改,一般不会有冲突的。但如果你不规定时间就会有冲突发生,就只能用合并复制,他自带冲突解决方案的(也可自己定制),但配置起来很容易出错。
2。这个问题,你是单方向的阿,如果你用快照复制就不会有这个问题,因为它是将整个数据全部copy过去的,所以肯定以你最后以后发布服务器的数据为主。如果是事务复制,也可能一致,因为一般你的分发服务器是在发布服务器上的。合并复制也是以最后一次的数据为准的,所以你不用配置什么就可以了。
不知你满不满意?
2。这个问题,你是单方向的阿,如果你用快照复制就不会有这个问题,因为它是将整个数据全部copy过去的,所以肯定以你最后以后发布服务器的数据为主。如果是事务复制,也可能一致,因为一般你的分发服务器是在发布服务器上的。合并复制也是以最后一次的数据为准的,所以你不用配置什么就可以了。
不知你满不满意?
#5
up
#6
hebin79(滨滨) :
由于有多个发布服务器该如何解决冲突?
你说是Copy过去。假如有记录如下(其中字段1和字段2为联合关键字,且第一个字段可看作是每个发布服务器的标志):
发布服务器1:
DP 1 1
DP 1 2
DP 2 1
DP 2 2
...
发布服务器2:
XD 1 1
XD 1 2
XD 2 1
XD 2 2
...
订阅服务器数据如下:
DP 1 1
DP 1 2
DP 2 1
DP 2 2
...
XD 1 1
XD 1 2
XD 2 1
XD 2 2
...
当发布服务器与订阅服务器很久联系不上。而此时发布服务器1的数据发生变化,比如:
DP 1 3
DP 1 4
DP 2 1
DP 2 2
...
此时是否发生冲突?若发生,又该如何解决?
(因为尽管发布订阅有日志,但是若长时间联系不上,日志是否还有用?若有用,那当然最好。若没用,此时订阅方需要初始化,此时就存在问题。按理,它肯定不能删除表重建,那他只能删除DP开头的。但是他怎么知道他发布的就是DP的呢?见笑,我不是很熟悉SqlServer.)望各位数据库专家帮忙!
由于有多个发布服务器该如何解决冲突?
你说是Copy过去。假如有记录如下(其中字段1和字段2为联合关键字,且第一个字段可看作是每个发布服务器的标志):
发布服务器1:
DP 1 1
DP 1 2
DP 2 1
DP 2 2
...
发布服务器2:
XD 1 1
XD 1 2
XD 2 1
XD 2 2
...
订阅服务器数据如下:
DP 1 1
DP 1 2
DP 2 1
DP 2 2
...
XD 1 1
XD 1 2
XD 2 1
XD 2 2
...
当发布服务器与订阅服务器很久联系不上。而此时发布服务器1的数据发生变化,比如:
DP 1 3
DP 1 4
DP 2 1
DP 2 2
...
此时是否发生冲突?若发生,又该如何解决?
(因为尽管发布订阅有日志,但是若长时间联系不上,日志是否还有用?若有用,那当然最好。若没用,此时订阅方需要初始化,此时就存在问题。按理,它肯定不能删除表重建,那他只能删除DP开头的。但是他怎么知道他发布的就是DP的呢?见笑,我不是很熟悉SqlServer.)望各位数据库专家帮忙!
#7
GOOD,GOOD,STUDY
DAY,DAY,UP!
DAY,DAY,UP!
#8
冲突是指的同时有多个发布方对订阅方同时进行的修改吧,我说的copy只是指的快照复制,如果是快照复制就没有解决冲突的功能,所以就要人工避免冲突,就是不要出现两个发布服务器同时对订阅器进行修改。
你首先要说清你是用的什么复制方式,如果是日志型的,要看运行日志代理程序是在哪个服务器上(一般在发布服务器上),那么首先会将改变的数据日志访在代理程序所在服务器上的,然后还要看你是用的强制订阅还是请求订阅了,所以来说只要你配置得当就能解决。
你首先要说清你是用的什么复制方式,如果是日志型的,要看运行日志代理程序是在哪个服务器上(一般在发布服务器上),那么首先会将改变的数据日志访在代理程序所在服务器上的,然后还要看你是用的强制订阅还是请求订阅了,所以来说只要你配置得当就能解决。
#9
学习
#1
关注!
#2
如果能保持一致,请问该如何设置?
#3
3、如果能保持一致,请问该如何设置?
#4
1。如果你只是单向的,建议用快照,最不浪费的,但没有冲突解决功能,事务也可以,但我个人觉得快照更简单。你可以自己规定每台发布在某一时间进行,只要不同时对一个表进行修改,一般不会有冲突的。但如果你不规定时间就会有冲突发生,就只能用合并复制,他自带冲突解决方案的(也可自己定制),但配置起来很容易出错。
2。这个问题,你是单方向的阿,如果你用快照复制就不会有这个问题,因为它是将整个数据全部copy过去的,所以肯定以你最后以后发布服务器的数据为主。如果是事务复制,也可能一致,因为一般你的分发服务器是在发布服务器上的。合并复制也是以最后一次的数据为准的,所以你不用配置什么就可以了。
不知你满不满意?
2。这个问题,你是单方向的阿,如果你用快照复制就不会有这个问题,因为它是将整个数据全部copy过去的,所以肯定以你最后以后发布服务器的数据为主。如果是事务复制,也可能一致,因为一般你的分发服务器是在发布服务器上的。合并复制也是以最后一次的数据为准的,所以你不用配置什么就可以了。
不知你满不满意?
#5
up
#6
hebin79(滨滨) :
由于有多个发布服务器该如何解决冲突?
你说是Copy过去。假如有记录如下(其中字段1和字段2为联合关键字,且第一个字段可看作是每个发布服务器的标志):
发布服务器1:
DP 1 1
DP 1 2
DP 2 1
DP 2 2
...
发布服务器2:
XD 1 1
XD 1 2
XD 2 1
XD 2 2
...
订阅服务器数据如下:
DP 1 1
DP 1 2
DP 2 1
DP 2 2
...
XD 1 1
XD 1 2
XD 2 1
XD 2 2
...
当发布服务器与订阅服务器很久联系不上。而此时发布服务器1的数据发生变化,比如:
DP 1 3
DP 1 4
DP 2 1
DP 2 2
...
此时是否发生冲突?若发生,又该如何解决?
(因为尽管发布订阅有日志,但是若长时间联系不上,日志是否还有用?若有用,那当然最好。若没用,此时订阅方需要初始化,此时就存在问题。按理,它肯定不能删除表重建,那他只能删除DP开头的。但是他怎么知道他发布的就是DP的呢?见笑,我不是很熟悉SqlServer.)望各位数据库专家帮忙!
由于有多个发布服务器该如何解决冲突?
你说是Copy过去。假如有记录如下(其中字段1和字段2为联合关键字,且第一个字段可看作是每个发布服务器的标志):
发布服务器1:
DP 1 1
DP 1 2
DP 2 1
DP 2 2
...
发布服务器2:
XD 1 1
XD 1 2
XD 2 1
XD 2 2
...
订阅服务器数据如下:
DP 1 1
DP 1 2
DP 2 1
DP 2 2
...
XD 1 1
XD 1 2
XD 2 1
XD 2 2
...
当发布服务器与订阅服务器很久联系不上。而此时发布服务器1的数据发生变化,比如:
DP 1 3
DP 1 4
DP 2 1
DP 2 2
...
此时是否发生冲突?若发生,又该如何解决?
(因为尽管发布订阅有日志,但是若长时间联系不上,日志是否还有用?若有用,那当然最好。若没用,此时订阅方需要初始化,此时就存在问题。按理,它肯定不能删除表重建,那他只能删除DP开头的。但是他怎么知道他发布的就是DP的呢?见笑,我不是很熟悉SqlServer.)望各位数据库专家帮忙!
#7
GOOD,GOOD,STUDY
DAY,DAY,UP!
DAY,DAY,UP!
#8
冲突是指的同时有多个发布方对订阅方同时进行的修改吧,我说的copy只是指的快照复制,如果是快照复制就没有解决冲突的功能,所以就要人工避免冲突,就是不要出现两个发布服务器同时对订阅器进行修改。
你首先要说清你是用的什么复制方式,如果是日志型的,要看运行日志代理程序是在哪个服务器上(一般在发布服务器上),那么首先会将改变的数据日志访在代理程序所在服务器上的,然后还要看你是用的强制订阅还是请求订阅了,所以来说只要你配置得当就能解决。
你首先要说清你是用的什么复制方式,如果是日志型的,要看运行日志代理程序是在哪个服务器上(一般在发布服务器上),那么首先会将改变的数据日志访在代理程序所在服务器上的,然后还要看你是用的强制订阅还是请求订阅了,所以来说只要你配置得当就能解决。
#9
学习