第十三周翻译:Stairway to SQL Server Replication: Level 1 - Introduction to SQL Server Replication

原著信息:Stairway to SQL Server Replication: Level 1 - Introduction to SQL Server Replication
作者:Sebastian-Meine
日期:2012-12-26


Level 1: Introduction to SQL Server Replication第1级:SQL Server复制简介

主要条目:REP-li-ca

发音:-pl?-‘ka-sh?nFunction:名词

日期:14世纪

复制这个词来自拉丁文单词REPLICARE,意思是重复。复制描述了复制或复制的过程(www.merriam-webster.com)。

SQLServer中的复制正是这样做的;它复制或复制数据。每当您需要创建数据的副本,或复制对该数据的更改时,都可以使用复制。那家伙 Py可以在同一数据库中创建,也可以在单独服务器上的远程位置创建。

副本可以连续地与源数据保持同步,或者按计划间隔同步。单向同步和双向同步是可能的.复制 甚至用来使多个数据集保持同步。

在第一个层次中,我将告诉您基本的复制组件,并描述它们是如何协同工作的,以便您可以复制数据和数据更改。我们还将看一个详细的 设置简单复制场景的示例。


Replication Components复制组件

SQL Server复制由三个组件组成:发布服务器、分发服务器和订阅服务器。这些组件作用于在发布和订阅中定义的项目。


Article论文

对于每个应该复制的SQLServer对象,需要定义一个复制项目。每一篇文章对应于单个SQL Server对象,或对象的子集。对象 复制最多的是表、视图和存储过程。有关可以复制的对象的完整列表,请查看联机丛书中的发布数据和数据库对象。项目的属性决定项目是否包含整个对象,或者对象的筛选子集是否构成复制的项目。在有一些限制的情况下,可以在单个对象上创建多个项目。


Publication出版

逻辑上属于一起的一组文章可以组合成出版物。出版物定义了适用于该出版物中所有项目的选项。定义的主要选项 发布是要使用的复制类型。


Publisher出版社

使发布可用于复制的SQLServer实例称为发布服务器。

发布服务器监视所有项目的更改,并将有关这些更改的信息提供给分发服务器。


Distributor分电盘

分发服务器是SQLServer实例,它跟踪所有订阅服务器和所有已发布的更改,并确保每个订阅服务器都得到有关每个更改的通知。大多数更改都是跟踪i的。 一个分布数据库。分发服务器可以是单独的SQLServer实例,但分发服务通常运行在与发布服务器相同的计算机上。


Subscriber用户

订阅服务器是通过订阅接收所有已发布信息的SQLServer实例。


Subscription订阅费

订阅是发布的对应项。订阅定义要接收发布中发布的更新的服务器(订阅服务器)。每个订阅都会在o之间创建一个链接。 Ne出版物和一个订阅者。订阅有两种类型:推送订阅和请求订阅。在推送订阅中,分发服务器直接更新订阅服务器数据库中的数据。在请求订阅中,订阅方定期询问分发服务器是否有任何新的更改可用, 然后更新数据本身。


Replication Types复制类型

SQL Server中有三种主要类型的复制。它们是快照复制、合并复制和事务复制。


Snapshot Replication快照复制

快照复制每次运行时都会创建复制对象及其数据的完整副本。它使用SQL Server的BCP实用程序将每个表的内容写入快照文件夹。 快照文件夹是在启用复制时必须在分发服务器上设置的共享文件夹位置。复制安装程序中的每个参与者都需要访问快照文件夹。

每次运行快照复制时,都会从头开始执行所有操作,因此对带宽和存储有很高的要求。默认情况下,所有其他类型的复制都使用单个复制。 快照:仅在初始设置期间将所有订户与分发服务器同步。

Transactional Replication事务复制

顾名思义,事务性复制在事务基础上工作。每个提交的事务都会被扫描以查看应用于复制项目的更改。对更改的扫描是由以下人员完成的 日志读取器代理,它读取发布服务器数据库的事务日志。如果有影响已发布对象的更改,则这些更改将登录到分发服务器中的分发服务器上。 在数据库上。从那里他们向订户走去。

事务性复制允许接近实时同步,并且在发布服务器上只留下很小的占用空间。虽然有几种允许双向数据移动的选项, 搜索复制最初被设计为只以一种方式工作。


Transactional Replication事务复制

顾名思义,事务性复制在事务基础上工作。每个提交的事务都会被扫描以查看应用于复制项目的更改。对更改的扫描是由以下人员完成的 日志读取器代理,它读取发布服务器数据库的事务日志。如果发生影响已发布对象的更改,则这些更改将登录到分发服务器数据库中的分发服务器上。从那里他们向订户走去。

事务性复制允许接近实时同步,并且在发布服务器上只留下很小的占用空间。虽然有几种允许双向数据移动的选项, 搜索复制最初被设计为只以一种方式工作。


Merge Replication合并复制

合并复制从一开始就设计为允许在发布服务器和订阅服务器端对数据进行更改。合并复制还允许断开连接的方案,在这种情况下,订阅服务器可能在白天没有连接。该订户在晚上重新连接后将同步。如果同时在两个不同的位置更新一行,则会发生冲突。合并复制提供了几个内置选项来解决这些冲突。




Setting up Transactional Replication设置事务复制

本节是关于如何设置涉及单个复制表的事务性复制的一步的指南。

若要设置复制,需要配置分发服务器、发布服务器和订阅服务器。复制可以使用T-SQL脚本完全设置和控制.但是,必要的T-SQL inv 解决存储过程的使用,这些存储过程总共有100多个所需的参数。因此,从使用SSM-GUI开始是有意义的。这里显示的示例屏幕截图是在 单台服务器(WIN2008A)上安装了一个SQLServer实例(R2A)。这个实例是一个SQLServer2008R2实例。但是,您也可以学习SQLServer 2008和2005的示例。


Setting up distribution设置分配

分发服务器是事务复制的核心。在设置所有其他组件时,它必须是可用的,因此需要首先配置它。

首先打开SSMS并连接到包含复制源数据的SQL Server实例。虽然分发服务器可以位于它自己的SQL-server实例上,但在许多情况下,它会创建 让发行者和发行商在同一台机器上活动,就像在本例中假设的那样。

连接到服务器后,右键单击服务器下的“复制”文件夹并选择“配置分发”。如图1所示。

在这里插入图片描述
图1: 配置分发

配置分发向导将使用其启动屏幕迎接您,如图2所示。

在这里插入图片描述
图2: 配置分发向导


忽略此屏幕并单击“Next”是安全的。

在下一个屏幕上(图3),您将选择是否应该在此服务器上运行分发服务,或者您的网络中是否已经配置了一个分发服务器。在机器上 分发服务运行也将包含分发数据库。将此选择保留在默认位置,即在此服务器上安装发行版并单击“Next”。

在这里插入图片描述
图3: 选择分发服务器


这将显示图4中的对话框,要求您选择快照文件夹的位置。

在这里插入图片描述
图4: 快照文件夹


快照文件夹可以是计算机上或网络中的任何位置。在分发服务器上为它创建一个网络共享是有意义的。此示例使用“\WIN2008A\ReplicationSnapshotFolder"。

快照文件夹的设置也需要授予适当的权限。现在不需要过多的细节,而是授予对文件夹上“经过身份验证的用户”的写访问权限(图5)。 它本身并读取共享上“Everyone”的访问权限(图6)。有关如何加强这一领域安全的更多信息将在此阶梯的稍后级别中提供。

在这里插入图片描述
图5: 授予对快照文件夹的访问权限


在这里插入图片描述
图6: 授予对快照文件夹共享的访问权限


设置好共享并将网络路径放入向导的输入字段后,按“Next”键进入如图7所示的“分发数据库”表单。

在这里插入图片描述
图7: 分发数据库


在这里,您将指定分发数据库的名称及其数据和日志文件的位置。保留默认值并单击“Next”以进入“Publisher”屏幕(图8)。

在“发行者”屏幕上,你准备好潜在的出版商,让他们能够使用这个发行商。我们将在同一个实例上安装我们的Publisher,这样您就可以将默认值和“Next”保留在最后一个问题上(图9)。

在这里插入图片描述
图8: 准备发布服务器


在这里插入图片描述
图9: 向导操作


最后一个问题是您是否希望向导立即执行您的选择,还是希望向导创建您以后将手动执行的脚本。同样,保留默认设置并最后一次单击“Next”。

现在,您将看到将发生的操作列表,如图10所示。单击“Finish”启动进程。

在这里插入图片描述
图10: 向导摘要


最后,图11所示的屏幕提供了有关复制配置的进度和成功的信息。

在这里插入图片描述
图11: 执行状态




The First Publication第一次出版

要创建发布,首先需要有包含要发布的表的数据库。执行SQL脚本1为发布创建测试数据库。

USE MASTER;GOEXECUTE AS LOGIN = 'SA'
;GOCREATE DATABASE ReplA;GOUSE ReplA
;GOIF OBJECT_ID('dbo.Test') IS NOT NULL DROP TABLE dbo.Test
;GOCREATE TABLE dbo.Test(
  Id INT IDENTITY(1,1) PRIMARY KEY,
  Data INT CONSTRAINT Test_Data_Dflt DEFAULT CHECKSUM(NEWID())
;GOINSERT INTO dbo.Test DEFAULT VALUES
;GO 1000USE MASTER
;GO REVERT
;GO

脚本1: 为发布创建测试数据库

现在,您已经准备好设置发布。

在SSMS对象资源管理器中,打开复制文件夹,右键单击“本地发布”。在下拉菜单中选择“新出版物”(图12)。

在这里插入图片描述
图12: 新发布

“新发布向导”的欢迎页面如图13所示。

在这里插入图片描述
图13: 配置发布向导

点击“下一步”。

在“发布数据库”框(图14)中,选择刚才创建的数据库副本,然后单击“Next”。“发布类型”屏幕(图15)允许您选择哪种类型的复制 想用。选择“事务性发布”并单击“下一步”。

在这里插入图片描述
图14: 选择发布数据库

在这里插入图片描述
图15: 发布类型

现在,您可以选择哪些文章应该是该出版物的一部分(图16)。选择表dbo.test并再次单击“Next”,以继续到“FilterTable行”对话框(图17)。滤光片 是一个高级主题,将在这个阶梯的稍后级别中讨论,所以现在只需单击“Next”,而不对此表单进行选择。

在这里插入图片描述
图16: 文章

在这里插入图片描述
图17: 行过滤器

接下来的三个屏幕处理快照代理。在第一个屏幕上(图18)选择“立即创建快照”并单击“Next”。在“代理安全”屏幕上(图19)单击“SEC” 打开的表单上的安全设置“Button and Pick”在SQLServer代理服务帐户下运行(图20)。

在这里插入图片描述
图18: 快照计划

在这里插入图片描述
图19: 代理安全性

在这里插入图片描述
图20: 选择一个帐户

在表单上单击“确定”,然后在代理安全屏幕上单击“下一步”。

这将显示“向导操作”表单(图21),供您选择“创建发布”。最后一次单击“Next”将您带到摘要屏幕(图22)。

在这里插入图片描述
图21: 向导操作

在这里插入图片描述
图22: 向导摘要

在这里,您需要为您的出版物选择一个名称。在字段中键入“MyFirstPublation”,然后单击“Finish”启动流程。同样,最后一个屏幕(图23)显示了进度信息和 进程完成时的成功状态。

在这里插入图片描述
图23: 执行状态




The first subscription第一次订阅

在大多数情况下,订阅服务器将位于另一台计算机上,但在某些情况下,您希望它位于同一个实例上。为了保持这个示例的简单性,我们也将保持在同一个实例上。使用脚本2中的代码:创建数据库ReplB。

USE MASTER;
GO
EXECUTE AS LOGIN = 'SA';
GO
CREATE DATABASE ReplB;
GO
REVERT;
GO

脚本2: 创建目标数据库

现在我们转到SSMS对象资源管理器,右键单击“本地订阅”并选择“新建订阅.”在下拉菜单中(图24)。

在这里插入图片描述
图24: 选择新订阅

“新订阅向导”(图25)欢迎您,并为您提供了另一个练习按下“Next”按钮的机会。

在这里插入图片描述
图25: 新订阅向导

在“发布”表单(图26)中,选择您刚刚创建的发布,然后单击“Next”。“分发代理位置”屏幕(图27)允许您在推送和拉动式订阅之间进行选择。保留默认值,然后转到“订户”屏幕(图28)。

在这里插入图片描述
图26: 选择发布

在这里插入图片描述
图27: 推拉

在这里插入图片描述
图28: 目标数据库

在这里,您需要选择服务器并选择ReplB数据库。

下一个屏幕允许您设置“分发代理安全性”(图29)。

在这里插入图片描述
图29: 分发代理安全性

单击右侧的小省略号按钮,并在打开的表单中选择“在SQL Server代理服务帐户下运行”(图30)。

在这里插入图片描述
图30: 选择一个帐户

单击“OK”,然后单击“Next”,即可进入“同步计划”屏幕(图31)。选择“连续运行”,然后转到“初始化订阅”屏幕(图32)。保留默认值,立即初始化,然后在“向导操作”表单中“下一步”(图33)。

在这里插入图片描述
图31: 同步计划

在这里插入图片描述
图32: 初始化

在这里插入图片描述
图33: 向导操作

如前所述,保留默认值(创建订阅)并单击“Next”将使您使用即将执行的操作列表到达摘要屏幕(图34)。单击“Finish”启动流程,并等待绿色成功徽标出现在最终表单上(图35)。

在这里插入图片描述
图34: 向导摘要

在这里插入图片描述
图35: 执行状态




Success!成功!

Script 1创建了Dbo.Test表,并在其中插入了1000行。在将初始快照转移到订阅服务器之后,您将在ReplB中找到dbo.Test表,其中包含所有1000行。安装完成几分钟后,您可以运行脚本3来验证复制是否按预期将所有数据推送到订阅服务器。这个脚本加入了ReplA.dbo.test和ReplB。 测试表一起显示哪些行被正确复制。现在您可以自己运行进一步的测试,可以在ReplA.dbo中插入和更新行。 也出现在ReplB.dbo.Test中。

SELECT TOP(20) A.Id AS [ReplA.Id],A.Data AS [ReplA.Data],B.Id AS [ReplB.Id],B.Data AS [ReplB.Data] 
FROM ReplA.dbo.Test A
FULL OUTER JOIN ReplB.dbo.Test B
ON A.Id = B.Id
ORDER BY A.Id DESC

脚本3: 比较发布服务器和订阅服务器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值