SQL Server复制:事务发布

一、背景

在复制的运用场景中,事务发布是使用最为广泛的,我遇到这样一个场景:在Task数据库中有Basic与Group两个表,需要提供这两个表的部分字段给其它程序读取放入缓存,程序需要比较及时的获取到这些数据,作为DBA你需要从权限和性能控制的角度出发,我采用了SQL Server的事务复制技术和timestamp,下面只讲述事务复制的搭建过程;

二、实现过程

(一) 环境信息

系统环境:Windows Server 2008 + SQL Server 2008 R2

发布服务器:192.168.1.151,服务器名称:USER-H2B2A89PEK

分发服务器:与发布服务器同一台机器

订阅服务器:192.168.1.152,服务器名称:USER-FJMO8L052U

发布数据库:Task

订阅数据库:TaskSiteInfo

数据库帐号:ReplicationUser/ ReplicationPassword

(二) 搭建步骤

A. 发布服务器配置

首先在发布数据库和订阅数据库上创建相同的帐号和密码(ReplicationUser/ ReplicationPassword),并且设置Task数据库的安全对象,设置这样的帐号的目的就是为了和程序连接到数据库的帐号区分开,可以做权限上的控制,方便问题的排查;

--更改安全对象的所有权

ALTER AUTHORIZATION ON DATABASE::[Task] TO [ReplicationUser]

在E盘目录下创建文件夹:E:\ReplData,并设置这个文件夹为共享目录,共享用户为barefootadmin;

(Figure1_1:文件夹权限)

这里需要设置SQL Server Agent登陆帐号为上面文件夹访问用户barefootadmin;

(Figure1_2:SQL Server Agent登陆帐号)

(Figure2:分发服务器)

如果你设置快照文件夹路径为:E:\ReplData,即使你的发布服务器本身就是分发服务器,如果订阅服务器是另外一台机器,那么在请求(Pull)订阅(如果是推送(Push)订阅就没有这个限制)模式下订阅代理是无法访问到这个快照文件的;除非你发布服务器、分发服务器和订阅服务器都是同一台机器;你应该设置快照文件夹路径为:\\USER-H2B2A89PEK\ ReplData;

(Figure3:快照文件夹)

(Figure4:数据库)

时间: 2024-12-03 22:13:37

SQL Server复制:事务发布的相关文章

(初稿)SQL Server 复制(Replication)系列(2)——事务复制搭建

原文:(初稿)SQL Server 复制(Replication)系列(2)--事务复制搭建 本文演示如何搭建最基本的事务复制. 环境准备: 虚拟机2台: 服务器名分别为RepA和RepB,RepA为发布服务器,RepB为订阅服务器.均安装WindowsServer 2008R2英文版(在外企工作的原因).并确保两台服务器能互访. SQL Server: 在上面的虚拟机中分别安装SQLServer 2008 R2 x64 英文企业版. 演示数据库: 微软示例数据库AdventureWorks20

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

原文:SQL Server 复制 - 发布订阅(SQL Server 数据同步) SQL Server的同步是通过SQL Server自带的复制工具来实现的,分发布和订阅2大步. A,复制-发布 发布之前,需要设置好几个前置条件,发布属性和快照位置.发布主要是设置发布数据库,如未设置,所有的发布,订阅可正常进行,也可通过快照同步,但是却无法在后面的修改中实时同步. 其次,设置快照位置.快照位置设置是在"分发服务器属性"中的发布服务器设置.如果设置的位置不能被订阅机访问,订阅是最好采用发

玩转SQL Server复制回路の变更数据类型、未分区表转为分区表

原文:玩转SQL Server复制回路の变更数据类型.未分区表转为分区表 玩转SQL Server复制回路の变更数据类型.未分区表转为分区表   复制的应用: 初级应用:读写分离.数据库备份 高级应用:搬迁大型数据库(跨机房).变更数据类型.未分区表转为分区表   京东的复制专家 菠萝 曾经写过文章.在数据库大会上也做过演讲,但是我相信真正按照菠萝兄的文章自己去做一次实验的人应该不多 京东的复制专家 菠萝 的文章地址:Replication的犄角旮旯(一)--变更订阅端表名的应用场景   为什麽

SQL Server 复制订阅

原文:SQL Server 复制订阅 标签:SQL SERVER/MSSQL SERVER/数据库/DBA/高性能解决方案/高可用 概述   配置复制就没有数据库镜像和AlwaysOn的要求那么高,只需要两台服务器能通过TCP进行通讯即可,两台服务器操作系统和SQL版本都可以不完全一致,而且两台服务器也不需要加入域,所以配置复制订阅就简单多了,但是复制订阅主要是针对数据表而不能像镜像和AlwaysOn那样配置整个数据库,这也是它的缺点吧. 接下来主要除了前面介绍配置复制订阅后面还会解释一些需要注

SQL Server 2000 SP4发布

server  微软官方2005-5-6正式发布了SQL Server 2000 Service Pack 4 (SP4),这也是官方SQL Server 2000产品发布的第一个支持64位的软件包.该平台支持Windows Server 2003 x64 Edition,允许32位SQL Server 2000的应用通过Windows emulator (WOW64)在64位平台上运行.同时,SP4还修正了SQL Server 2000自正式发布以来的一些特别点.     官方表示:SP4 是

SQL Server复制原理及注意事项

以两个复制服务器A,B双向复制为模型 SQL Server的复制分为三种: 1. 快照复制 A每隔一段时间将B中的相应表中的数据全部删除,然后将自己相应表中的 全部插到B中.此种方式显然不适合我们的应用,不予考虑. 2. 事务复制 对A中的每一个满足复制条件的事务,每隔一定时间A都应用到B上,反之亦然.SQL Server 通过把数据传给三个存储过程(插入,删除,修改)进行数据的修改,我们可以根据自己的应用改写此存储过程. 存在缺陷:如果从A到B的复制条件和从B到A复制条件相同的话,会产生"踢皮

SQL Server复制需要有实际的服务器名称才能连接到服务器

SQL Server 2005/2008 配置 Transactional  Replication 过程中,出现如下异常信息. 异常信息: Replication.Utilities---------- SQL Server 复制需要有实际的服务器名称才能连接到服务器.不支持通过服务器别名.IP 地址或任何其他备用名称进行连接.请指定实际的服务器名称"xxxxxxx". SQL Server replication requires the actual server name to

SQL Server 复制需要有实际的服务器名称才能连接到服务器

机子由于在捣鼓DAC连接方式时,计算机名被修改了,被改成了kerry,直到最近几天由于计算机改名了,这个潜在的问题(本机数据库只是偶尔那里 做实验)终于爆发了:我用连接服务器从其它服务器拷贝数据时报错,错误如下:SQL Server 复制需要有实际的服务器名称才能连接到服务器.不支持通过服务器别名.IP 地址或任何其他备用名称进行连接.请指定实际的服务器名称"xxxx". (Replication.Utilities):具体情况如图所示       解决方法:从sys.sysserve

数据库-sql server 2005 事务日志删除问题

问题描述 sql server 2005 事务日志删除问题 sql server 2005 事务日志 删除对数据库有多大影响? 如何删除sql server 2005 事务日志 如何做到定期删除半年前的,保留半年的事务日志? 解决方案 如果你的数据库是full模式,那需要先做完整备份,再定期做日志备份,这样才能截断日志 如果数据库是simple模式,就不存在截断日志的问题