数据库之间的各种复制方式
阅读原文时间:2021年04月20日阅读:1

数据库的发布有四种,分别是

1、快照发布;

2、事务性发布;

3、具有可更新订阅的事务性发布

4、合并发布

其中2和3两者概念上时相同的。So,今天我们主要看看1,2和4这三种发布是如何进行的。

首先来介绍一下简单的一个环境:两个数据库服务器,一个为发布服务器,一个事订阅服务器。如图,其中发布服务器的ip地址是192.168.15.111. 订阅服务器的ip地址是192.168.15.115

总体步骤:

1、 在每个服务器上启动 SQL server 代理。

2、 在 SQL 发布服务器上创建发布。

3、 在 SQL 订阅服务器上新建订阅。

Waoo ! It is so easy!!   真的就想步骤里说的那样就简单的三步么?? 不见的喔。 一步一步来看看不。

一,首先在每个服务器上启动 SQL server 代理。

进入 SQL SERVER 2005 的主界面如图

我们看到 SQL Server 代理还没有开启。 右击‘ SQL Server 代理’点击启动,将 SQL Server 代理。如图

注意哦,要在两个服务器上都要开启的。

二,来到发布服务器上来,我们开始创建发布。

右击“本地发布”点击“新建发布”进入如下图的对话框。

直接下一步

我们今天就来以 nowman 系列( nowman , nowman1 , nowman2 , nowman3 ···)来做示范。选择 nowman 表,下一步

我们先选择“快照发布”,下一步

此步骤是用来筛选不需要的行,由于 nowman 表为实验表里面仅有一个数据,就没有必要来进行筛选了,直接下一步。

如图所示,下一步

创建快照代理,选择“安全设置”,进入下图界面

输入本域名称(与 windows 里的 active directory 不一样。在此为本机的主机名,在这里主机名是 wangqiang )和用户名,并输入用户名的密码。

选择创建发布,下一步

提醒你让你为发布起个名字。我们姑且叫它“ nowman ”吧,便于记忆。输入完之后点击“完成”。

正在创建当中,很快就会完成的。

我们来看一下发布创建成功了没有

OK !发布的成功。

三,再来到订阅服务器上进行订阅。

同样进入创建订阅的对话框

直接下一步

询问你发布服务器是哪个。我们在下拉菜单中选择 < 查找 SQL Server 发布服务器 >

如图

注意,这里的‘ dufei ’指的是我的发布服务器的数据库的名字。注意在这里我们是没有 DNS 服务器的,所以如果你但就选择服务器名称‘ dufei ’的话系统是不会找到目标服务器的。

我们可以再 C:\WINDOWS\system32\drivers\etc 下用记事本打开 hosts 文件来添加 ip 和名称的映射。如图

这样的话系统就会很快的找到发布服务器的数据库了。找到了数据库之后下一步

选择“在分发服务器 DUFEI 上运行所有代理(推送订阅)”,对送订阅即当分发服务器有新的数据改动是会全部的推送给订阅服务器,也可以说是分发服务器把数据备份到了订阅服务器上了。 好了,点击下一步

新建一个所订阅的分发(即分发服务器上发布的 nowman 数据库)到本服务器数据库的名字,如下图

我们也命名为nowman 以便容易记忆。

同分发步骤一样,需要你指定运行分发代理的域或计算账户。如下如

我们输入域和账户。 点击确定,下一步

询问你的同步计划时间。我们选择自定义计划。

为了能尽快让双方进行同步,我们把执行间隔设成 1 分钟。确定下一步。

在“初始化时间”上选择立即。下一步。

此步骤表示,当你点击“完成”后系统将执行的下一步操作。我们选择“创建订阅”。 下一步

点击完成

OK 。订阅设置完成。

我们来在“本地订阅”中查看订阅成功了没有。

显示有一项记录表示:本地订阅名为 nowman ,来自于 DUFEI 数据库服务器的 nowman 数据库。

四,我们来进行一下测试。

来到分发服务器上。打开 nowman 数据库

表中显示有一条记录。

我们再来插入一条记录

然后到订阅服务器上看看有没有同步。

(突然想起一句很流行的话:接下来就是见证奇迹的时刻,如果成功我只要连续 10 分钟的掌声!)

嗯,还行,挺成功。 10 分钟掌声, 1 , 2 , 3 ·····

五,好了,我们已经详细的部署了数据库发布的第一种发布:快照发布。下面我们再简单看看两外的合并发布和事务性发布。

1 ,首先看看合并发布。说道合并发布,顾名思义就是在订阅服务器受到已发布数据库的初始快照后,发布服务器和订阅服务器可以独立更新已发布的数据,双方可以相互发布和订阅,并且更改会定期合并。

我们创建一个表 nowman1 ,并且插入一条记录: id 为 1 ,名字为小强, tel 为 1234. 如上图。

来创建合并发布,和快照发布基本类似,我主要把不同的地方来细解。

选择“合并发布”。下一步

选择默认。

创建合并发布会增加一个 uniqueidentifier 列到表中。最后创建合并发布完成。查看一下,合并发布的图标是×××的 nowman1

在到订阅服务器上创建订阅。步骤与此前一样,只要注意要设置好计划时间以便更快的进行同步。

下图为订阅好的合并发布 nowman1

测试成功与否:

在发布服务器上查看 nowman1 表

再插入一条‘大强’记录

来到订阅服务器上查看一下

测试成功。

2 ,再来看一下事务性发布。其实它和前两者都一样,唯一不同的就是它的更新速度快,因为它在发布服务器有数据更新时只发送更新的部分给订阅服务器,而不想快照发布那样讲全部的数据发给订阅服务器。这样比较一看,还是事务性发布效率更高一些。

我们来把 nowman2 进行事务性发布,如图

nowman2 中有一条记录名叫‘强强’,不过在这里有点小隐患,我们后面步骤再说。先开始创建事务性发布吧。

如下图,报错了。意思是说nowman2表必须有一个主键才可以。再回头设置nowman2的主键。

哈哈,接下来就正常了,下一步,下一步。

蓝色的图标,事务性发布(nowman2)创建成功

同时到订阅服务器上创建订阅,与前面的订阅步骤一样,在此就不再赘述了。我们看一下结果吧,订阅成功。

再到发布服务器上为 nowman2 表插入一条‘强仔’记录

到订阅服务器上查看 nowman2 是否同步了。 右下角看到,同步成功!

好了,至此我们的数据库发布全部体验完毕。总体感觉还是比较简单易上手的。同志们可以体验一下。

转载于:https://blog.51cto.com/nowman/166020