您的位置:知识库 » 数据库

通过SQL Server 2008数据库复制实现数据库同步备份

作者: dudu  来源: 博客园  发布时间: 2010-08-29 20:06  阅读: 4337 次  推荐: 0   原文链接   [收藏]  
摘要:下面通过一个示例和大家一起学习一下如何部署SQL Server 2008数据库复制。
[1] 通过SQL Server 2008数据库复制实现数据库同步备份
[2] 通过SQL Server 2008数据库复制实现数据库同步备份

  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。

  复制原理:我们采用的是基于快照的事务复制。主数据库服务器生成快照,备份库服务器读取并加载该快照,然后不停地从主数据库服务器复制事务日志。见下图:

grid.ai

图片来自SQL Server联机丛书

  安装与配置步骤:

  一、在两台服务器上安装好SQL Server 2008 R2,主要安装的组件:Database Engine(含SQL Server Replication),Management Tools。

  二、主数据库服务器(发布服务器)的配置:

  1. 在主数据库服务器CNBlogsDB1新建示例数据库CNBlogsDemo(注意Recovery mode要使用默认值Full,只有这个模式才能进行事务复制),然后建立一张测试表,比如:CNBlogsTest。

cnblogs_test

  2. 设置存放快照的文件夹:

  创建发布之前,先设置一下存放快照的文件夹,创建发布后会在该文件夹生成快照文件,订阅服务器需要在初始化时加载该快照文件。

  选择Replication》Local Publications》属性,在出现的窗口中选择Publishers,如下图:

20100826-8

  点击红框处的按钮,出现设置窗口:

20100826-9

  在Default Snapshot Folder中设置快照文件存放路径。

  3. 在主数据库服务器创建发布:

  在Replication》Local Publications中选择New Publication,出现一个向导。先选择要发布的数据库CNBlogsDemo,然后选择发布类型Transational publication,如下图:

Transationalpublication

  点击Next,出现错误:

20100826-1

  原来所有要复制的表都需要有主键,刚才建CNBlogsTest表时,没有建主键。建一下主键,并重新启动向导就可以了。

  接着选择要复制的对象:

20100826-2

  点Next,Next,进入Snapshot Agent窗口,选择Create a snapshot immediately and keep the snapshot available to initialize subscriptions,见下图:

20100826-3

  Next,进入Agent Security:

20100826-4

  选择Security Settings,进行相应的帐户设置:

20100826-5

  一个是设置运行Snapshot Agent的Windows帐户,我们这里选择与SQL Server Agent同样的帐户。

  一个是设置连接发布服务器的SQL帐户,我们这里就用主数据库服务器的sa帐户。

  继续:OK,Next,Next,为这个发布起个名字: 20100826-7

  点击Finish,就开始正式创建发布,创建成功就会出现如下窗口:

20100826-10

  这时查看快照文件夹,就会看到unc文件夹,快照文件就在这个文件夹中。

  这里要考虑这样一个问题,如何让订阅服务器通过网络访问这个快照文件夹。

  我们在这个问题上折腾了一些时间,本来想通过共享文件夹的方式,但又不想打开匿名共享,折腾了半天,没搞定订阅服务器访问共享文件夹用户验证的问题。于是采用了FTP的方式,所以,下面介绍一下如何让订阅服务器通过FTP访问快照文件。

 

[第1页][第2页]
0
0

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻