转---SQL SERVER 2008 利用发布订阅方式实现数据库同步

转自:http://www.cnblogs.com/lxblog/archive/2012/11/08/2760650.html

数据库同步方式有很多种,这里以SQL Server 2008 为例利用数据库发布和订阅的方式来演示数据库的同步技术。由于就有一台计算机,只能在同一个服务器下两个不同的数据库之间进行数据同步进行演示。

首先我们在SQL Server 中建立两数据库 Lx_Data1 和 LxData2,并在两数据库中分别建立表t_student,脚本如下:

CREATE TABLE t_student
(
 Id INT NOT NULL,
 Name NVARCHAR(10) NULL,
 Age TINYINT NULL,
 School NVARCHAR (20) NULL,
 Class NVARCHAR (10) NULL,
 Score FLOAT NULL,
 CONSTRAINT PK_Student_Id PRIMARY KEY CLUSTERED (Id)
)

发布订阅分为两个步骤:1、发布。2订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布,还可以是存储过程等等。下面来演示一下这两个操作过程:

发布

注意:发布的时候SQL Server 需要有实际的服务器名称才能连接到服务器。不支持通过服务器别名、IP地址或者其他备用名称进行连接。因此如果当前的SQL Server的连接是IP地址的话,最好断开连接,以实际的服务器名称重新进行登录。

发布的具体过程如下:

1、展开SQL Server 2008 服务器下的 【复制】 节点,会发现有【本地发布】和【本地订阅】两个节点,右击【本地发布】节点,选择【新建发布】:

2、如果服务器第一次进行发布设置,会弹出【发布向导】对话框,设置【分发服务器】,选择第一个:

3、点击【下一步】会询问我们【启动SQL SERVER代理】的方式,由于是演示,我选则的是 手动方式:

4、点击【下一步】,会出现设置【快照文件夹】对话框,我们选择默认:

5、点击【下一步】,选择要发布的数据库,我们选择 数据库 Lx_Data1:

6、点击【下一步】,选择【发布类型】,我们选择 【事务发布】。这里要说明一下如果您对此对话框里面的各种发布类型不是很理解,请点击这里 选择适当的复制类型

7、点击【下一步】,选择数据库中的发布对象,我们的这个例子数据库只有一个表 t_student,我们选择这个表:

8、点击【下一步】,进入【筛选表行】对话框:

9、如果需要筛选表行点击【添加】就会出现如下的筛选器对话框:

10、我们不做筛选,要全部同步,点击【取消】后,直接【下一步】,进入【快照代理】设置对话框:

11、这里有两个选择一个是立即创建快照,一个是指定一个计划(比如可以指定xxx天xxx时间运行),我们选择第一个,并点击【下一步】进入【代理的安全性】设置:

12、点击【安全性设置】,我们选择 SQL SERVER 用户:

13、点击【确定】 后,返回 【代理安全性】设置对话框,继续点击【下一步】:

14、点击【下一步】,我们给发布进行命名为:“Lx_Data1_Publisher” :

15、点击【完成】,就会创建发布,并会显示创建发布的结果:

订阅

发布完成后,我们要进行订阅,过程如下:

1、右键点击【本地订阅】节点,打开,【新建订阅向导】对话框:

2、我们选择发布服务器 Lx-PC 中的数据库发布 Lx_Data1_Publisher,然后点击【下一步】:

3、在【分发代理位置】对话框中,选择第一项,点击【下一步】:

4、在【订阅服务器】对话框中,我们选择订阅数据库 Lx_Data2,然后点击【下一步】:

5、在【分发代理安全性】对话框中,我们点击“...”,进入安全性设置,我们选则的是 SQL 帐户:

6、输入帐号和密码后,点击【确定】,返回【安全性设置】对话框,点击【下一步】:

7、我们选择默认的“连续运行”,点击【下一步】,进入【初始化订阅】对话框:

8、初始化时间,选择 “立即” 初始化,点击【下一步】:

9、不创建脚本文件,点击【下一步】:

10、点击【完成】,就会创建订阅,并显示创建结果:

至此,服务器的发布和订阅都已经创建成功了。我们来测试一下,此时两个数据库表中都没有任何数据,向Lx_Data1中的 t_student 表中插入两条数据:

use Lx_Data1
go
insert into t_student values (1,‘史泰龙‘,22,‘纽约小学‘,‘一班‘,92)
insert into t_student values (2,‘施瓦辛格‘,23,‘华盛顿小学‘,‘一班‘,90)

然后我们查看两个数据库的结果:

use Lx_Data1
go
select * from t_student

use Lx_Data2
go
select * from t_student

结果我们会发现数据已经同步了,如下图:

时间: 2024-10-12 15:21:19

转---SQL SERVER 2008 利用发布订阅方式实现数据库同步的相关文章

关于SQL SERVER 2008 R2发布订阅功能

实现功能:主服务器维护数据的变更,从服务器需要时同步主服务器的数据. 配置:主从服务器均为SQL SERVER 2008 R2. 实现方法: 预备: 1.主从服务器需建立同一账户名及密码的账户(当时我认为是权限问题,只要设置好文件夹的权限即可,但后来发现貌似不是这么回事,从服务器实现同步的时候需要调用主服务器的SQLSERVER代理服务,所以需要使用其用户账户及密码),不需要管理员权限,将主从服务器上的SQLSERVER代理服务的用户更改成新建的用户. 2.在主服务器上建立一个共享文件夹,确保刚

SQL Server 2008复制发布订阅(数据同步)

数据库同步问题 1.有一台主数据库服务器A和另外一台数据库服务器B,客户端首先访问数据库B,当B数据库服务器挂掉时就访问A,当对数据库B进行DML操作时,同时对A进行更新,如果A与B之间通讯失败,则将更新后数据存入临时表,当恢复通讯时,自动更新,并将临时数据删除,同样当B不通时,将数据临时存在A中,B恢复连接时,A对B进行更新,怎么实现? 数据库同步更新步骤:主要是采用MSSQL数据库的复制功能(本地发布和本地订阅来完成主数据库服务器和数据库服务器同步的) 条件:1.两台PC机,环境:Win7操

SQL Server 跨服务器发布/订阅

------------------------------------------------第一步: 准备工作------------------------------------------------ 准备工作1: 配置机器名和数据库服务名一致 先检查A,B中的机器名和数据库服务名是否一致,这个很重要! 查看方法: 1.检查SQL Server 的服务器名称 1 2 3 4 use master go select @@servername select serverproperty(

SQL Server 2008 R2 Service Pack 3 已经发布

微软SQL Server Product Team在9月26号官方博客宣布,Microsoft SQL Server 2008 R2 Service Pack 3 (SP3)正式发布了 .具体信息可以参考官方发布的博客SQL Server 2008 R2 Service Pack 3 has released. SQL Server 2008 R2 SP3 累计了了自 SQL Server 2008 R2 SP2以后的13个跟新(具体内容可以参考链接地址) http://support2.mic

SQL Server 2008的一些新特点及独到之处

SQL Server 2008的一些新特点及独到之处: 设置和安装 SQL Server 2008的设置和安装也有所改进.配置数据和引擎位已经分开了,所以它使创建基本的未配置系统的磁盘图像变得可能了,它使分布到多个服务器变得更容易了.从微软的站点也可以找到安装可用的最新更新.另一个特点是有能力把安装SQL.SP和补丁做一个单一的步骤进行了.另一个的最后的特点是,有能力卸载SP了. 关键的领域 当回顾微软关于SQL Server 2008的文档时注意到的第一条就是术语分类的特点和用途分组的特点.或

22. SQL -- SQL Server 2005 和SQL Server 2008新特性

SQL SERVER 2005 与SQL SERVER 2008 新特性   SQLSERVER 2005 新特性 Enhanced Data Types:存储最大8K-2G Partitioned Table(分区表):数据拆分管理 背景:一个公司,有目前现存数据以及历史数据,各在一台SER 上,服务器访问方式: SQL 2000 TABLE 1:在一张table 中,对数据进行分区 Enhanced Indexing Features SER 1 SER 2 现存数据 TABLE 1 TAB

SQL Server 2008登录错误:无法连接到(local)解决方法

在一些朋友安装完SQL Server 2008之后大多会遇到连接出错的问题比如:SQL Server 2008登录错误:无法连接到(local)等等相关问题,本文将详细介绍解决方法,需要的朋友可以参考下 在一些朋友安装完SQL Server 2008之后大多会遇到连接出错的问题.特别对于我们这样的新手而言简直郁闷的要死,好不容易装玩了又出现了问题.此篇文章意在解决安装步骤没有问题,但安装后无法登录的问题. 在解决问题之前请朋友们打开服务窗口,看“SQL Server”主服务是否打开,如下图. 若

SQL Server 2008登录错误:无法连接到(local)的解决方法

1.服务器类型我们选择了“数据库引擎”时,查找里面的可登录用户名是没有的,下边的服务器名称只显示为“(local)”,连“Windows 身份验证”都无法登录. 如果朋友们和我出错的问题是一样请看下面的步骤. 1.又键单击“我的电脑(windows XP)”或“计算机(Windows 7)”查看本机的计算机名. 2.打开“SQL Server 2008”, 服务器类型选择:数据库引擎. 服务器名称写上:计算机名\安装SQL Server时自己创建的实例名. 权限里有实例名:控制面板-管理工具-服

SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据

原文:SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC规范.KML规范)的GIS专业理论知识.