数据复制问题

juhwali 2003-06-27 09:51:29
sql server 能否实现这样的功能:总校有一台服务器,分校也有一台。分校平时和总校不连网,需要时拨号上网。在断网的情况下,总校的数据库可能会更改数据库中的记录,分校的数据库会添加和更改数据库。现在要求一旦分校拨号联网后,两边的数据库能够同步复制,实现数据库数据的统一。如何实现?
...全文
66 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shxhark 2003-06-27
  • 打赏
  • 举报
回复
你这个问题涉及一个“消息中间件”方案。
消息中间件便可以处理你这样的问题:
如:
1、择取线路、自动拨号
2、支持断点续传(但不是FTP)
3、支持数据压缩和加密措施
4、、、、
总之可以非常方便地、自动地完成你的定制任务。

这样的产品如IBM公司的MQ——不过太贵了。国内的有一个数据蚂蚁产品(北京一家公司的)也非常不错。在以前的一个方案中采用过。只需要定义任务,你便可以不用管了。
如果需要这方面的资料,可以与我联系:shxhark@263.net


juhwali 2003-06-27
  • 打赏
  • 举报
回复
上面的回答都太笼筒,实际上肯定需要用订阅和复制了,但这里两台服务器数据都有可能改变,而且要求同步时两个数据库的数据改变都要影响到对方,希望有实际经验和确已实现了此功能的高手讲一讲详细方案。
happydreamer 2003-06-27
  • 打赏
  • 举报
回复

复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
SQL复制的基本元素包括
出版服务器、订阅服务器、分发服务器、出版物、文章
SQL复制的工作原理
SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器
SQL SERVER复制技术类型
SQL SERVER提供了三种复制技术,分别是:
1、快照复制(呆会我们就使用这个)
2、事务复制
3、合并复制
只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。接下来我们就一步一步来实现复制的步骤。


一 配置发布服务器

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

(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) [下一步] 完成配置
wedding123 2003-06-27
  • 打赏
  • 举报
回复
用发布,订阅即可
wgy2008 2003-06-27
  • 打赏
  • 举报
回复
用订阅复制
http://www.chinaitlab.com/www/special/sql04.asp
nboys 2003-06-27
  • 打赏
  • 举报
回复
配置发布,订阅服务器和分发....
happydreamer 2003-06-27
  • 打赏
  • 举报
回复
复制对添加修改数据有效,改了表结构就不行

可以用合并复制,联通后执行
wynbfqny 2003-06-27
  • 打赏
  • 举报
回复
up
shenanigan 2003-06-27
  • 打赏
  • 举报
回复
ftp下载?好像不是。。。
两边都改动。。。不会
up的说
scottwhb 2003-06-27
  • 打赏
  • 举报
回复
要是中间有触发器这类的,更麻烦了。
jeck_zhou 2003-06-27
  • 打赏
  • 举报
回复
up

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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