sql数据库发布、订阅同步方式操作

Sql数据库发布订阅分为两个步骤:1、发布。2、订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。

一、发布。

发布需要用实际的服务器名称,不能使用服务器的IP地址。能发布的信息包括表,视图,用户定义函数,存储过程。

1.1、配置别名

分发服务器:

启动SQL Server配置管理器

SQL Server网络配置“TCP/IP”启用

Sql Native Client 10.0配置(32位)“别名”新建别名 如下图:

说明: 别名指发布/订阅服务器名

端口号指MSSqlserver使用的端口号

服务器指发布/订阅服务器IP

Sql Native Client 10.0配置“别名”新建别名 同上

以上配置完成后,如果还是无法远程连接到数据库,则修改系统配置文件

C:\WINDOWS\system32\drivers\etc\hosts 加入

10.240.15.10 实例名

发布服务器、订阅服务器别名配置参考分发服务器配置

说明:只支持服务器名+实例名+端口号方式访问。

别名服务可只进行开启,不进行设置。

1.3启动主数据库服务器上的SQL2008数据库服务如下图

连接到SQl2008服务器

具体发布过程如下:

找到数据库服务器下的【复制】--【本地发布】,右键【新建发布】如下图:

点击下一步:

选择待发布的数据库

选择发布类型:

快照发布:发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照。(全量)。

事务发布:在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。(变化的量)。

具有可更新订阅的事务发布: 在 SQL Server 订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。来自订阅服务器的事务被应用于发布服务器。(比较复杂,在新版本的数据库中已经没有此功能)。

合并发布:在订阅服务器收到已发布数据的初始快照后,发布服务器和订阅服务器可以独立更新已发布数据。更改会定期合并。Microsoft SQL Server Compact Edition 只能订阅合并发布。(双向复制,比较复杂)。

选择事务同步点击下一步:

选择待发布的内容:

带红色标记的表不能发布,因为它没有主键列。事务发布中的所有表都需要主键列。

注:点击项目属性,选择“所有表项目的属性”可以按需要设置发布的属性!

点击下一步:

可以添加筛选器

点击下一步:

勾选多选框:

点击更改,设置同步时间频率:

代理安全性设置:

选择在SQL Server代理服务账户下运行和使用以下SQL Server登录名,填写用户名密码

点击完成,输入发布名称:

发布成功:

注:发布完成后可先查看快照代理状态,确保发布快照执行完毕后,在进行订阅。

二、订阅。

订阅是对数据库发布的快照进行同步,将发布的数据源数据同步到目标数据库。具体订阅过程如下:

选择订阅的发布:

选择发布服务器—查找SQL Server发布服务器,输入用户名密码选择要发布的数据库,注必须输入服务器名称,不能为服务器ip。

点击下一步:

选择或新建订阅数据库

新建数据库,输入数据库名称:

点击下一步,点击红线按钮设置分发代理

选择在SQL Server代理服务账户下运行和使用以下SQL Server登录名,然后输入用户名密码

点击完成:

注1:修改数据库实例名

(如果没有修改计算机名,跳过该步)

由于修改了分发服务器名,所以需要修改实例名,使服务器名与实例名保持一致

查询实例名            select @@servername

删除旧的实力名    EXEC sp_dropserver‘本地实例名称‘

添加修的实例名 exec  sp_addserver‘修改名称‘,‘原名称‘

重启服务查询

SELECT @@SERVERNAME,SERVERPROPERTY(‘SERVERNAME‘)

两列数据一致,则实力名修改成功。

修改后服务器名称与实例名一周后,重启下sql server代理

注2:执行中注意问题

1.由于数据库较大,经过测试快照需要一到两个小时才能完成,在执行快照时比较消耗资源请耐心等待。

2快照执行时间,请按需求设定

3请关闭防火墙

4订阅服务器一定要添加发布服务器别名

5、设置表主键问题:设置时检查表中是否有自增长的数据列,如有直接将自增长的数据列设置为主键。

原文地址:https://www.cnblogs.com/pinpin/p/9864983.html

时间: 2024-08-23 20:16:19

sql数据库发布、订阅同步方式操作的相关文章

SQL Server发布订阅功能研究

前提:发布订阅只能是同一个内网的机器上才能使用,其实这个可以用配置管理器的别名功能设置之后就可以了,外网的也能通过这样的方式来搞. 配置过程参考老D的文章:http://www.cnblogs.com/daizhj/archive/2009/11/18/1605293.html SQL Server发布订阅功能测试: (我发觉这个功能很不行,为什么不行,我下面其中一台设置错误了就要全部重来,那么如果我下面有几百台机器,怎么重来?) 1.采用发布订阅机制只能是读写分离的方案,也就是说A发布B订阅,

SQL Server 发布订阅 发布类型详解

MicrosoftSQL Server 提供了三种复制类型. 每种复制类型都适合于不同应用程序的要求. 根据应用程序需要,可以在拓扑中使用一种或多种复制类型: 快照复制 事务复制 合并复制 为了帮助您选择适当的复制类型,此主题提供了有关下列内容的信息: 复制方案 本部分简要描述了复制的多种常用情况,还提供了指向更加详细描述的链接. 复制类型 本部分描述了每个复制类型所适合的应用程序要求. 在订阅服务器上更新数据 本部分描述了需要在订阅服务器上更新数据的应用程序的可用选项. 我们建议您先要通读方案

数据库发布订阅

一.发布.发布需要用实际的服务器名称,不能使用服务器的IP地址进行.能发布的信息包括[表].[存储过程].[用户函数]如果使用IP会有错误,如下图: 具体发布过程如下: 1.找到数据库服务器下的[复制]--[本地发布],选择[新建发布].如下图: 2.选择待发布的数据库.如下图: 3.选择发布类型.这里选择的默认类型[快照发布].几种发布类型的区别,SQL SERVER都在下面给出了说明.如下图: 4.选择待发布的类容.如下图: 上图中右侧就是筛选的SQL语句. 5.设置快照代理.如下图: 更改

MS SQL 2008 发布订阅配置错误总结

最近在配置SQL 2008的发布订阅功能时,遇到了几个小错误,顺便归纳总结一下(以后碰到各类关于发布订阅的错误都将收录.更新到这篇文章),方便自己在以后碰到这类问题时,能够迅速解决问题.毕竟人的记忆能力有时效性,时间久了,有可能有些东西就模糊了或忘了,好记性不如烂笔头. 错误1:在数据库服务器上新建本地发布服务时报错. (图1) 报错的具体细节如下所示:   查看具体原因,是因为安装数据库实例时,没有选择安装Replication components,需要添加Replication compo

SQLServer数据库发布订阅简单配置一主多从

一.配置分发服务器 一直下一步该页到 设置快照文件夹共享 后面一直下一步完成即可 完成分发服务器配置 二.发布订阅 ************************************************************************************************************************************************* 如果是在服务器上配置,出现以下错误 可使用 服务器名称 登录 而不使用 IP *******

SQL-Server2008 数据库发布订阅

参考博客园文章http://www.cnblogs.com/tyb1222/archive/2011/05/31/2064944.html 添加安全数据库 更改数据库名称 SQL语句 select @@servername select serverproperty('servername') sp_helpserver exec sp_dropserver @server = 'GUIDE-SQL-BAK' exec sp_addserver @server ='GUIDE-SQL-BAK',

sql数据库的表连接方式图文详解

sql数据库表连接,主要分为:内连接.外连接(左连接.右连接 .全连接).交叉连接,今天统一整合一下,看看他们的区别. 首先建表填充值. 学生表:student(id,姓名,年龄,性别 ) 成绩表:score(id,学生id,成绩) 一.内连接(inner join……on) select student.* ,Score.* from student inner join Score on student.id=Score.sid 查询结果如下: 关系如下图: 总结:inner join取两表

C# 还原SQL数据库(非存储过程方式)

Winform的代码,最好是在数据所在电脑上运行代码,不然会因为权限问题导致失败. 数据库备份: SqlConnection con = new SqlConnection("Data Source=.;;Initial Catalog=DB_Test;User ID=sa;Password=sa"); string sql = "backup database DB_Test to disk= 'c:\\aVb.bak'"; con.Open(); if (!Fi

SQL数据库简单的建立与操作

数据类型 符号标志 整数型 bigint,int,smallint,mediumint,tinyint 精确数值型 decimal,numeric 浮点型 float,real,double 位型 bit 字符型 char,varchar,longvarchar,longtext Unicode字符型 nchar,nvarchar BLOB类型 tinyblob,blob,mediumblob,longblob 文本型 text,tinytext 二进制型 binary,varbinary 日期