Sql server 2008数据库复制是通过发布/订阅机制在多个服务器之间同步数据。我们用它来同步备份数据库。这里的同步备份是指备份服务器和主服务器之间的实时数据同步。正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是优于文件备份的数据库备份解决方案。
在选择数据库同步备份解决方案时,我们评估了两种方式:sql server 2008的数据库镜像和SQL Server 2008的数据库复制。数据库镜像的优点是系统可以自动发现主服务器的故障,自动切换到镜像服务器。但缺点是配置复杂,镜像数据库中的数据不可见(在SQL Server Management Studio中,只能看到镜像数据库处于镜像状态,不能进行任何数据库操作,哪怕是最简单的查询。眼见为实,看看镜像数据库中的数据是否正确是不够的。只有当镜像数据库切换到主数据库时才可见)。如果要使用数据库镜像,强烈推荐killkill编写的sql server 2005镜像构建手册。根据本文,我们刚刚完成了数据库镜像部署测试。
最后,我们选择了SQL Server 2008数据库复制。
让我们通过一个例子来了解如何部署SQL Server 2008数据库复制。
测试环境:Windows Server 2008 R2 SQL Server 2008 R2(英文版),两台服务器,一台主数据库服务器CNBlogsDB1和一台备份数据库服务器CNBlogsDB2。
复制原理:我们采用基于快照的事务复制。主数据库服务器生成快照,备份库服务器读取并加载快照,然后不断从主数据库服务器复制事务日志。见下图:
来自SQL Server联机丛书的图像
安装和配置步骤:
1.在两台服务器上安装SQL Server 2008 R2。主要安装的组件是数据库引擎(包括SQL Server复制)和管理工具。
二。主数据库服务器(发布者)的配置:
1.在主数据库服务器CNBlogsDB1中新建一个示例数据库CNBlogsDemo(注意恢复模式要使用缺省值Full,只有该模式才能用于事务复制),然后建立一个测试表,比如CNBlogsTest。
2.设置存储快照的文件夹:
发布之前,请设置存储快照的文件夹。发布后,快照文件将在该文件夹中生成。订阅服务器需要在初始化期间加载快照文件。
选择“复制”“本地发布”属性,并在出现的窗口中选择“发布者”,如下图所示:
点击红色框中的按钮,将出现设置窗口:
在默认快照文件夹中设置快照文件存储路径。
3.在主数据库服务器上创建发布:
在复制>本地发布中选择新建发布,将出现一个向导。首先选择要发布的数据库CNBlogsDemo,然后选择发布类型Transational publication,如下图所示:
单击下一步,出现一个错误:
最初,所有要复制的表都需要有一个主键。刚刚构建CNBlogsTest表的时候,还没有主键。只需创建主键并重新启动向导。
然后选择要复制的对象:
点击“下一步”进入“快照代理”窗口,选择“立即创建快照并保持快照可用于初始化订阅”,如下图所示:
接下来,输入代理安全性:
选择安全设置并进行相应的帐户设置:
一种是设置运行快照代理的Windows帐户。这里,我们选择与SQL Server代理相同的帐户。
一种是设置连接到发布者的SQL帐户,这里我们使用主数据库服务器的sa帐户。
继续:好,下一步,下一步,给这个版本起个名字:
点击完成,正式创建出版物,创建成功后会出现以下窗口:
查看快照文件夹时,您会看到快照文件所在的unc文件夹。
这里要考虑如何让订阅者通过网络访问这个快照文件夹。
这个问题我们反复讨论了一段时间。我们想共享文件夹,但不想打开匿名共享。我们折腾了半天,也没有解决订阅者访问共享文件夹的用户认证问题。所以采用了FTP,下面介绍如何让订阅者通过FTP访问快照文件。
4.设置快照的FTP访问
首先在主数据库服务器上打开FTP服务,设置一个指向快照文件夹的FTP站点,设置一个可以远程连接的FTP账号。然后在此发布服务器上设置FTP客户端配置。配置方法如下:
选择刚创建的发布[cnblogs demo]:cnblogs demo _ publication in Replication]本地发布,选择FTP快照,如下图所示:
选择允许订阅服务器使用FTP下载快照文件,并设置FTP客户端连接参数。订阅者通过这里的设置连接FTP服务器(注意:FTP根文件夹的Path的设置应该和上图一样,设置为:/ftp)。
[分页符]
单击“确定”,在快照文件夹中会创建一个ftp文件夹,并在该文件夹中生成快照文件。
这样,发布者就配置好了。接下来,配置订户。
三。备份数据库服务器(订户)的配置:
输入订阅服务器CNBlogsDB2,创建与发布服务器同名的数据库CNBlogsDemo,并使用完整恢复模式。
在复制>本地订阅中选择新订阅以进入向导。
接下来,进入选择发布者窗口,选择查找SQL Server发布者,出现服务器连接窗口:
这里需要注意的是,发布者的计算机名必须填写在服务器名中。如果无法连接计算机名,应该将IP地址解析添加到hosts文件中。
成功连接到发布服务器后,您可以看到刚刚在主数据库服务器上创建的发布:
接下来,进入“分销代理工作地点”选择窗口:
这里我们选择拉订阅来拉数据,这样主数据库服务器的负担会轻一些。
接下来,选择订阅服务器上的数据库。我们之前已经建了一个同名的数据库,所以系统会自己找。
接下来,进入分发代理安全设置窗口:
点击红色框中的按钮,进入设置窗口:
如上图所示,在连接到分发服务器时设置发布服务器的sa帐户。
好,下一个,下一个,下一个: