如何对 SQL Server 2000 桌面引擎 (MSDE 2000) 使用复制

文章翻译 文章翻译
文章编号: 324992 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

Microsoft SQL Server 2000 桌面引擎 (MSDE 2000) 是 SQL Server 2000 相关数据库引擎的可重新分发版本。通过使用 MSDE 2000,应用程序开发人员便拥有了一种可用来分发其应用程序和存储数据的数据库的方法。此外,MSDE 2000 还支持复制。这一功能对应用程序开发人员非常有用,尤其是在用户断开连接,并希望将其数据的本地副本与中心服务器合并时。但是,MSDE 2000 复制也有一些特定的限制和警告。本文介绍了 MSDE 2000 复制的这些警告,同时也提供了有关如何使用 MSDE 2000 管理复制的信息。

如果您使用 SQL Server 的常规版本进行复制,那么所有 SQL Server 和复制功能都可以使用。MSDE 2000 可以在 SQL Server 的所有版本间进行复制,但是,如果您使用 MSDE 2000 作为复制拓扑的一部分,会有一些特定的限制。其中一些限制来源于 MSDE 2000 的继承限制,而另一些特定限制则是专门针对 MSDE 2000 及复制的设计限制。

特定于复制的限制和警告

  • MSDE 2000 既可用作发布服务器或分发服务器,也可用作订阅服务器,并可在 MSDE 版本和 SQL Server 的常规版本间进行复制。此外,不能使用 MSDE 2000 进行事务发布,但可将其用作快照复制和合并复制的发布服务器,还可将其用作所有三种发布类型的订阅服务器。
  • 不能对 MSDE 2000 使用远程分发服务器。MSDE 2000 发布服务器必须与分发服务器使用同一服务器。
  • MSDE 2000 安装过程中不创建 Repldata 文件夹,这会在您尝试使用默认快照文件夹创建发布时产生错误。要使用默认快照位置,可在 MSSQL 或 MSSQL$InstanceName 文件夹下创建一个 Repldata 文件夹,然后再创建发布。

特定于 MSDE 2000 的限制和警告

  • MSDE 2000 将数据库容量限制为 2 GB。如果 MSDE 2000 是复制拓扑的一部分,那么所复制的数据库的容量限制为 2 GB。如果 MSDE 2000 是订阅服务器,那么在数据库容量超出 2 GB 后复制代理程序会失败。此时请考虑将订阅服务器升级到常规的 SQL Server 版本。 有关如何从 MSDE 2000 升级到常规 SQL Server 版本的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    325023 INFO:将 SQL Server 2000 桌面引擎升级到 SQL Server
  • 连接 MSDE 2000 的数量已优化为 5 个。如果 MSDE 2000 是发布服务器且有足够的订阅服务器用于发布,或者如果 MSDE 2000 是用于多个发布的订阅服务器,这一连接数量可能会影响复制的性能。

使用 MSDE 2000 作为发布服务器或分发服务器

如果 MSDE 2000 是复制拓扑的一部分,那么它既可用作发布服务器或分发服务器,也可用作订阅服务器。如果使用 MSDE 2000 作为发布服务器或分发服务器,请考虑以下限制:
  • 分发服务器和发布服务器始终为同一台计算机。如果发布是一个合并发布,在发布服务器或分发服务器端会产生多个线程以执行合并处理。并且,如果有多个订阅服务器用于发布,在发布服务器上产生的线程数量会增加很多交叠。由于 MSDE 2000 的继承限制,上述情况可能会导致性能问题。
  • 在有大量订阅服务器的活动复制环境中,Microsoft 建议您使用常规 SQL Server 版本作为发布服务器或分发服务器,而不使用 MSDE 2000。

使用 MSDE 2000 作为订阅服务器

MSDE 2000 主要用于断开网络连接的环境中。因此,MSDE 2000 通常在复制拓扑中用作合并复制的订阅服务器。使用 MSDE 2000 作为订阅服务器时可能发生以下一些典型问题:
  • 订阅数据库超出了 2GB 限制。
  • 使用多个订阅服务器可能导致 MSDE 2000 超载和节流限制。

许可问题

在独立模式下使用 MSDE 2000 时不需要任何许可,但在将其用作涉及常规 SQL Server 版本的复制拓扑的一部分时,如果服务器处于与“每处理器”模式相对的“每客户”模式,则每个 MSDE 2000 订阅服务器都必须有客户端访问许可证 (CAL)。

有关 SQL Server 许可的详细信息,请访问下面的 Microsoft 网站:
http://www.microsoft.com/sql/howtobuy/SQL2KLic.doc

使用 MSDE 2000 管理复制

在常规 SQL Server 版本中,可以使用 SQL Server 企业管理器来管理复制。创建复制和订阅的任务通常使用 SQL Server 企业管理器中的复制用户界面执行。由于 MSDE 2000 不含 SQL Server 企业管理器,因此必须使用自定义程序来管理复制。如果在任意一台计算机上都可以使用 SQL Server 企业管理器,而且可以在 SQL Server 企业管理器中注册 MSDE 2000,那么您可以使用 SQL Server 企业管理器管理复制。

如前所述,MSDE 2000 可用作发布服务器或订阅服务器,大多数情况下是用作订阅服务器。以下章节介绍如何创建和管理 MSDE 2000 订阅。

如何创建对 MSDE 2000 的订阅

有多种方法可以创建对 MSDE 2000 订阅服务器的订阅。下面的方法假设 MSDE 2000 未在任何 SQL Server 企业管理器中注册:
  • Windows 同步管理器
  • “复制”ActiveX 控件
  • 使用 SQL-DMO 复制对象管理复制
  • 使用 OSQL 命令行实用工具添加复制作业

Windows 同步管理器

Windows 同步管理器是一个实用工具,可在 Microsoft Windows 2000 和任何一台安装了 Microsoft Internet Explorer 5.0 的机器上使用。在使用快照复制、事务复制或合并复制时,可以使用此工具在 Microsoft SQL Server 2000 的各实例间同步或分发数据。有关 Windows 同步管理器的详细信息,请参考《SQL Server 2000 联机丛书》中的“Windows 同步管理器”主题。

注意:在使用 Windows 同步管理器时,只能创建匿名请求订阅。

要创建订阅,请按照下列步骤操作:
  1. 打开 Windows 同步管理器:依次单击开始程序附件,然后单击同步
  2. 在“新建订阅”窗口中有下列三个选项:(要手动添加订阅,请使用第三个选项。)
    • 浏览活动目录。
    • 附加 SQL Server 订阅数据库。
    • 手动指定发布和订阅信息。
  3. 在“创建匿名订阅”窗口中,键入订阅和发布信息。
  4. 单击确定,下次打开 Windows 同步管理器时,Microsoft SQL Server 2000 中即会显示订阅。
  5. 要同步订阅,请单击需要同步的订阅,然后单击同步??
注意:如果 Active Directory 中列出了发布,或者可以为发布创建可附加订阅,请使用前两个选项之一。有关 Active Directory 发布和可附加订阅的详细信息,请参阅《SQL Server 2000 联机丛书》中的“Active Directory 服务”和“附加订阅”主题。

创建了订阅之后,可以单击属性在 Windows 同步管理器中管理该订阅。通过执行以上操作,可以重新初始化订阅、拖动订阅以及执行其他更改。

有关 Windows 同步管理器的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
292442 INF:如何使用 Windows 同步管理器与请求订阅服务器

“复制”ActiveX 控件

多数情况下,MSDE 2000 用作用户计算机上部署的应用程序的服务器。在需要复制的情况下,可以在应用程序中使用“复制”ActiveX 控件管理对 MSDE 2000 订阅服务器的复制。

分发的复制可以使用复制 ActiveX 对象创建对合并发布、事务发布或快照发布的订阅。此外,可以使用这些对象的方法和属性来管理此类订阅。例如,如果要部署一个 Microsoft Visual Basic 应用程序,并且必须将数据复制到运行 SQL Server 的主服务器上,可以在创建订阅的应用程序中加入一段代码,然后执行同步。

要查看说明如何使用“复制”ActiveX 控件创建和管理对事务复制和快照复制的订阅的示例应用程序,请参阅《SQL Server 2000 联机丛书》中的“使用 ActiveX 控件开发复制应用程序”主题。

使用 SQL-DMO 复制对象管理复制

SQL 分布式管理对象 (SQL-DMO) 是一个封装 Microsoft SQL Server 数据库和复制管理的对象集合。可以使用 Microsoft Visual C++ 或 Microsoft Visual Basic 创建一个应用程序,然后使用 SQL-DMO 对象创建和管理复制。

有关 SQL-DMO 和使用 SQL-DMO 开发应用程序的详细信息,请参阅《SQL Server 2000 联机丛书》中的“开发 SQL-DMO 应用程序”主题。

使用 OSQL 命令行实用工具添加复制作业

OSQL 是 MSDE 2000 安装附带的命令行实用工具。可以使用此工具连接到 SQL Server 并运行查询和脚本。 有关 OSQL 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
325003 如何使用 Osql 工具管理 SQL Server 桌面引擎 (MSDE 2000)
此外,可以使用 Transact-SQL 语句直接创建对 SQL Server 发布的请求订阅。使用存储过程创建订阅时,会在订阅服务器上创建一个作业。由于 MSDE 2000 不含客户端工具,因此必须使用存储过程停止和启动作业。

注意:本示例假设订阅是匿名的,且用于合并发布。
  1. 在 MSDE 2000 订阅服务器中,使用 OSQL 连接到订阅数据库。
  2. 使用 sp_addmergepullsubscription 存储过程添加匿名订阅。
  3. 使用 sp_addmergepullsubscription_agent 存储过程添加合并代理程序作业。
  4. 使用 sp_start_job 存储过程启动作业。
sp_addmergepullsubscription @publication =  'pubs',@publisher =  'fastnfurious'  ,@publisher_db =  'pubs'  
,@subscriber_type =  'anonymous' 
 
sp_addmergepullsubscription_agent @name =  'MSDE Sub'  ,@publisher =  'fastnfurious' ,@publisher_db = 'pubs'
,@publication = 'pubs' ,@publisher_security_mode =  0,@publisher_login =  login,@publisher_password =  'strongpassword' 
,@subscriber =  'gash2ksrv'  ,@subscriber_db = 'sub'  ,@subscriber_security_mode =  0  ,@subscriber_login =  'login'  
,@subscriber_password =  'strongpassword'  ,@distributor =  'fastnfurious' 
,@distributor_security_mode =  0,@distributor_login =  'login'

sp_start_job @job_name ='MSDE Sub'
				

注意:此代码不含任何控制作业调度的参数。此外,也不会创建任何过程以确定作业状态。如果希望作业状态写入事件日志,请使用 sp_update_job 存储过程修改作业,然后设置 @notify_level_eventlog 参数。

有关这些存储过程的详细信息,请参阅以下《SQL Server 2000 联机丛书》中的主题:
  • “sp_addmergepullsubscription”
  • “sp_addmergepullsubscription_agent”
  • “sp_start_job”
  • “sp_update_job”
上文描述的方法介绍了多种管理 MSDE 2000 订阅的方式。除这些方法以外,如果 MSDE 2000 订阅服务器已在 SQL 企业管理器中注册,可以像管理任何其他 SQL Server 实例一样管理 MSDE 2000 订阅服务器(发布服务器)。

管理分发服务器和发布服务器

MSDE 2000 可用作发布服务器和分发服务器。

在 MSDE 2000 中创建分发服务器和发布服务器的步骤与在 SQL Server 的常规版本中的创建步骤类似:
  1. 如果服务器已在 SQL 企业管理器中注册,可以使用“复制向导”配置分发服务器和发布服务器。有关详细信息,请参阅《SQL Server 2000 联机丛书》中的“复制向导”主题:
  2. 如果客户端工具不可用,可以使用 OSQL 命令行实用工具和存储过程或者 SQL-DMO 来配置分发服务器和发布服务器。

参考

要下载《SQL Server 2000 联机丛书》的更新版本,请访问下面的 Microsoft 网站:
http://www.microsoft.com/downloads/details.aspx?FamilyId=A6F79CB1-A420-445F-8A4B-BD77A7DA194B&displaylang=zh-cn#filelist
有关如何使用 Microsoft Visual Basic .NET 的复制 ActiveX 控件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
319648 如何使用 Visual Basic .NET 对 SQL 快照和 SQL 分发控件进行编程
319647 如何使用 Visual Basic .NET 对 SQL 合并控件进行编程
有关 MSDE 2000 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
319930 如何连接到 Microsoft 桌面引擎
241397 如何使用 Transact-SQL 备份 Microsoft 数据引擎数据库

属性

文章编号: 324992 - 最后修改: 2005年5月10日 - 修订: 2.1
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 64-bit Edition
关键字:?
kbhowtomaster KB324992
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com