对于 SQL Server 2000 Service Pack 1 的说明: 2001 年 5 月 30 日

文章翻译 文章翻译
文章编号: 889553
重要 本文包含有关修改注册表的信息。在修改注册表之前,请确保备份,并且确保您了解如何在发生问题时还原注册表。有关如何备份、 还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表的说明
展开全部 | 关闭全部

本文内容

概要

Microsoft SQL Server 2000 Service Pack 1 (SP1) 提供的 SQL Server 2000年安装数据库组件的更新。本文包括以下信息:
  • 如何确定安装了哪个版本的 SQL Server 和 AnalysisServices
  • 如何下载并解压缩 SQL Server 2000 SP1
  • 如何安装 SQL Server 2000 SP1
  • 如何重新发布 DatabaseComponents SP1 的客户端组件
  • 当您运行 thisservice 包时可能出现的问题有关的信息
  • 单独的 Englishqueries 的一种增强安全性的信息

内容

简介

在此版本的 Microsoft SQL Server 2000 Service Pack 1 (SP1) 三个部分中提供:
  • 数据库组件 SP1 提供针对 SQL Server 2000 中,不包括 SQLServer 2000 桌面引擎的实例的实例的 databasecomponents 的更新。数据库组件 SP1 包括升级到您执行以下内容:
    • 数据引擎
    • 数据库客户端工具和实用程序,例如 SQL Server 企业管理器和 osql
    • 数据库客户端连接组件,如 Microsoft OLE DB 提供程序对 SQL Server 2000年,SQL Server 2000年的 ODBC 驱动程序和客户端网络库
  • Analysis Services SP1 提供 SQL Server2000 Analysis Services 组件的 SQL Server 2000年安装,下面的 includingthe 的更新:
    • Analysis Services
    • Analysis Services 的客户端组件如分析管理器和 Microsoft OLE DB 访问接口 Analysis Services
    • 数据库客户端连接组件,如 Microsoft OLE DB 提供程序对 SQL Server 2000年,SQL Server 2000年的 ODBC 驱动程序和客户端网络库
  • 桌面引擎 SP1 提供针对 SQL Server 2000年桌面引擎的实例的 databasecomponents 的更新。Thesecomponents 如下所示:
    • 数据引擎
    • 数据库客户端连接组件,如 Microsoft OLE DB 提供程序对 SQL Server 2000年,SQL Server 2000年的 ODBC 驱动程序和客户端网络库
SQL Server 2000 SP1 的下列三个部分都可以单独应用在以下方面:
  • 使用数据库组件 SP1 而不升级您的 Analysis Services 组件或实例的 SQL Server 2000年桌面引擎升级您的 databasecomponents。
  • 使用 Analysis Services SP1 升级您分析 Servicescomponents 而不升级桌面引擎或 databasecomponents 的实例。
  • 使用桌面引擎 SP1 升级的 DesktopEngine 实例,而不必升级 Analysis Services 或其他版本 ofSQL Server 2000 的实例。有关安装桌面引擎,seethe "安装桌面引擎 SP1"本文后面的部分。
但是,若要升级数据库组件和 Analysis Services 组件,您必须应用数据库组件 SP1 和 Analysis Services SP1。

安装数据库组件 SP1

数据库组件 SP1 安装程序自动检测到的 SQL Server 2000年的版本是在正在升级的 SQL Server 2000年的实例。安装程序只能升级该实例已安装的组件。例如,到一台计算机正在运行 SQL Server 2000年标准版应用 service pack 时,它不会不升级组件仅包含与 SQL Server 2000年企业版。

数据库组件 SP1 可以应用于单个默认实例或命名的实例的 SQL Server。如果升级的 SQL Server 2000年的多个实例时,您必须为每个实例应用 SP1。当您升级具有一个或多个 SQL Server 2000年实例的计算机上的一个实例时,所有工具都升级到 SP1。没有工具的计算机上的每个实例的单独副本。

删除 SQL Server 2000 SP1

安装服务包后,它会更改系统表中的进行维护。由于这些更改,无法方便地删除 SQL Server 2000 SP1。若要还原到生成您正在运行您在安装 SP1 之前,您必须删除并重新安装 SQL Server 2000年。SQL Server 2000年中删除之前,分离数据库。重新安装 SQL Server 2000年后,请将它们重新连接。使用sp_attach_dbsp_detach_db 都有关的信息,请参阅 SQL Server 联机丛书。

已重新安装 SQL Server 2000年之后,必须执行以下操作:
  • 重新创建所需的登录。
  • 重新创建计划的任务依赖于 themsdb 数据库中的信息。
  • 重复在 model 数据库中所做的任何更改。
  • 如果使用复制,请重新配置复制。
有关 SQL Server 2000 SP1 修复程序的其他信息 有关此服务包中包含的修复程序的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290212 在 SQL Server 2000 Service Pack 1 (第 1 2 个) 中得到解决的 bug 的列表
本文中列出的每个修补程序包含一个指向知识库文章中描述的修补程序解决的问题。

QFE 修复程序

如果您接收到 QFE 修复在 2001 年 5 月 1 日之后的修补程序不会包括在 SQL Server 2000 SP1 中。请与您的主要支持提供商有关 QFE 修复程序和 SQL Server 2000 SP1。

确定当前版本的 SQL Server

若要确定已安装的 SQL Server 2000年的版本,请键入 选择 @@VERSION 在命令提示如果您使用 osql 或 isql 实用工具。如果您使用 SQL 查询分析器,请键入 选择 @@VERSION 在查询窗口中。下表显示了选择 @@VERSION命令报告的版本字符串和 SQL Server 2000年版本数之间的关系。
收起该表格展开该表格
@@VERSIONSQL Server 2000年版本
8.00.194SQL Server 2000年发行版本
8.00.384数据库组件 SP1
如果您不确定您正在运行的 SQL Server 2000年的是哪个版本,查看最后一行中选择 @@VERSION命令返回的输出:
Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 1)
Enterprise Evaluation Edition on Windows NT 5.0 (Build 2195: Service Pack 1)
Developer Edition on Windows NT 5.0 (Build 2195: Service Pack 1)
Personal Edition on Windows NT 5.0 (Build 2195: Service Pack 1)
Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 1)
Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 1)

确定当前版本的 Analysis Services

若要确定已安装的 Analysis Services 的版本,请执行以下步骤:
  1. 单击开始、 指向程序文件SQL Server 2000年Analysis Services,然后单击AnalysisManager
  2. 在 Analysis Manager 树中,用鼠标右键单击AnalysisServers,然后单击关于 Analysis Services
下表显示了您拥有的 Analysis Services 的版本。
收起该表格展开该表格
关于帮助Analysis Services 版本
8.0.194SQL Server 2000 Analysis Services 发行版本
8.0.382Analysis Services SP1

下载并解压缩 SQL Server 2000 SP1

SQL Server 2000 SP1 分发这两种格式:
  • 在 CD 上
  • 中三以下自解压文件,可以从 Internet bedownloaded:
    • SQL2KSP1.exe: 数据库组件 SP1
    • SQL2KASP1.exe: Analysis Services SP1
    • SQL2KDeskSP1.exe: 桌面引擎 SP1
自解压文件用于生成一组计算机上目录和文件。这些目录和文件是相同的 SQL Server 2000 SP1 光盘上目录和文件集。如果您下载 SQL Server 2000 SP1,必须提取要构建服务包目录,然后才能运行安装程序的文件。

安装过程是相同的 SQL Server 2000 SP1 光盘和提取的 SQL Server 2000 SP1 文件。

注意一些服务包中的文件是系统文件。因此,您不能查看它们除非您选中了显示所有文件复选框。要选择显示所有文件复选框,请执行以下操作:
  1. 在 Microsoft Windows 资源管理器中,在视图菜单上,单击选项
  2. 单击视图选项卡,然后单击 toselect显示所有文件复选框。
若要下载在本节前面列出的文件之一,请在正在运行的实例的 SQL Server 2000,要安装此服务包的计算机上自解压的文件保存到文件夹。从该文件夹中,运行该文件。该自解压程序会提示您为要保存的服务包文件的文件夹的名称。

在本地硬盘上,您将需要大约是三倍的自解压的文件大小的可用空间。这一领域包括空间来存储空间来存储提取的服务包文件,文件,自解压程序本身所需的临时工作空间。

您可以重命名组件解压缩后提取文件的文件夹。但是,请确保该文件夹名称不包含空格字符。在本节前面列出的每个文件,可以使用相同的目标文件夹。它们不会覆盖或互相干扰。

设置 SQL Server 2000 SP1

要在安装 SQL Server 2000 SP1,请执行以下操作,具体取决于您要安装的组件:
  • 要应用的数据库组件 SP1 和 AnalysisServices SP1,请按照本文中下面的 sectionslater 中描述的步骤操作:
    • "备份您的 SQL Server 数据库"
    • "备份 Analysis Services 数据库"
    • "确保系统数据库具有足够的可用空间"
    • "服务和应用程序在运行 SQL Server 2000 SP1 安装程序之前停止"
    • "安装数据库组件 SP1"
    • "安装 SP1 的 Analysis Services"
    • "重新启动服务"
    • "重新启动应用程序"
  • 要应用到一台计算机仅数据库组件 SP1,isrunning 的服务器和客户端组件,按照本文后面的以下各节中的 aredescribed:
    • "备份您的 SQL Server 数据库"
    • "确保系统数据库具有足够的可用空间"
    • "服务和应用程序在运行 SQL Server 2000 SP1 安装程序之前停止"
    • "安装数据库组件 SP1"
    • "安装 SP1 的 Analysis Services"
    • "重新启动服务"
    • "重新启动应用程序"
  • 要应用到一台计算机仅数据库组件 SP1 的 isrunning 仅数据库客户端组件,按照本文后面的以下各节中的 aredescribed:
    • "安装数据库组件 SP1"
    • "重新启动服务"
    • "重新启动应用程序"
  • 若要应用仅 Analysis Services SP1,请按照本文内下文中的以下各节中所述步骤 thatare:
    • "备份 Analysis Services 数据库"
    • "服务和应用程序在运行 SQL Server 2000 SP1 安装程序之前停止"
    • "安装 SP1 的 Analysis Services"
    • "重新启动服务"
    • "重新启动应用程序"
    对于运行 theAnalysis 只服务客户端组件的计算机和 runningboth Analysis Services 客户端和服务器组件的计算机,请使用相同的步骤。
  • 若要应用计算机只有桌面引擎的 isrunning 仅桌面引擎 SP1,请按照本文内下文中的您执行以下各节所述的步骤:
    • "服务和应用程序在运行 SQL Server 2000 SP1 安装程序之前停止"
    • "安装桌面引擎 SP1"
  • 要应用于服务器群集的服务包,请按照本文后面的"安装 SQL Server 2000 SP1 上 servercluster"部分所述的 thesteps
注意SQL Server 安装程序不能用于远程安装 SQL Server 2000 SP1。

在安装 SQL Server 2000 SP1 之前,请确保您的数据库和文件组可写并且正在运行 SQL Server 安装程序的用户帐户具有访问数据库的权限。如果您不这样做,则安装将失败。在 Sqlsp.log 文件中为 SQL Server 或 Analysis Services 的 Olapsp.log 文件中记录了失败的原因。此外,如果数据库不是可写的则必须禁用日志传送应用 service pack。

您还可以使用系统管理服务器正在运行 Windows NT Server 4.0 操作系统使用程序包定义文件 (Smssql2ksp1.pdf 文件) 的多台计算机上自动安装 SQL Server 2000 SP1。程序包定义文件自动创建系统管理服务器的 SQL Server 包。然后可以分发和运行系统管理服务器的计算机上安装 SQL Server 包。Sms2kdef.bat 文件是计算机的一个批处理文件,检测到的操作系统和运行适当的安装程序的版本。

注意法语语言版本的 Windows NT 4.0 上安装 SQL Server 2000 SP1 之前,请阅读并按照下面 Microsoft 知识库中相应的文章:
259484 CryptEncrypt 和 CryptDecrypt 函数也可通过在 Windows 2000 上的法语区域设置支持

备份您的 SQL Server 数据库

在安装 service pack 之前,备份主机数据库和 msdb 数据库。安装服务包更改主数据库和 msdb 数据库。所做的更改,使其与 SQL Server 2000年的 SP1 之前的版本不兼容。如果您决定重新安装 SQL Server 2000 无 SP1,这些备份是必需的。

应用 SQL Server 2000 SP1 不影响任何其他数据库。

Analysis Services 数据库备份

在安装 service pack 之前,通过使您的 Microsoft 分析 Services\Data 文件夹的备份副本备份 Analysis Services 数据库。默认情况下,此文件夹安装在 C:\Program 文件的文件夹。如果您有不迁移到 SQL Server 的 Analysis Services 资料库,使 Msmdrep.mdb 文件的备份副本。此文件位于 Microsoft 分析 Services\bin 文件夹中。若要保存您 Analysis Services 的注册表项,请运行注册表编辑器中,并使用注册表菜单上的导出注册表文件项导出
HKEY_LOCAL_MACHINE\SOFTWARE\OLAP Server
为要备份的文件的子项。

确保系统数据库具有足够的可用空间

如果尚未选择主数据库和 msdb 数据库的自动增长选项,数据库必须具有至少 500 千字节 (KB) 的可用空间。以验证它们有这一领域,运行sp_spaceused系统存储过程,用于 master 数据库或 msdb 数据库。如果在这两个数据库中的未分配的空间小于 500 KB,请增加数据库的大小。有关详细信息,请参阅 SQL Server 联机丛书中的"扩展数据库"。

如果已为 master 数据库和 msdb 数据库的 SQL Server 2000年或在其中应用了 SQL Server 2000 SP1 的桌面引擎实例中选择自动增长选项,您可以跳过此步骤。

若要验证已在 SQL Server 2000年中选择此选项,请打开 SQL Server 企业管理器,用鼠标右键单击该数据库的图标,然后单击属性。验证文件自动增长复选框被选中。

要验证桌面引擎中已选择了此选项,请发出以下 SQL 语句:
  • sp_helpdb 母版
  • sp_helpdb msdb
在这些语句中的输出中,验证列中的增长不是 0。

停止服务和应用程序之前运行 SQL Server 2000 SP1 安装程序

可以将 SQL Server 2000 SP1 应用而不需要关闭服务。如果您不关闭服务,安装程序将重新启动计算机。

来运行安装程序,而无需重新启动计算机,请停止下列服务和应用程序之前应用服务包:
  • Microsoft 分布式事务处理协调器 (MS DTC) 和 Microsoft 搜索、 MSSQLServer,MSSQLServerOLAPService 和 SQLServerAgentservices。

    注意还必须停止这些服务,对于每个命名实例。例如,MSSQL$ NamedInstance。
  • Microsoft 组件服务,Microsoft 消息队列,以及 Microsoft COM 事务系统集成商。
  • 所有应用程序,包括控制面板。此步骤建议,但不是必需的。
在群集环境中的服务,您不能将其停止。有关详细信息,请参阅本文后面的"在服务器群集上的安装"一节。

安装数据库组件 SP1

从下列位置之一运行 Setup.bat 脚本:
  • 包含从 Sql2ksp1.exe 提取的服务 packfiles 的目录
  • 在 SQL Server 2000 SP1CD 服务包目录
Setup.bat 将打开安装程序对话框。对话框将提示您输入信息,如您是否要使用 SQL Server 身份验证或 Windows 身份验证。如果选择 SQL Server 身份验证,则必须提供安装程序使用 sa 登录帐户的密码。如果您选择 Windows 身份验证,您必须被登录到 Windows 时,通过使用 Windows 登录帐户运行安装程序。此登录帐户必须是 sysadmin 固定服务器角色实例的 SQL Server 2000年或升级您的桌面引擎的一部分。

安装程序然后执行以下操作:
  • 使用 SP1 文件替换现有的 SQL Server 2000年或桌面 Enginefiles。
  • 运行多个事务处理性的 SQL 脚本文件,来更新 systemstored 的过程。
  • 显示身份验证模式对话框框,如果它检测到安装 sa 登录帐户与 ablank 密码中使用混合模式身份验证。离开 sa 登录密码 blankprovides 用户可以方便地管理访问 SQL Server 或桌面 Engine.You,可以帮助保护您的系统,通过强制执行的 sa 密码,或通过 usingWindows 身份验证。
身份验证模式对话框不会显示安装的当前设置。对话框中的默认设置如下:
  • 在计算机上运行 Windows 98 和 Windows MillenniumEdition,身份验证模式对话框中设置为 MixedMode 身份验证,并请求您指定的密码 sa logonaccount。混合模式身份验证在这些操作系统上的,issupported 是唯一的身份验证模式。如果您指定密码时,Setupprogram 将更改 sa 登录密码。如果密码为空,安装程序将连接并不会更改该密码。
  • 在运行 Windows NT 4.0 或 Windows 2000 的计算机,安装程序将为 Windows 身份验证。使用对话框中切换 toWindows 身份验证模式或混合模式下使用是 notblank sa 登录密码。
身份验证模式或 sa 登录帐户的密码更改之前,请确保此更改不会影响现有的应用程序。例如,如果从混合模式身份验证更改为 Windows 身份验证时,将身份验证模式更改为使用 Windows 身份验证之前,无法连接尝试通过使用 SQL Server 身份验证连接的现有应用程序。此外,如果您更改 sa 登录密码,应用程序或使用旧密码的管理进程无法连接之前他们已经被更改为使用新密码。

安装程序会将它在运行它的计算机的 Windows 目录中 Sqlsp.log 文件执行的操作的记录。

Analysis Services SP1 的安装

要安装 Analysis Services SP1,请运行 Setup.exe,从以下位置之一:
  • 从 SQL2KASP1.exe 目录提取 Analysis Services SP1 包含文件中的 Msolap\Install 子目录
  • SP1 光盘上的 Msolap\Install 目录中。
Setup.exe 将打开安装程序对话框。有关信息,提示您,然后安装程序完成安装。

安装桌面引擎 SP1

若要升级现有安装桌面引擎,运行 Setup.exe,从以下位置之一:
  • MSDE 子目录中包含来自 Sql2kdesksp1.exe 的 theextracted 服务包文件的目录
  • 在 SQL Server 2000 SP1CD MSDE 子目录
您必须为桌面引擎升级的每个实例应用正确的修补程序文件。修补程序文件是用于将应用此 service pack.msp 文件扩展名的文件。如果您知道安装桌面引擎所使用的安装软件包,修补程序从指定文件在命令提示符下的使用/p选项。如果您不知道所使用的安装包,请键入 SQLRUN 之后/p选项。使用 SQLRUN 关键字,安装程序选择正确的修补程序文件,如果满足以下条件:
  • 所有.msp 文件都位于 namedSetup 文件夹中。此文件夹是直接位于包含 Setup.exe 的文件夹下。
  • 在命令提示符下指定的目标桌面引擎安装的实例名称,是否它不是默认实例。
下面的示例会在调用一个命名实例作为修补程序的安装运行安装程序 MyInstance:
Setup.exe /p SQLRUN INSTANCENAME=MyInstance
注意不要使用开始和结束引号的实例名称。

此外可以在 Setup.ini 文件或另一个设置文件中指定实例名称。有关详细信息,请参阅"SQL Server 2000年桌面引擎安装"SQL Server 联机丛书中。

如果安装程序找不到正确的修补程序文件,您将收到一条错误消息。

安装桌面引擎的新实例,应用了 SQL Server 2000 SP1 之后

请按照以下步骤安装桌面引擎的一个新实例,应用了 SQL Server 2000 SP1 之后。
  1. 下列文件的文件扩展名改为.rdl 文件扩展名 \Program Files\Microsoft SQLServer\80\Tools\Binn\Resources\1033 目录中:
    • semnt.rll
    • sqlsvc.rll
  2. 下列文件的文件扩展名改为 \Program Files\Microsoft SQLServer\80\Tools\Binn 目录中的.dld 文件扩展名:
    • Semnt.dll
    • Sqlsvc.dll
    • Sqlresld.dll
  3. 安装桌面引擎无 SP1。
  4. 更改为.rll \Program Files\Microsoft SQLServer\80\Tools\Binn\Resources\1033 目录中的 Semnt.rdl andSqlsvc.rdl 文件的文件扩展名。
  5. 更改 Semnt.dld,Sqlsvc.dld,文件扩展名为.dll 的 \Program Files\Microsoft SQLServer\80\Tools\Binn 目录中的 Sqlresld.dld 文件。
新安装的桌面引擎的实例将 SP1。

重新启动服务

当安装程序完成后时,它可能会提示您重新启动系统。在系统重新启动后或在安装程序完成而不请求重新启动计算机后,使用控制面板中的服务应用程序,以确保运行 MS DTC 的 Microsoft 搜索、 MSSQLServer,MSSQLServerOLAPService 和 SQLServerAgent 的服务。升级后的主数据库和 msdb 数据库备份并重新启用日志传送。

重新启动应用程序

重新启动应用程序之前运行 SQL Server 2000 SP1 安装程序关闭。

在服务器群集上安装 SQL Server 2000 SP1

若要在服务器群集上安装 SQL Server 2000 SP1:
  • 从拥有 groupthat 包含的虚拟服务器,您要升级的节点上运行 SQL Server 2000 SP1。此 willinstall 服务包的所有群集节点上的文件。
  • 安装程序对话框中,输入要升级虚拟服务器的名称。
  • 在安装过程中保持联机,群集的所有节点。Thisguarantees 将升级应用到群集中的每个节点。
安装程序会重新启动该群集。

在复制服务器上安装 SQL Server 2000 SP1

应用此服务包所有 SQL Server 2000年复制拓扑中的参与者,这些参与者都包括发布服务器、 分发服务器和订阅服务器。按以下顺序复制服务器之间部署 SQL Server 2000 SP1:
  • 分发服务器上,如果独立于发布服务器
  • 发布服务器
  • 订阅服务器
注意在大多数情况下,分发服务器和发布服务器是同一台服务器上。在合并复制中尤其如此。分发服务器和发布服务器被升级一次。

在合并复制中,分发数据库仅用于存储代理程序历史记录。通常情况下,分发数据库驻留在已发布的数据库驻留在同一台计算机上。但是,您可能还有用于合并复制的远程分发数据库在站点要集中代理历史记录日志。

您不能立即升级复制拓扑中的所有服务器。但是,复制操作正在运行的 SQL Server 2000年实例的服务器和此服务包之间通常不会受到影响。例外情况包括在"一个新的 MaxCmdsInTran 参数中日志读取器代理程序"按照本文后面的部分。

卸载 SQL Server 2000 SP1

若要恢复到 SQL Server 或 Analysis Services 的 SP1 之前的版本,必须执行以下操作:
  • 删除 SQL Server 2000 SP1。
  • 设置 SQL Server 2000年。
  • 还原 master 数据库,msdb 数据库和 anyuser 数据库。
请按照以下步骤还原到 SQL Server 或 Analysis Services 的 SP1 之前的版本:
  1. 备份所有用户数据库。
  2. 在控制面板中,双击添加/删除程序,单击您想要删除的 SQL Server 的实例,然后单击删除
  3. 最初是从 CD 或位置随时安装 SQL Server 2000年安装从 SQL Server。
  4. 从 thelast 应用 SQL Server 2000 SP1 之前创建的备份中还原 master 数据库和 msdb 数据库。
  5. 恢复用户数据库。

无人参与的安装

在无人参与模式下的计算机正在运行的 SQL Server 2000年的实例可以应用数据库组件 SP1。数据库组件 SP1 光盘包含可用于执行无人参与的 SP1 安装的.iss 文件。这些文件位于 cd 的根目录中。这些文件可用于执行不同类型的安装,请按如下所述:
  • 使用 Sql2kdef.iss adefault theWindows NT 4.0 操作系统的 Windows 2000 运行的 SQL Server 2000年实例应用数据库组件 SP1。相应的批处理文件,使用 isSql2kdef.bat。
  • 使用 Sql2knm.iss 到 namedinstance 的 Windows 2000 或 windows Nt 4.0 操作系统运行的 SQL Server 2000年应用数据库组件 SP1。您必须更改.iss 文件 toidentify 正在升级的实例的实例名称。
  • 使用 Sql2ktls.iss atools 仅安装到应用数据库组件 SP1。此文件可用于安装,而无需 anymodifications。
  • 使用 Sql2k9x.iss 在运行 Windows 操作系统版本或 Windows 98operating 系统上应用数据库组件 SP1。您必须更改实例名称来标识 instancethat 正在进行升级。
  • 使用 Sql2kcli.iss 应用到客户的计算机运行 Windows 95operating 系统上的组件安装数据库组件 SP1。

重新分发数据库组件 SP1 客户端组件

此服务包包括一个 Sqlredis.exe 和 Redist.txt 的版本名为的自解压文件。这些文件是数据库组件 SP1 中。默认情况下,运行 Sqlredis.exe 时,它将采取以下措施:
  • 从 Microsoft 数据访问 Components(MDAC) 2.61 运行 Mdac_typ.exe。这将安装 MDAC 2.61 核心组件。它还安装了 SQL Server 和桌面引擎客户端连接组件 thatare 此服务包中包含的 theversions。
  • 设置 Microsoft Jet ODBC 驱动程序和 connectivitycomponents。
您可以重新发布相同的条款和 Redist.txt 文件包含在此服务包中所述的条件下的 Sqlredis.exe 文件。

文档注释

本节描述在运行此服务包时可能出现的问题。这些问题适用于运行 service pack 升级到 SQL Server 2000年。它们不会导致从该服务包中包含的修复程序。

数据库组件 SP1 中使用中文、 日语或朝鲜语字符

如果您正在运行 Windows NT 4.0 或 Windows 98 操作系统的服务器上安装数据库组件 SP1,您升级到 Windows 2000,则 Windows 2000 升级替换某些系统文件。这些系统文件所需的排序中文、 日语或朝鲜语字符。如果您使用 SQL Server 数据库中的中文、 日语或朝鲜语字符,请重新运行 Sqlredis.exe 随 SQL Server 2000 SP1 后完成升级到 Windows 2000 的版本。有关运行 Sqlredis.exe 的详细信息,请参阅 "重新分发数据库组件 SP1 客户端组件" 一节。

注意您无需在客户端计算机上或没有包含简体中文、 日语或朝鲜语字符的数据库的服务器上重新运行 Sqlredis.exe。

元数据浏览器中导出在 Unicode 中的元数据

警告如果注册表编辑器使用不当,可能会导致严重的问题,可能需要您重新安装操作系统。注册表编辑器使用不当所产生的问题,Microsoft 不能保证您可以解决。使用注册表编辑器需要您自担风险。

元数据浏览器现在将导出在 Unicode 中的基于 XML 的元数据。在 SQL Server 2000 SP1 之前, 浏览器输出 ANSI 代码。但是,ANSI 代码不支持非英文字符。此功能更改为对用户是透明。截止到此 SQL Server 2000 SP1 版本中,导出的数据始终表示为 Unicode。

您仍可以通过设置下面的注册表子项,以零值导出 ANSI 代码中:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Repository\Engine\XMLExport
下面列出了您可以设置此注册表子项的值:
  • NOOBJID = 1
  • NOHEADER = 2
  • 缩进 = 4
  • UNICODE = 8
  • LOGUNMAPPEDTAGS = 16
  • EXPORTBASE = 32
有关每个标志的详细信息,请参阅 SQL Server 联机丛书中的"IExport::Export 方法"。

远程分区

已在其上安装 SQL Server 2000 SP1 的本地服务器上创建远程分区时,该远程服务器必须使用域用户帐户具有本地服务器上的父多维数据集的完全访问权限。在本地服务器上 OLAP 管理员组的成员的任何用户帐户都具有完全访问权限。

此外,如果本地服务器在其上安装 SQL Server 2000 SP1,远程服务器还必须具有 SQL Server 2000 SP1 安装在其上创建或管理远程分区。

哈希团队中移除

在此 service pack,哈希的团队已被删除。由于 SQL Server 2000年的某些增强功能,而哈希团队不再产生的性能优势,它们提供了 SQL Server 7.0 中。此外,删除希团队将使 SQL Server 2000年更稳定。因此,查询优化器不能再使用哈希团队生成查询计划。

有时,删除希团队,这种情况可能会导致处理速度更慢的查询。分析此类查询,以便查看是否创建返回的查询性能,向其上一级的更适当的索引。

相似性掩码交换机添加

两个相似性掩码交换机已添加到此服务包。

相似性掩码 I/O 开关

使用此服务包,您可以指定要运行的磁盘 I/O 操作的线程所使用的 Cpu。使用关系掩码选项,必须使用此开关。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
298402 了解如何设置 SQL Server I/O 关系选项
相似性掩码连接交换机

使用此服务包,您可以配置允许系统进行的虚拟接口体系结构 (VIA) 将 SQL Server 连接从某些网卡处理器或处理器集绑定。使用关系掩码选项,则必须使用此开关。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
299641 了解如何配置 SQL Server 连接关联掩码

Analysis Services 的增强功能

SQL Server 2000 SP1 中包括以下 Analysis Services 增强功能:
  • 已更新的 Analysis Services 可再发行组件 clientsetup
  • 支持可用于第三方数据挖掘 algorithmproviders
  • Analysis Services 可以安装在计算机上的 haveupdated 客户端文件

Analysis Services 的可再发行组件的客户端安装程序更新


Analysis Services SP1 中包括下列客户机可再发行组件安装程序的更新的版本:
  • PTSLite.exe
  • PTSFull.exe
在您的应用程序中使用这些更新的客户端设置来防止或解决使用 Analysis Services 和 Microsoft Office XP 时,您可能会遇到的客户端的安装问题。

启用第三方数据挖掘算法提供程序的支持


Analysis Services SP1 现在包括添加第三方数据挖掘算法提供程序的支持。有关开发数据挖掘算法提供程序的详细信息,请参阅 OLE DB 数据挖掘资源工具包。该工具包包括示例数据挖掘算法提供程序代码。其他信息,请访问下面的 Microsoft 网站:
http://www.Microsoft.com/data
Analysis Services 与更新后的客户端文件的计算机上的安装


如果您在包含更新的客户端文件例如,SQL Server 2000 SP1 或 Office XP 的计算机上安装 SQL Server 2000 Analysis Services,您必须应用 Analysis Services SP1,以确保客户端能够正常工作,您可以浏览多维数据集。

复制增强功能

以下复制增强功能包括在 SQL Server 2000 SP1:
  • 更新自定义存储过程中的事务复制
  • 在 uniquecolumns 上的事务性复制更新
  • 限制并发快照处理从中移除
  • 事务复制脚本 customprocedures
  • 合并复制到基于保持期的元数据清除
  • 从 SQL Server 的不同版本的已复制数据库的还原操作
  • 新的-MaxCmdsInTran参数,日志读取器代理程序

自定义存储过程中的事务复制更新


事务复制安装过程中,订阅数据库中创建用于插入、 删除和更新操作的自定义存储的过程。无论多少列受到UPDATE语句,该更新订阅表中存储过程更新所有列。此更新将设置回发到自身不更改任何列。通常情况下,此操作会导致任何问题。但是,如果任一这些列编制索引后,重置列可能会变得昂贵。

如果满足下列条件,索引的维护开销可能变得限制因素,在订阅服务器上应用更改时:
  • 您正在使用事务复制。
  • 在 subscriptiontable 上有多个索引。
  • 因为更改某些列值 ofupdates。
例如,订阅数据库正在使用的报告可能有许多更多的索引比发布数据库。动态生成UPDATE语句在运行时可能会提高性能。此更新包括已更改的列。因此,它将创建最佳更新字符串。

此服务包包括一个新的存储的过程, sp_scriptdynamicupdproc。此存储的过程生成自定义存储的过程在订阅服务器中用于动态生成 update 语句在运行时。但是,将在运行时动态生成的UPDATE语句而导致额外的处理。
sp_scriptdynamicupdproc

生成用于创建动态更新存储过程的创建过程语句。根据指示要更改的列的 MCALL 语法来动态构建UPDATE语句中的自定义存储过程。如果订阅表上的索引的数目不断增加,而且正在更改的列的数目很小,则使用此存储的过程。此存储的过程在发布服务器上的发布数据库上运行。

语法

sp_scriptdynamicupdproc [ @artid =] artid

参数

[@artid =]artid文章 id。artidint,无默认值。

结果集

返回结果集的一个 nvarchar(4000) 列组成。结果集完成创建过程语句用来创建自定义的存储的过程的窗体。

备注

在事务复制中使用的sp_scriptdynamicupdproc存储过程。默认的 MCALL 脚本逻辑包含在更新语句中的所有列。逻辑使用位图来确定已更改的列。如果未更改某一列,该列是重新设置为本身。这一过程通常会导致任何问题。如果该列索引,进行其他处理。动态方法包括已更改的列。包括已更改的列提供了最佳的更新字符串。但是,在运行时生成动态UPDATE语句时进行其他处理。我们建议您测试的动态和静态方法并选择合适的最佳解决方案。

权限

公共角色的成员才能运行sp_scriptdynamicupdproc存储过程。

示例

本示例创建一篇文章 (与artid设置为1) pubs 数据库中的作者表上。此示例指定UPDATE语句运行的自定义过程:
'MCALL sp_mupd_authors'
生成自定义存储的过程在订阅服务器上的分发代理程序通过在发布服务器上运行以下存储的过程执行:
EXEC sp_scriptdynamicupdproc @artid = '1'
The statement returns:

create procedure [sp_mupd_authors] 
  @c1 varchar(11),@c2 varchar(40),@c3 varchar(20),@c4 char(12),@c5 varchar(40),@c6 varchar(20),
  @c7 char(2),@c8 char(5),@c9 bit,@pkc1 varchar(11),@bitmap binary(2)
as

declare @stmt nvarchar(4000), @spacer nvarchar(1)
select @spacer =N''
select @stmt = N'update [authors] set '

if substring(@bitmap,1,1) & 2 = 2
begin
  select @stmt = @stmt + @spacer + N'[au_lname]' + N'=@2'
  select @spacer = N','
end
if substring(@bitmap,1,1) & 4 = 4
begin
  select @stmt = @stmt + @spacer + N'[au_fname]' + N'=@3'
  select @spacer = N','
end
if substring(@bitmap,1,1) & 8 = 8
begin
  select @stmt = @stmt + @spacer + N'[phone]' + N'=@4'
  select @spacer = N','
end
if substring(@bitmap,1,1) & 16 = 16
begin
  select @stmt = @stmt + @spacer + N'[address]' + N'=@5'
  select @spacer = N','
end
if substring(@bitmap,1,1) & 32 = 32
begin
  select @stmt = @stmt + @spacer + N'[city]' + N'=@6'
  select @spacer = N','
end
if substring(@bitmap,1,1) & 64 = 64
begin
  select @stmt = @stmt + @spacer + N'[state]' + N'=@7'
  select @spacer = N','
end
if substring(@bitmap,1,1) & 128 = 128
begin
  select @stmt = @stmt + @spacer + N'[zip]' + N'=@8'
  select @spacer = N','
end
if substring(@bitmap,2,1) & 1 = 1
begin
  select @stmt = @stmt + @spacer + N'[contract]' + N'=@9'
  select @spacer = N','
end
select @stmt = @stmt + N' where [au_id] = @1'
exec sp_executesql @stmt, N' @1 varchar(11),@2 varchar(40),@3 varchar(20),@4 char(12),@5 varchar(40),
                             @6 varchar(20),@7 char(2),@8 char(5),@9 bit',@pkc1,@c2,@c3,@c4,@c5,@c6,@c7,@c8,@c9

if @@rowcount = 0
   if @@microsoftversion>0x07320000
      exec sp_MSreplraiserror 20598

在运行此存储的过程后,可以使用生成的脚本手动在订阅服务器上创建的存储的过程。
唯一的列上的事务复制 UPDATE 语句


在事务复制中, UPDATE语句通常是作为复制更新。但是,如果更新发生更改的任何列的唯一索引,聚集索引的一部分或作为唯一约束使用的表达式,以删除由订阅服务器上插入语句后面的语句执行更新。这是因为这种类型的更新可能会影响多个行,并且如果未传递逐行更新,可能会出现唯一性冲突。

但是,如果该更新会影响只有一行,唯一性冲突不会发生。因此,跟踪标志 8207 已添加到此服务包,以便允许任何唯一列影响只有一行将被复制为UPDATE语句更新。这种优化得到了专门为应用程序的安装在订阅服务器上的用户定义更新触发器并影响只有一行上唯一列的更新需要这些触发器的触发。

若要使用跟踪标志 8207,将其打开的命令提示符下键入 sqlservr.exe-T8207或开启它在运行时通过使用 DBCC TRACEON(8207,-1) 日志读取器代理程序启动之前。

重要提示通常情况下,跟踪标志 8207 用于只读的事务性复制。不要使用此跟踪标记具有可更新订阅,如果主键更新可以在订阅服务器上发生。

限制并发快照处理从中移除


在 SQL Server 2000 中,并发快照处理不是建议如果正在发布的表具有一个唯一的索引,这并不是主键或聚集键。如果已生成并发快照时对聚集键进行数据修改,复制可能因出现重复键错误的并发快照应用到订阅服务器时失败。在此服务包,将不再使用并发快照处理的限制。

事务复制自定义过程的脚本


设置非同步订阅时,必须手动创建自定义过程的插入更新删除语句。非同步订阅将不会收到初始快照的订阅。通常情况下,这些语句在订阅服务器上时创建初始快照将被传递。已添加新的存储的过程, sp_scriptpublicationcustomprocs,来生成用于在出版物级别的自定义存储过程的脚本。这一新功能可以更加轻松地设置非同步订阅。

sp_scriptpublicationcustomprocs

脚本自定义插入、 更新和删除过程的所有表具有发布中的项目自动生成自定义过程架构选项处于启用状态。Sp_scriptpublicationcustomprocs存储过程时必须手动应用快照的订阅设置尤其有用。

语法

sp_scriptpublicationcustomprocs[@publication] = publication_name

参数

[@publication] = publication_name
是发布名。publication_namesysname无默认值。

Return Code Values


0 (成功) 或 1 (失败)

结果集

返回结果集的一个 nvarchar(4000) 列组成。结果集创建的自定义存储的过程所需的完整的创建过程语句的窗体。

备注

自定义过程没有编入的文章而不自动生成 (0x2) 的自定义过程架构选项。

权限

执行公共授予的权限。限制对成员的 sysadmin 固定服务器角色和固定数据库角色中的当前数据库的 db_owner 访问此存储过程在执行过程的安全检查。

示例

此示例将生成名为罗斯文的出版物中自定义的存储过程的脚本。
exec Northwind.dbo.sp_scriptpublicationcustomprocs 
@publication = N'Northwind'

合并复制到基于保持期的元数据清除

有时,清理合并复制处理过程在系统表中创建的元数据可以提高合并复制的性能。清除元数据在 SQL Server 2000年中的系统表中,复制拓扑必须处于非活动状态,并且数据必须保持静态。

但是,SQL Server 2000 SP1 包括基于保持期的元数据清除。因此,元数据可以更轻松地对以下系统表中删除:
  • MSmerge_contents
  • MSmerge_tombstone
  • MSmerge_genhistory
发布上启用@keep_partition_changes同步优化选项时,基于保持期的元数据清除操作删除元数据的前映像表。

基于保持期的元数据清除操作时发生,如下所示:
  • 如果–MetadataRetentionCleanup合并代理程序参数设置为 1 时,合并代理程序清除 theSubscriber 和所涉及的合并发布服务器。默认情况下, –MetadataRetentionCleanup合并代理程序参数设置为 1。
注意MetadataRetentionCleanup 1 参数是此 service pack 中包含的所有合并代理程序配置文件的一部分。
  • 如果将MetadataRetentionCleanup参数设置为 0 时,不会自动清除。数据表的情况下,手动启动基于保持期的元数据清除通过运行sp_mergemetadataretentioncleanup的存储过程。此过程是一个新的系统存储的 procedurethat 包含在此服务包。订阅服务器和发布服务器,则必须运行此存储的过程 atboth。
出版物的默认保留期为 14 天。如果一篇文章属于多个发布,它可能具有不同的保留期。在这种情况下,时间最长的保留期用于确定可以出现的最早可能时间就清理。

防止假冲突

基于保持期的元数据清除操作会阻止 nonconvergence 和静默覆盖的其他节点上的更改。但是,如果满足下列条件,则可能会发生假的冲突:
  • 在一个节点中,而不是在拓扑结构中的 anothernode 被清除元数据。
  • 在已清理的节点的后续更新发生在 rowwhose 上的元数据已被删除。
例如,如果清除元数据在发布服务器上,但不是能在订阅服务器和发布服务器上进行更新,即使数据显示为已同步发生冲突。若要防止这种冲突,确保在同一时间有关的相关节点处清除元数据。如果使用MetadataRetentionCleanup 1 参数时,发布服务器和订阅服务器上清理自动合并开始之前。此过程可确保节点会清理一次。若要解决此冲突,请使用合并复制冲突的冲突解决程序。处理这种冲突您处理任何其他合并复制冲突的方式相同。

如果一篇文章属于多个发布,或某篇文章已重新发布方案中,针对特定行在发布服务器和订阅服务器上的保留期可能会有所不同。为了减少一方,但不是在另一侧的元数据清除的可能性,我们建议这些不同发布了类似的保留期。

注意如果多个系统表中的元数据必须进行清理,合并进程可能需要更长的运行时间。清除元数据定期以防止出现此问题。

用于合并复制的备份和恢复问题


从备份中还原发布数据库应该首先与具有全局订阅来保证正确的聚合行为的订阅数据库同步。全局订阅已分配的优先级值。同步可保证准确地重新应用的更改,因为还原操作已在发布数据库中丢失。

不同步的发布数据库与匿名订阅的订阅数据库。因为匿名订阅不具有足够的元数据来将更改应用于发布数据库。与具有匿名订阅的数据库进行同步,可能会导致无法收敛,数据。

当您计划备份和还原合并复制的操作时,请考虑下列其他问题:
  • 从备份超过保留期的 arenot 还原订阅数据库。
如果备份不低于订阅的订阅服务器上的所有发布的最短保留期,请从备份还原订阅数据库。例如,如果一个订阅服务器分别订阅与 10、 20 日和 30 天的保留期的三个出版物,用于还原数据库备份不应超过 10 天。
  • 生成备份之前进行同步。
Microsoft 强烈建议您在执行备份之前,与发布服务器同步的订阅服务器。否则,如果从该备份还原订阅服务器系统可能会不正确地收敛。虽然备份文件本身可能很新,与发布服务器上一次同步会保留期几乎一样旧。例如,假设一个出版物具有的保留期为 10 天。上一次同步时 8 天前在执行备份时。如果备份应用 4 天后上, 一次同步出现了 12 天前。过去的保留期执行同步。如果订阅服务器上已备份前右进行过同步,在保持期内将订阅数据库。
  • 如果您将 publicationretention 值的更改,请重新初始化订阅服务器。
如果您必须更改出版物保留值,手动重新初始化订阅服务器上,以避免无法收敛,数据。在发布保持期结束时,到基于保持期的元数据清除功能合并系统表中删除过时的元数据。

出版物保持值用于确定何时应过期订阅在保持期内不进行同步。如果满足下列条件,由于增加了的保留价值将不会过期订阅:
  • 在 acleanup 后增加发布保持期
  • 订阅试图与发布服务器合并,而 thePublisher 已经删除元数据。
此外,发布服务器上没有足够的元数据,以便将更改下载到订阅服务器。这种情况会导致 nonconvergence。
  • AllPublishers 和其备用的同步伙伴使用相同的出版物保留值。使用 differentvalues,可能会导致无法收敛。

从 SQL Server 的不同版本还原复制的数据库


将备份还原到相同的服务器和数据库保留复制设置。如果要复制的数据库还原到不同于用于备份数据库的版本的 SQL Server 版本,请考虑下列问题:
  • 如果 preservereplication 设置到您希望将数据库还原到 SQL Server 2000 SP1from 与 SQL Server 2000年中创建的备份,您必须运行升级存储过程。运行升级存储的过程保证复制的元数据进行升级。如果您不运行升级,在 unpredictablestate 中可能存在的复制元数据。
  • 如果要恢复到 SQL Server 2000年数据库从 SQL Server 7.0 使用创建的 abackup 发行版本、 Service Pack 1,Service Pack 2 或 Service Pack 3 中,并且您想要保留 replicationsettings,安装服务包之前,必须重新创建备份。您可以直接恢复到 SQL Server 2000 SP1 从备份数据库的 areplicated 数据库,创建的 SQL Server 7.0 中。但是,replicationsettings 不会被保留。
新的-MaxCmdsInTran 参数,日志读取器代理程序

在 SQL Server 2000 SP1 中,日志读取器代理程序已添加新的命令提示符参数名为-MaxCmdsInTran 。此参数可以提高日志读取器代理程序和分发代理程序之间的并行度。因此,该参数可以提高总体复制吞吐量。但是,这些数据块作为单独的事务被提交,在订阅服务器上。因此,原子的 ACID 属性被破坏。这种情况并不是问题大部分时间。但是,我们建议您测试的结果,以确保它不是一个问题。

对于影响许多命令,例如成批更新或删除交易记录的交易记录,分发代理程序必须等待到分发数据库中写入整个事务之前它可以传播到订阅服务器的事务日志读取器代理程序。这种延迟会阻止分发代理程序。它还减少了两个代理之间的并行度。

通过使用-MaxCmdsInTran参数,日志读取器代理程序将大宗交易分成较小的数据块。每个块包含相同或比-MaxCmdsInTran输入较少的命令。因此,分发代理程序可以处理事务的较早的数据块,而通过以后块相同的交易记录的日志读取器代理程序工作。

定义的 –MaxCmdsInTran 参数

指定-MaxCmdsInTran参数值正整数 (1 或更大)。值 0 相当的根本就不使用该参数。仅在非常大的事务时,此参数可以提高性能,因为 5000 或更大,为此参数的值是典型。例如:
logread.exe -MaxCmdsInTran 10000.
若要使用此参数,发布服务器必须在运行 SQL Server 2000 Service Pack 1。日志读取器代理程序和分发数据库必须升级到该服务包。否则, -MaxCmdsInTran参数将被忽略。

英文查询功能增强

Microsoft 已发布了一种增强安全性的英文查询应用程序。此增强功能未安装 SQL Server 2000 SP1 的一部分。但是,我们建议如果使用英文查询应用它。 有关在英文查询增强的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
297105 潜在英文查询安全问题的修补程序:

属性

文章编号: 889553 - 最后修改: 2013年9月21日 - 修订: 2.0
关键字:?
kbdatabase kbservicepack kbhowto kbinfo kbmt KB889553 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 889553
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