利用数据库复制技术 实现数据同步更新

来源:互联网 发布:python编程环境 编辑:程序博客网 时间:2024/05/18 01:55

*********   利用数据库复制技术   实现数据同步更新   *********  
   
 复制的概念  
   
 Microsoft SQL Server 2000 的复制是在数据库之间对数据和数据库对象进行复制和分发并
 进行同步以确保其一致性的一组技术。  
   
 使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet分  
 发给远程或移动用户。复制还能够使用户提高应用程序性能,根据数据的使用方式物理  
 分隔数据(例如,将联机事务处理   (OLTP)   和决策支持系统分开),或者跨越多个服务  
 器分布数据库处理。  
   
   
 ---------------------------------------------------------------------------  
 SQL复制的基本元素包括  
   
 发布服务器、订阅服务器、分发服务器、发布、项目  
   
 发布服务器  
 发布服务器是提供数据以便复制到其它服务器的服务器。发布服务器可以具有一个或多个  
 发布,每个发布代表一组逻辑相关的数据。除了指定其中哪些数据需要复制之外,发布服  
 务器还检测事务复制期间发生更改的数据并维护有关此站点上所有发布的信息。    
   
 分发服务器  
 分发服务器是作为分发数据库宿主并存储历史数据和/或事务以及元数据的服务器。分发  
 服务器的角色根据执行的复制类型而不同。有关更多信息,请参见复制类型。  
 远程分发服务器是独立于发布服务器并配置为复制的分发服务器的服务器。本地分发服务  
 器是既配置为复制的发布服务器又配置为复制的分发服务器的服务器。  
   
 订阅服务器  
 订阅服务器是接收复制数据的服务器。订阅服务器订阅的是发布而不是发布中分离的项目;  
 并且订阅服务器只订阅其需要的发布,而不是发布服务器上所有可用的发布。根据复制的类  
 型和所选择的复制选项,订阅服务器还可以将数据更改传播回发布服务器或将数据重新发布  
 到其它订阅服务器。  
   
 发布  
 发布是一个数据库中的一个或多个项目的集合。这种多个项目的分组使得指定逻辑相关的一  
 组数据和数据库对象以一起复制变得更容易。  
   
 项目  
 项目是指定要复制的数据表、数据分区或数据库对象。项目可以是完整的表、某几列(使用垂  
 直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图  
 或用户定义函数。  
   
 订阅  
 订阅是对数据或数据库对象的复本的请求。订阅定义将接收的发布和接收的时间、地点。订阅的  
 同步或数据分发可以由发布服务器(强制订阅)或订阅服务器(请求订阅)请求。发布可以支持  
 强制订阅和请求订阅的混合。  
   
   
 ---------------------------------------------------------------------------  
 SQL复制的工作原理  
 SQL   SERVER   主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务  
 器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器  
 分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些  
 改变分发给订阅服务器  
SQL   SERVER复制技术类型,三种复制技术,分别是(详细的说明参考SQL联机帮助):  
 1、快照复制  
 2、事务复制  
 3、合并复制  
 Top

zjcxc(邹建)回复于 2004-06-15 07:42:45 得分 0
下介绍实现复制的步骤。(以快照复制为例)  
   
   
 准备工作:  
   
 1.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:  
   
 我的电脑--D:/   新建一个目录,名为:   PUB  
 --右键这个新建的目录  
 --属性--共享  
 --选择"共享该文件夹"(另外还可以通过"权限"按纽来设置具体的用户权限  
 --确定  
   
   
 2.设置SQL代理(SQLSERVERAGENT)服务的启动用户  
   
 开始--程序--管理工具--服务  
 --右键SQLSERVERAGENT  
 --属性--登陆--选择"此账户"  
 --输入"./Administrator",或者选择其他系统管理员  
 --"密码"中输入该用户的密码  
   
 3.设置SQL   Server身份验证模式,解决连接时的权限问题  
   
 企业管理器  
 --右键SQL实例--属性  
 --安全性--身份验证  
 --选择"SQL   Server   和   Windows"  
 --确定  
   
 4.在发布服务器和订阅服务器上互相注册  
 企业管理器  
 --右键SQL   Server组  
 --新建SQL   Server注册...  
 --下一步--可用的服务器中,输入你要注册的远程服务器名 --添加  
 --下一步--连接使用,选择第二个"SQL   Server身份验证"  
 --下一步--输入用户名和密码  
 --下一步--选择SQL   Server组,也可以创建一个新组  
 --下一步--完成  
   
 ---------------------------------------------------------------------------    
 正式开始:  
   
 1.配置发布服务器  
   
 a.   选中指定   [服务器]   节点  
 b.   从   [工具]   下拉菜单的   [复制]   子菜单中选择   [发布、订阅服务器和分发]   命令  
 c.   系统弹出一个对话框点   [下一步]   然后看着提示操作  
 --直到"指定快照文件夹"  
 --在"快照文件夹"中输入准备工作中创建的目录:   //<服务器名>/pub  
 一[下一步]   直操作到完成。  
 d.   当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器  
 同时也生成一个分发数据库(distribution)  
   
   
 ---------------------------------------------------------------------------  
   
 2.创建发布  
 a.   选中指定的服务器  
 b.   从   [工具]   菜单的   [复制]   子菜单中选择   [创建和管理发布]   命令。此时系统会弹出  
 一个对话框  
 c.   选择要创建发布的数据库,然后单击   [创建发布]  
 d.   在   [创建发布向导]   的提示对话框中单击   [下一步]   系统就会弹出一个对话框。对话  
 框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个  
 大家可以去看看帮助)    
 e.   单击   [下一步]   系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在  
 不同的数据库如   ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行  
 "SQL   SERVER   2000"的数据库服务器  
 f.   单击   [下一步]   ,选择要发布的对象(如表,视图,存储过程,一般是表)  
 g.   然后   [下一步]   直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了  
 一个共享数据库。  
3.设计订阅  
 a.   选中指定的订阅服务器  
 b.   从   [工具]   下拉菜单中选择   [复制]   子菜单的   [请求订阅]  
 c.   按照提示单击   [下一步]   操作直到系统会提示检查SQL   SERVER代理服务的运行状态,执行  
 复制操作的前提条件是SQL   SERVER代理服务必须已经启动。  
 d.   单击   [完成]   完成订阅操作。  
   
   
 ----------------------------------------------------------------------------  
   
 完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?  
 这里可以通过这种方法来快速看是否成功。  
 展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度  
 把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。  
 接下来就是判断复制是否成功了打  
 开C:/Program   Files/Microsoft   SQL   Server/MSSQL/REPLDATA/unc/XIAOWANGZI_database_database下面  
 看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。  
 要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表  
   
 Top

zjcxc(邹建)回复于 2004-06-15 07:42:57 得分 0
 
 /*****************   常见问题:权限问题      
   
 启动代理的域用户账号必须具有读取发布-分发服务器目录的权限  
 你用的账号没有读取//ServerA/D$/Program   Files/Microsoft   SQL   Server/MSSQL/repldata/unc/这个目录下的文件的权限。  
   
   
           启动代理的域用户账号必须具有读取发布-分发服务器目录的权限  
 ----^^^^^^^^^^^^^^^在控制面板-->管理-->服务-->sqlagent-->属性里的那个启动用户  
   
 Top

netcoder(朱二)回复于 2004-06-15 12:39:39 得分 0
SQL控件是什么?Top

Pasu_Player()回复于 2004-06-15 21:03:56 得分 0
各位大大,我想问的是它的存储过程有什么。  
 最好有一些底层一点的文章。  
 谢谢!!!谢谢!!!谢谢!!!谢谢!!!谢谢!!!Top

wqf0103()回复于 2004-06-17 13:04:12 得分 0
非常谢谢,Top

你可能对以下的问题也比较感兴趣....
SQL 7 复制问题。快照复制,为什么老是主键冲突?急!!!
怎么直接复制MS SQL Server的数据库?????
delphi+MS SQL server 的数据库合并复制的实现???
求一sql语句(数据复制问题),急
MS SQLServer的复制?
sql的复制问题
特急:sql server数据库复制到另一计算机上后打不开
求一 SQL 语句,消除相同数据,复制到同一表(急)
在线等待_MS SQL SERVER和ORACLE两结构相同的表之间数据的复制问题

原创粉丝点击