复制问题,大家看看,能解决,我可以在分,倾囊向赠都可以,再开一贴,便于给分,谢谢

renmao 2003-10-30 02:36:40
近来有个连锁店的项目,原来有个基于winsock的导入导出方案,不过时不时还有数据不准确的地方。不知道改用sql server2000的复制,是否可行。
具体情况是:
分店和总店都用数据修改的需要,而且要汇总导总店,总店处理过后,要修改分店的相应的数据;总店和分店的连接网络连接,不是时时连接,初步想想,想用合并复制。由于小弟对复制还不是很熟悉(简单的本地网的复制,我是可以实现的。)所以有点疑问在里面如下:
疑问:
1。这样的情况可以用复制解决吗?
2。怎样实现网络上的数据复制? 对应的,我还需要了解些什么方面的知识!
3。还有,我初步看了解到,就是用合并复制,还会有可能碰到数据冲突的可能,有没有什么可行性的办法,让我尽量避免它,或者,怎样解决这些冲突。
希望回贴的兄弟姐妹,能详细一点,哈哈,谢谢了
...全文
81 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hgm13579 2003-11-04
  • 打赏
  • 举报
回复
to dvwoo(dvwoo) :
我真的不时碰到同步失败的情况,至于原因,我也没有弄明白,但可以肯定不是你列举的可能原因,即使是这样,失败后,用初始化订阅的方法来处理问题???这样的话,订阅方存在而发布方不存在的数据就没有了,这不是很难受吗?这样的话,不是非要用手工的方法找出两者的差异吗?还是我了解不够,你有另外的好办法???如果有,能否指教???
谢谢
renmao 2003-11-04
  • 打赏
  • 举报
回复
谢谢大家的参与,我准备结贴了
我近来,我在下面了解了一下关于vpn的连接方式,速度测试还好,不过它好像它依赖于网络了,可能要要考虑到拖网的那部分考虑!复制技术,我会在深入的了解,我想关键是怎样解决冲突,哈哈,谢谢大家的帮助!结贴了
dvwoo 2003-11-03
  • 打赏
  • 举报
回复
同步出错一般都可以查到的,
比如插入重复记录啊,不允许插入空值等等,这些都是由于数据规划有错误导致的,根据不同的错误对订阅的表或者发布的表进行相应的修改就可保证不出错。只要精心规划同步还是比较稳定的。
也可初始化订阅来解决复制与订阅方之间不一致,比如事务复制的过程中往往会用到。
hgm13579 2003-10-31
  • 打赏
  • 举报
回复
复制不稳定,有时候会同步出错,建议审慎考虑.我已经被同步搞得头大......
我的问题好象本论坛没有理想答案,也就是说,同步出错的问题可能没有解决方案,出错了,就只能手工恢复,哎...............
zezejun 2003-10-31
  • 打赏
  • 举报
回复
dvwoo 2003-10-30
  • 打赏
  • 举报
回复
我刚研究实践完,复制技术并不难,关键在于数据的规划,对于快照,事务,合并三种复制各有优点也各有缺点,我主要采用事务复制,少量的合并复制,合并复制对于数据的同步支持最强,允许双向更改数据,也可实现数据的同步修改更新。但数据的安全非常重要,在合并复制中如果一方删除了数据则共享的数据就都会消失了。对于事务复制,速度快,但是对于数据的一致性要求很高,对于主键的设置以及主键区域划分解决冲突也需要动一番脑筋。建议你看看清华大学出版社的《复制与自然语言查询》,里面讲的很清楚,只要多实践,就会掌握这个技术的。真正重要的是数据结构的规划,这样才能让复制实现最强的功能。
renmao 2003-10-30
  • 打赏
  • 举报
回复
pengdali(大力 V3.0)
能否留下一个联系方式,有空联系你,请教一下
我的联系方式:
e_mail: laomaorzm@hotmail.com
msn:laomaorzm@hotmail.com
qq:59453837
renmao 2003-10-30
  • 打赏
  • 举报
回复
txlicenhe(马可) 老兄,你的回贴的内容,好像是有实例图,能否发一份,给老弟,谢过了,哈哈,联系方式如上
pengdali 2003-10-30
  • 打赏
  • 举报
回复
对于销售发货单,就需要每个分店的发货单编号有各自的编码规则,从而避免上传到总店时产生编码冲突.我们应该已经避免了


re: 你在服务器上用代码把各分店的编码规则统一,再汇总
lvltt 2003-10-30
  • 打赏
  • 举报
回复
转贴:
利用数据库复制技术 实现数据同步更新
复制的概念
复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
SQL复制的基本元素包括
出版服务器、订阅服务器、分发服务器、出版物、文章
SQL复制的工作原理
SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器
SQL SERVER复制技术类型
SQL SERVER提供了三种复制技术,分别是:
1、快照复制(呆会我们就使用这个)
2、事务复制
3、合并复制
只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。接下来我们就一步一步来实现复制的步骤。
第一先来配置出版服务器
(1)选中指定[服务器]节点
(2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令
(3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。
(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)
第二创建出版物
(1)选中指定的服务器
(2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框
(3)选择要创建出版物的数据库,然后单击[创建发布]
(4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)
(5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器
(6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表
(7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
第三设计订阅
(1)选中指定的订阅服务器
(2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]
(3)按照单击[下一步]操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。
(4)单击[完成]。完成订阅操作。
完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制--发布内容--右键发布内容--属性--击活--状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。接下来就是判断复制是否成功了打开C:\ProgramFiles\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表

renmao 2003-10-30
  • 打赏
  • 举报
回复
哈哈,关键是着急,哈哈
txlicenhe(马可) ,能否留下一个联系方式,有空联系你,请教一下
我的联系方式:
e_mail: laomaorzm@hotmail.com
msn:laomaorzm@hotmail.com
qq:59453837
pengdali 2003-10-30
  • 打赏
  • 举报
回复
1、先保证ping通

2、在dos下写入telnet ip 1433不会报错

3、用ip连如企业管理器:
企业管理器-->右键SQlserver组-->新建sqlserver注册-->下一步-->写入远程实例名(IP,机器名)-->下一步-->选Sqlserver登陆-->下一步-->写入登陆名与密码(sa,pass)-->下一步-->下一步-->完成

4、如果还不行:
sqlserver服务器-->开始菜单-->SQLserver-->服务器网络实用工具-->启用 WinSock代理-->代理地址:(sqlserver服务器IP)-->代理端口-->1433-->OK了

5、如果还不行:
sqlserver客户端-->开始菜单-->SQLserver-->客户端网络实用工具-->别名-->添加-->写入别名如"大力"-->"网络库"选tcp/ip-->服务器名称写入远程ip或实例名-->OK了
pengdali 2003-10-30
  • 打赏
  • 举报
回复
一 配置发布服务器

在发布服务器上执行以下步骤:

(1) 从[工具]下拉菜单的[复制]子菜单中选择[配置发布、订阅服务器和分发]出现配置发布和分发向导
(2) [下一步] 选择分发服务器 可以选择把发布服务器自己作为分发服务器或者其他sql的服务器
(3) [下一步] 设置快照文件夹
一般采用默认\\servername\d$\Program Files\Microsoft SQL Server\MSSQL\ReplData
**(4) [下一步] 自定义配置
可以选择:
是,让我设置分发数据库属性启用发布服务器或设置发布设置
否,使用下列默认设置

建议采用自定义设置
(5) [下一步] 设置分发数据库名称和位置 采用默认值
(6) [下一步] 启用发布服务器 选择作为发布的服务器
(7) [下一步] 选择需要发布的数据库和发布类型
(8) [下一步] 选择注册订阅服务器
(9) [下一步] 完成配置


二 创建出版物

发布服务器上
(1)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令
(2)选择要创建出版物的数据库,然后单击[创建发布]
(3)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。
对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)

(4)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,
SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。
但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器

(5)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表

注意: 如果前面选择了事务发布 则再这一步中只能选择带有主键的表


(6)选择发布名称和描述

**(7)自定义发布属性

向导提供的选择:
是 我将自定义数据筛选,启用匿名订阅和或其他自定义属性
否 根据指定方式创建发布

建议采用自定义的方式

(8)[下一步] 选择筛选发布的方式
(9)[下一步] 可以选择是否允许匿名订阅

1)如果选择署名订阅,则需要在发布服务器上添加订阅服务器
方法: [工具]->[复制]->[配置发布、订阅服务器和分发的属性]->[订阅服务器] 中添加

否则在订阅服务器上请求订阅时会出现的提示:改发布不允许匿名订阅
如果仍然需要匿名订阅则用以下解决办法
[企业管理器]->[复制]->[发布内容]->[属性]->[订阅选项] 选择允许匿名请求订阅

2)如果选择匿名订阅,则配置订阅服务器时不会出现以上提示


(10)[下一步] 设置快照 代理程序调度
(11)[下一步] 完成配置


当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。


三 订阅服务器的配置


(一) 强制订阅的配置
在发布服务器上
[企业管理器]->[复制]->[发布内容]->[属性]->[订阅]->[强制新建]
然后出现强制订阅向导
选择订阅服务器->订阅数据库名->设置分发代理程序调度->初始化订阅->启动要求的服务
(发布服务器的agent要启动)->完成即可

(二) 请求订阅的配置

订阅服务器上执行以下操作

(1) 从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]
(2) 选择[请求新订阅] 打开请求订阅向导
(3) [下一步]选择已注册的发布
(4) [下一步]选择创建订阅的数据库
(5) [下一步]选择匿名订阅或署名订阅
(6) [下一步] 初始化订阅 选择初始化架构和数据
(7) [下一步]选择快照文件的存放位置 一般采用发布服务器的默认快照文件夹
**(8) [下一步]设置分发代理程序调度 可以选择订阅更新内容的间隔
(9) [下一步]系统会提示检查发布服务器的代理服务的运行状态
(10) [下一步] 完成配置
aierong 2003-10-30
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1815/1815386.xml?temp=.2816584
txlicenhe 2003-10-30
  • 打赏
  • 举报
回复
1:有些东西可能一下子是讲不清的,先试试吧。
2:楼主真是大款。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧