SQL Server 2000向SQL Server 2008 R2推送数据

【文章摘要】
最近作的一个项目要获取存在于其余服务器的一些数据,为了安全起见,采用由其余“服务器”向咱们服务器推送的方式实现。咱们服务器使用的是SQL Server 2008 R2,其余“服务器”使用的都是SQL Server 2000,还都是运行在Windows XP上的,整个过程遇到了一些问题,也参考了一些文档,最终费了好多事才算搞定。html

 

【文章索引】sql

  1. 配置分发服务器
  2. 配置发布数据库
  3. 配置订阅

 

【1、配置分发服务器】数据库

SQLServer 2000的复制服务包括三个角色:发布服务器、分发服务器和订阅服务器,关系如图1所示。windows

图1安全

其中发布服务器(数据源服务器)负责将数据的改变(如快照或事务等)传送到分发服务器中,由分发服务器将这些数据的改变分发到订阅服务器(目标服务器)中。其中分发服务器能够与发布服务器配置在一台服务器中。服务器

在配置分发服务器以前,首先须要打开SQL Server Agent服务并配置为自动启动。除此以外,对于数据库复制操做,SQL Server Agent不能使用系统帐户登陆,而必须为本地帐户,能够在“登陆”选项卡中,将“登陆身份”设置为“此帐户”,选择任一管理员帐户便可(该管理员帐户必须有密码)。网络

而后就能够配置分发服务器了。在SQL Server 2000中,打开企业管理器,而后选择已经注册的SQL Server服务器(此处为本机服务器),而后选择“工具”菜单,选择“向导”,出现如图2所示的对话框。工具

图2代理

选择“配置发布和分发向导”,肯定后点击下一步出现如图3所示的对话框。server

图3

若是须要在当前数据库服务器上建立分发服务器,选择第一项便可,不然选择第二项,而后点击下一步,出现如图4所示的对话框。

图4

这里须要注意的是,快照文件夹路径必须为网络路径,即\\计算机名\盘符默认共享\路径,默认系统已经填好该项,直接点击下一步便可。若是出现出错的状况,能够打开cmd,输入“net share”查看当前共享中是否有盘符的默认共享,若是没有的话,使用“net share c$”便可建立默认共享,若是还不行能够访问参考连接2

成功后一路下一步便可配置好分发服务器。配置完分发服务器后,在注册的数据库服务器中就会出现“复制监视器一项”。

 

【2、配置发布数据库】

对于SQL Server 2000向2000推送数据,接下来的操做能够继续在企业管理器中完成,而对于SQL Server 2000向高版本SQL Server推送数据,则须要安装相应版本的SQL Server Management Studio,不然在最后一步链接订阅服务器时没法链接(出现“[sql-dmo]必须使用sql server2005 管理工具才能链接到此服务器”错误)。咱们的目标服务器安装的是SQL Server 2008 R2,因此须要安装SQL Server 2008 R2 Management Studio。

安装完成后首先链接到本机服务器,注意,服务器名称不能使用“(local)”或者IP,必须使用本机计算机名,登陆方式使用SQL Server 身份认证。

要配置待发布的数据库,首先须要确保该数据库的“恢复模式”为“完整”,右键单击数据库,选择属性,而后选择“选项”,在“恢复模式”中设置为“完整”便可。

接下来就能够建立本地发布了,展开本机数据库,展开“复制”,在“本地发布”右键单击选择“新建发布”,如图5。

图5

点击下一步后选择待发布的数据库,点击下一步即进入选择发布类型的对话框,如图6所示。

图6

其中快照发布适合于表中无主键的数据表,每次复制时将数据所有复制过去;事务发布要求发布的数据表必须含有主键,不然没法复制。显然当数据量较大时,使用后者更好一些。若是数据库能够修改,建议将没有主键的表增长一个自增主键。这里因为源数据表中没有主键,也不能修改数据表结构,只能选择“快照发布”。点击下一步后出现选择要发布的内容的对话框,若是某个表不符合要求(如选择的事务发布但没有主键)则表名前出现禁止符号而且没法选择,如图7所示。

图7

再次点击下一步后出现自定义筛选数据的对话框,若是不须要筛选数据,点击下一步进入设置快照代理时间。快照代理即负责生成数据库的修改,能够设置为按天、周、月重复执行。这里天天推送一次,因此也只须要生成一次快照,如图8所示。若是打算设置完订阅后当即推送一次,能够选择勾选第一个选项。

图8

而后一路下一步便可完成发布的设置。

 

【3、配置订阅】

完成上述两步后就能够配置订阅了,订阅分为两种,分别是推式订阅和拉式订阅,前者由分发服务器链接订阅服务器,向订阅服务器推送数据;后者由订阅服务器链接分发服务器,向分发服务器拉取数据。因此在完成上一步后,“本地发布”中即出现了新建立的发布,右键单击选择“新建订阅”便可出现“新建订阅向导”对话框,点击下一步后已经选择了当前的订阅,继续点击下一步,出现订阅类型设置,如图9。

图9

这里选择“推式订阅”,而后点击下一步出现选择订阅服务器和订阅数据库的对话框,如图10所示。

图10

首先点击“添加 SQL Server 订阅服务器”添加订阅服务器,出现“链接到服务器”对话框,须要注意的是,订阅服务器也须要使用服务器名称登陆。若是目标服务器与本地位于同一个局域网内,使用目标服务器名能够直接登陆;不然则须要设置hosts文件,添加目标服务器IP与名称的对应关系才能够。登陆方式一样使用SQL Server 身份认证。注意,修改完hosts重启以后才会生效。

添加完订阅服务器后,若是订阅服务器中有同名的数据库,则会自动显示在“订阅数据库”中。除此以外,订阅数据库须要登陆帐号有“db_owner”权限,不然不会显示在“订阅数据库”中,固然也可新建数据库。点击下一步后出现设置同步计划的对话框,如图11。

图11

代理计划能够设置为“连续运行”、“仅按需运行”或与建立发布时相似的自定义时间,其中“连续运行”指的是一直检查更新并推送到订阅服务器中,“仅按需运行”则须要手动执行,“<定义计划>”与建立发布时相同,能够设置重复执行的周期。若是天天只推送一次的话,能够设置在上一步快照代理执行时间以后的一个事件,设置完同步计划后下一步能够设置初始化时间,如图12。

图12

初始化时间能够设置为“当即”或“首次同步时”,若是上一步设置发布时选择的当即生成快照,同时这里选择“当即”初始化订阅的话,那么向导完成后会当即推送一次数据;不然将按预设的计划执行。

按上述设置完成后遇到了一个问题,在执行订阅代理时,出现“登陆失败。该登陆名来自不受信任的域,不能与 Windows 身份验证一块儿使用”的错误。可是查看发现不论本机服务器仍是订阅服务器均使用SQL Server 身份认证。后来进入SQL Server 2000的企业管理器,在本机服务器的“复制”中右键单击,选择“配置发布、订阅服务器和分发”,而后点击订阅服务器,在订阅服务器的列表中点击以前设置的订阅服务器右侧的“...”,发现登陆方式为“Windows 身份认证”。从新将订阅服务器的登陆配置为SQL Server 身份认证便可解决该问题。

 

【参考连接】

  1. Configuring Snapshot, Merge, and Transactional Replication:http://technet.microsoft.com/library/Cc917633
  2. windows默认共享的打开和关闭:http://www.cnblogs.com/Fooo/archive/2007/06/04/771021.html
相关文章
相关标签/搜索