您好,UncleToo欢迎您!  为了更好的浏览本站,请使用高版本浏览器
RSS  Tag     设为首页 | 加入收藏
 您所在的位置:首页 > 数据库技术 > SQL Server

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

作者:UncleToo  来源:互联网  日期:2013-09-03 11:07:40
收藏  评论:( 0 )  阅读:1237

昨天了解了一下MSSQL数据库复制技术,先说明一下自己遇到的问题。

首选是在新建发布的时候,到最后为快照代理进行安全设置时,选择使用windows域账号登录不好使,有可能是域账号的权限不足,具体原因我也不是很清楚,选择代理就正常了。

再一个我之前修改过数据库名,在新建发布的时候提示我用别名登录不好使,这个需要改一下服务器名称,SQL如下:

USE master  
       GO  
DECLARE @serverproperty_servername VARCHAR(100) ,
   @servername VARCHAR(100)  
SELECT @serverproperty_servername = CONVERT(VARCHAR(100), SERVERPROPERTY('ServerName'))  
SELECT @servername = CONVERT(VARCHAR(100), @@SERVERNAME)  
SELECT @serverproperty_servername ,
       @servername  
EXEC sp_dropserver @server = @servername  
EXEC sp_addserver @server = @serverproperty_servername, @local = 'local'

改完重启数据库。再确认一下SQL代理服务是否启动,我之前没有启动因为默认的administrator账号不对,我修改完账号密码,重启代理服务就可以使用了。


另外错误可以在windows日志里查看。

具体的操作过程懒得写,在网上找了一个很详细的,抄袭如下:

复制的概念:在数据库之间对数据和数据库对象进行复制和分发并进行同步以确保其一致性的一组技术。


使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet 分发给远程或移动用户。复制还能够使用户提高应用程序性能,根据数据的使用方式物理分隔数据(例如,将联机事务处理 (OLTP) 和决策支持系统分开),或者跨越多个服务器分布数据库处理。

SQL复制的基本元素包括:


发布服务器、订阅服务器、分发服务器、发布、项目。

发布服务器

发布服务器是提供数据以便复制到其它服务器的服务器。发布服务器可以具有一个或多个发布,每个发布代表一组逻辑相关的数据。除了指定其中哪些数据需要复制之外,发布服务器还检测事务复制期间发生更改的数据并维护有关此站点上所有发布的信息。

分发服务器

分发服务器是作为分发数据库宿主并存储历史数据和/或事务以及元数据的服务器。分发服务器的角色根据执行的复制类型而不同。有关更多信息,请参见复制类型。

远程分发服务器是独立于发布服务器并配置为复制的分发服务器的服务器。本地分发服务器是既配置为复制的发布服务器又配置为复制的分发服务器的服务器。

订阅服务器

订阅服务器是接收复制数据的服务器。订阅服务器订阅的是发布而不是发布中分离的项目;并且订阅服务器只订阅其需要的发布,而不是发布服务器上所有可用的发布。根据复制的类型和所选择的复制选项,订阅服务器还可以将数据更改传播回发布服务器或将数据重新发布到其它订阅服务器。

发布

发布是一个数据库中的一个或多个项目的集合。这种多个项目的分组使得指定逻辑相关的一组数据和数据库对象以一起复制变得更容易。

项目

项目是指定要复制的数据表、数据分区或数据库对象。项目可以是完整的表、某几列(使用垂直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图或用户定义函数。

订阅

订阅是对数据或数据库对象的复本的请求。订阅定义将接收的发布和接收的时间、地点。订阅的同步或数据分发可以由发布服务器(强制订阅)或订阅服务器(请求订阅)请求。发布可以支持强制订阅和请求订阅的混合。

SQL复制的工作原理

SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。


SQL SERVER复制技术类型,三种复制技术,分别是

1、快照复制

2、事务复制

3、合并复制

下介绍实现复制的步骤。(以快照复制为例)

准备工作:

1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户。

--我的电脑

--控制面板

--管理工具

--计算机管理

--用户和组

--右键用户

--新建用户

--建立一个隶属于administrator组的登陆windows的用户

2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:

我的电脑--D:\ 新建一个目录,名为: PUB

--右键这个新建的目录

--属性--共享

--选择"共享该文件夹"

--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限

--确定

3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)

开始--程序--管理工具--服务

--右键SQLSERVERAGENT

--属性--登陆--选择"此账户"

--输入或者选择第一步中创建的windows登录用户名

--"密码"中输入该用户的密码

4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)

企业管理器

--右键SQL实例--属性

--安全性--身份验证

--选择"SQL Server 和 Windows"

--确定

5.在发布服务器和订阅服务器上互相注册

企业管理器

--右键SQL Server组

--新建SQL Server注册...

--下一步--可用的服务器中,输入你要注册的远程服务器名--添加

--下一步--连接使用,选择第二个"SQL Server身份验证"

--下一步--输入用户名和密码

--下一步--选择SQL Server组,也可以创建一个新组

--下一步--完成

6.对于只能用IP,不能用计算机名的,为其注册服务器别名

(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)

开始--程序--Microsoft SQL Server--客户端网络实用工具

--别名--添加

--网络库选择"tcp/ip"--服务器别名输入SQL服务器名

--连接参数--服务器名称中输入SQL服务器ip地址

--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号

正式开始:

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之间。




除非特别声明,本站所有PHP教程及其他教程/文章均为原创、翻译或网友投稿,版权均归UncleToo中文网所有, 转载请注明作者及出处。
原文网址:http://www.uncletoo.com/html/sqlserver/293.html
读完这篇文章后,你是否有所收获? 分享是一种生活的信念!
  • 0
  • 0
我来说两句
更多>>网友评论