社区
MS-SQL Server
帖子详情
如何实现不同数据库中两张表的完全同步?
kunp
2003-09-12 12:32:16
两个数据库放在不同的服务器上,该怎样才能实现这两个数据库中两张表的完全同步?
...全文
393
8
打赏
收藏
如何实现不同数据库中两张表的完全同步?
两个数据库放在不同的服务器上,该怎样才能实现这两个数据库中两张表的完全同步?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CrazyFor
2003-09-12
打赏
举报
回复
建立链接服务器
EXEC sp_addlinkedserver
'别名',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
GO
再用触发器:
如:
insert into b(col1,col2....)
select col1,col2,col3.... from 别名...table
handsomeduke
2003-09-12
打赏
举报
回复
用数据库复制:订阅和发布;
在一个表里建触发器;
arrow_gx
2003-09-12
打赏
举报
回复
1、用数据发布和订阅可以实现
2、在表里建触发器也可以实现,注意,在更新另一个数据库的表的时候,要先做判断是否已
经有相同的记录,否则会出现循环
sinkiangscorpio
2003-09-12
打赏
举报
回复
别的数据库可以吗?在发布服务器上在那里?
happydreamer
2003-09-12
打赏
举报
回复
利用数据库复制技术 实现数据同步更新
复制的概念
复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
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) [下一步] 完成配置
完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?
这里可以通过这种方法来快速看是否成功。
展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——
状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,
每一分钟,在0:00:00和23:59:59之间。
接下来就是判断复制
是否成功了打开C:\Program Files\Microsoft SQL Server\MSSQL
\REPLDATA\unc\XIAOWANGZI_database_database
下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。
要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表
galaxypilot
2003-09-12
打赏
举报
回复
写个触发器,麻烦点。
sinkiangscorpio
2003-09-12
打赏
举报
回复
EXEC sp_addlinkedserver
'别名',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
什么东西?
kunp
2003-09-12
打赏
举报
回复
数据发布和订阅?请问具体是如何实现的,谢谢。
不同
数据库
表
结构的转化
通过学习PowerDesigner工具,学习概念模型,物理模型,面向对象模型,业务模型,以及
不同
数据库
表
结构的转化。
mysql
数据库
管理
两张
表
,MySQL
实现
两张
表
数据的
同步
方法总结
在线QQ客服:1922638专业的SQL Server、MySQL
数据库
同步
软件有
两张
表
A和B,要求往A里面插入一条记录的同时要向B里面也插入一条记录,向B里面插入一条记录的同时也向A插入一条记录。
两张
表
的结构
不同
,需要将其
中
几个字段对应起来。可以用下面的触发器
实现
。
表
A的触发器:beginset @disable=1;if @disable=1 and NOT EXISTS(SELECT 1 F...
数据库
两张
表
之间数据进行
同步
如何
实现
数据库
中
两
表
中
数据
同步
不同
数据库
表
之间的数据
同步
不同
数据库
表
之间的数据
同步
场景还原: 现在需要对正式环境做升级,需要从实施环境往正式环境导入部分数据,现在需要比对两个
数据库
之间某个
表
的数据差异,并将正式环境缺少的部分,从实施环境
同步
到正式环境。现在就需要这部分数据。 但是,如果有差异的数据是有顺序的,比如按照时间顺序、按照主键自增等,找到有差异的部分会很容易。但是两个都不满足呢? 在生产环境上把
表
备份一下,直接truncate ,将实施环境的...
触发器-
数据库
中
两张
表
之间的数据
同步
实现
思路(增加、删除、更新)
分别创建增加、删除、更新的触发器(Trigger)来达到
两张
表
之间数据
同步
的目的。 1:数据
同步
增加: 如有
两张
表
——A
表
和B
表
,创建触发器使当A
表
插入数据后B
表
也
同步
插入数据。其
中
B
表
插入数据的字段需要同A
表
中
的字段相对应。 CREATE TRIGGER 触发器名称 ON A
表
AFTER INSERT AS BEGIN INSERT INTO B
表
(B
表
字段1,B
表
字段2,B
表
字段3
MS-SQL Server
34,587
社区成员
254,588
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章