对于 SQL Server 2000 Service Pack 2 的说明: 2001 年 11 月 9

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

本文内容

概要

Microsoft SQL Server 2000 Service Pack 2 (SP2) 提供数据库组件的 SQL Server 2000 安装的更新。本文讨论了以下:
  • 服务包版本以及如何删除 Service Pack 2
  • 如何下载以及如何提取 Service Pack 2
  • 如何安装 Service Pack 2
  • 如何重新发布数据库组件的 Service Pack 2 客户端组件。
  • 如何处理问题会影响在运行 Service Pack 2 的服务器上的站点

内容

更多信息

1.0 简介

在三个部分中提供了 Microsoft SQL Server 2000 为此版本的 Service Pack 2 (SP2):
  • 数据库组件 SP2 数据库组件的 SQL Server 2000,不包括 SQL Server 2000 桌面引擎的实例的实例提供更新。数据库组件 SP2 包括升级到:
    • 数据引擎。
    • 数据库客户端工具和实用工具 (如 SQL Server 企业管理器和 osql。
    • 数据库如该 Microsoft OLE DB 提供程序 SQL Server 2000、 SQL Server 2000 ODBC 驱动程序和客户端网络库的客户端连接组件。
  • Analysis Services SP2 提供 SQL Server 2000 Analysis Services 组件的一个 SQL Server 2000 安装的更新,包括:
    • Analysis Services。
    • Analysis Services 客户端组件: 对于 Analysis Services 包括 olap 管理器和 $ 在 Microsoft OLE DB 提供程序。
    • 数据库如该 Microsoft OLE DB 提供程序 SQL Server 2000、 SQL Server 2000 ODBC 驱动程序和客户端网络库的客户端连接组件。
  • 桌面引擎 SP2 数据库组件的实例的 SQL Server 2000 桌面引擎 (也称为 MSDE 2000),包括为提供的更新:
    • 数据引擎。
    • 数据库如该 Microsoft OLE DB 提供程序 SQL Server 2000、 SQL Server 2000 ODBC 驱动程序和客户端网络库的客户端连接组件。
可应用的 SP2 以下三个部分,分别、,如下所示:
  • SQL Server 2000 个网站可以使用数据库组件 SP2 为他们升级数据库组件无需升级其 Analysis Services 组件或 SQL Server 2000 桌面引擎的实例。
  • Analysis Services 2000 个网站可以使用 Analysis Services SP2 为他们升级 Analysis Services 组件无需升级桌面引擎或其数据库组件的实例。
  • 桌面引擎站点可以使用桌面引擎 SP2 升级桌面引擎的实例,而不升级 Analysis Services 或 $ 其他版本的 SQL Server 2000 的实例。

    注意 如果您的桌面引擎和 SQL Server 的其他版本在同一台计算机上的单独实例需要将应用于桌面引擎 2000年实例和数据库组件 SP2 SQL Server 2000 的其他实例的桌面引擎 SP2。
有关安装桌面引擎的详细信息请参阅节 2.2"Desktop Engine SP2 file"和 3.7 节了解"Install Desktop Engine SP2

注意 是唯一的桌面引擎 SP2 为这些语言生成的服务包一部分可在葡萄牙语 (巴西)、 瑞典语和荷兰语,因为 SQL Server 2000 桌面引擎是唯一的 SQL Server 2000 版本。在升级数据库组件 SP2 或 Analysis Services SP2 SQL Server 2000 组件中不可用这些语言。葡萄牙语 (巴西) 瑞典,和荷兰语用户想要应用到的 SQL Server 版本的 Service Pack 2 个桌面引擎必须下载与它们将升级,如下载英语语言版本的语言相匹配的 Service Pack 2 文件运行 SQL Server 2000 的英语语言版本的 Service Pack 2 文件。您可以在节 2.0 中找到下面的下载指令,"Downloading and extracting SP2
详细信息的数据库组件 SP2 安装
数据库组件 SP2 安装程序会自动检测 SQL Server 2000 的哪种版本中都存在正在升级,SQL Server 2000 实例,并只升级实例的已安装的组件。例如对于当 service pack 应用于运行 SQL Server 2000 标准版的计算机,则它将不尝试升级仅附带 SQL Server 2000 企业版的组件。

数据库组件 SP2 可以应用于单个默认实例或 SQL Server 的命名的实例。如果 SQL Server 2000 的多个实例需要升级到 SP2,您必须将 SP2 应用到每个实例。当 SQL Server 2000 的一个或多个实例的计算机上的一个实例升级到 SP2 时的所有工具将升级到 SP2。没有工具的计算机上的每个实例的单独副本。
删除 SP2
安装该 service pack 后,它对系统表中的维护原因进行更改,它还升级用户和分发数据库的复制拓扑成员。由于对这些的更改不能很容易地删除 SP2。若要还原到版本正在运行您在安装 SP2 之前,必须先卸载 SQL Server 2000 的实例。然后您必须重新安装 SQL Server 2000 的实例。如果您正在运行 SQL Server 2000 SP1,您将需要重新 SP1 应用到该实例。有关卸载 SP2 的详细信息请参阅节 3.13"Uninstalling SP2

注意 若要去 SP2 中,您必须具有一个 母版模型,和 msdb 数据库,采取立即以在应用 SP2 之前的备份。有关更多的信息,请参阅节 3.1"Back up your SQL Server databases 和节 3.2 Back up your Analysis Services databases
有关 SP2 的其他信息
在 Microsoft 知识库文章 Q306908 中提供了此服务包中包含该修复程序的列表。在 $ 306908 中列出的每个修复都有描述通过此修复程序来解决该问题的知识库文章的链接。这些文章发布在 Microsoft Product Support Services Knowledge Base
请修复文章以查看有关每个修复程序的信息的链接。

与 SQL Server 2000 Service Pack 2,所要包含在本自述文件中的时间内没有相关的所有信息将在 Microsoft 知识库文章 Q306909 中都发布。本文是在 Microsoft Product Support Services Knowledge Base 可用。
QFE 修复
如果您接收到 2001 年 10 月 3 之后的 QFE 修复程序解决方法是不可能要包括在 SP2 中。请与您的主要支持提供者有关对 SP2 的 QFE 修复程序。

1.1 识别 SQL Server 或 Analysis Services 的当前版本

使用以下技术找出已安装的 SQL Server 或 Analysis Services 哪个版本。
SQL Server
若要打算 SQL Server 2000 您已安装的版本类型 SELECT @ @ 版本,在命令提示符下使用 osqlisql 实用工具时或在 SQL 查询分析器中的查询窗口中。下表显示了在 @ @ 版本和 SQL Server 2000 版本数量报告的版本字符串之间的关系。
收起该表格展开该表格
@ @ 版本SQL Server 2000 版本
8.00.194SQL Server 2000 RTM
8.00.384数据库组件 SP1
8.00.532数据库组件 SP2
Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 2) Enterprise Evaluation Edition on Windows NT 5.0 (Build 2195: Service Pack 2) Developer Edition on Windows NT 5.0 (Build 2195: Service Pack 2) Personal Edition on Windows NT 5.0 (Build 2195: Service Pack 2) Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 2) Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 2)
注意 行的开头指示 SQL Server 版本。这跟当前操作系统信息。

Analysis Services
若要确定您安装哪个版本的 Analysis Services,请按照下列步骤操作:
  1. 从 $ 开始 菜单中指向 程序SQL Server 2000Analysis Services,然后单击 分析管理器
  2. 在 olap 管理器树中右键单击分析服务器节点并选择 About Analysis Services
  3. 下表显示了您有 Analysis Services 的哪个版本。
收起该表格展开该表格
关于帮助Analysis Services 版本
8.0.194SQL Server 2000 Analysis Services RTM
8.0.382Analysis Services SP1
8.0.532Analysis Services SP2

2.0 下载并解压缩 SP2

此服务包分发三种方式:
  • 2 SQL Server 2000 服务包的安装光盘 上包含以下组件的服务包:
    • 数据库组件 SP2
    • Analysis Services SP2
    • 桌面引擎 SP2
    注意 此光盘包含所有升级的桌面引擎的现有实例所需的文件。支持桌面引擎的实例的最大数目为 16。
  • 在可从 Internet 下载的三个自解压缩文件:
    • SQL2KSP2.exe (数据库组件 SP2)
    • SQL2KASP2.exe (Analysis Services SP2)
    • SQL2KDeskSP2.exe (桌面引擎 SP2)
    注意 SQL2KDeskSP2.exe 文件包括用于创建只与 sqlrun01.msi 桌面引擎的单个实例的升级。有关详细的信息,请参阅节 2.2"Desktop Engine SP2 file
  • SQL Server 2000 桌面引擎 Service Pack 2 光盘 (仅桌面引擎)
注意 请输入 SQL Server 2000 桌面引擎服务包 2年光盘 包含合并模块或安装桌面引擎的新实例所需的.msi 文件。

2.1 的数据库和 Analysis Services SP2 文件

当下载提取数据库组件或 Analysis Services SP2 安装文件从 Internet 时,请使用下面的准则。

下载一个 2.0,一节中列出的文件,并将自解压文件放入运行其安装此服务包的 SQL Server 2000 实例的计算机上的文件夹。该文件夹中执行 $ 文件。自解压程序将提示您输入要在其中放置的服务包文件文件夹的名称。

已下载服务包的安装文件在本地驱动器,您将需要自解压缩文件的可用的空间大小的大约三倍。这包括存储文件、 用于存储提取的服务的包文件的空间和所需的自解压程序本身的临时工作空间的空间。

解压缩组件后,您可以重命名所选的文件夹 ; 但是,请确保目录名称不包含空白空间。您可以为上述文件的每个使用相同的目标文件夹 ; 它们不会覆盖或会相互干扰。

自解压文件用于生成一组目录和您的计算机上与 SP2 CD-ROM 上提供的那些相同的文件。如果您下载 SP2 必须解压缩该文件以生成服务包目录,您可以运行 SQL Server 安装程序之前。

对于数据库组件和 Analysis Services,在安装过程是相同的 SP2 CD-ROM 和提取的 SP2 文件。

注意 一些服务包中的文件是系统文件,因此您不能查看它们,除非在执行此操作: 在 Windows 资源管理器,在 视图 菜单上单击 选项,再单击 视图 选项卡,然后选择 显示所有文件 复选框。

2.2 桌面引擎 SP2 文件

当下载提取桌面引擎 SP2 的安装文件从 Internet 时,请使用下面的准则。

下载并解压缩数据库组件和具有以下例外情况的 Analysis Services SP2 文件的以上所述桌面引擎 SP2 文件。

如果您从 Internet 下载该桌面引擎 SP2 文件,您可以应用服务包仅于从 sqlrun01.msi 安装桌面引擎的实例。如果您尝试将应用于使用 sqlrun02.msi – sqlrun16.msi 从 Internet,已下载的 Setup.exe 文件从创建的实例的服务包您将收到以下错误之一:
不能打开此安装程序包。请验证该包是否存在以及您可以访问它,或与应用程序供应商联系,以验证它是有效的 Windows 安装程序包。
-或者-
Windows 安装服务无法安装升级修补程序,因为要升级程序可能会丢失,或升级修补程序可能会更新该程序的不同版本。验证要升级程序验证您的计算机上是否存在以及您是否具有正确的升级修补程序。
要升级的桌面引擎使用所创建的实例 sqlrun02.msi-sqlrun16.msi,您必须从 Microsoft CD-ROM 应用服务包。

3.0 服务包安装

若要安装 SP2,请按照下面的安装说明。并非所有的步骤是所需根据以下 SQL Server 2000 组件或要应用服务包的配置:
  • 数据库服务器组件
  • 数据库客户端组件
  • Analysis Services
  • 桌面引擎
  • 故障转移群集
  • 复制服务器
对于每个安装步骤列出了适用的组件。

注意 service pack 是特定的语言。应用服务包与您要升级的 SQL Server 组件相同的语言。

注意 在 Windows NT 4.0 的法语版本上安装 SP2 之前,阅读,并按照知识库文章 259484 中的说明进行操作。您可以从 Microsoft Product Support Services Knowledge Base 访问文章。

开始安装前先
从 SP1 更改

以下内容适用于除 Analysis Services 以外的所有组件安装:

SP2 安装不会升级除外积极地复制拓扑中涉及的那些用户数据库的用户数据库。不复制拓扑中涉及的数据库在 SP2 上没有任何依赖项。例如:
  • 您可以从 SQL Server 2000 或 SQL Server 2000 SP1 的实例还原用户数据库备份,到 SQL Server 2000 的一个实例。
  • 可以从 SQL Server 2000 SP2 的实例还原用户数据库备份到 SQL Server 2000 SP2 的实例、 SQL Server 2000 SP1 的实例或 SQL Server 2000 的实例。
  • 您可以将用户从分离数据库 SQL Server 2000 或 SQL Server 2000 SP1 的实例,并将其附加到 SQL Server 2000 SP2 的实例。
  • 您可以分离从 SQL Server 2000 SP2 的实例的用户数据库,并将其附加到 SQL Server 2000 或 SQL Server 2000 SP1 的实例。
  • 您可以参与日志传送 SQL Server 2000、 SQL Server 2000 SP1 和 SQL Server 2000 SP2 的实例之间。SP2 安装不会升级复制拓扑成员的用户数据库。
在安装 SP2 之前确保复制数据库和文件组是可写,运行安装程序的用户帐户有权访问该数据库。有关将 SP2 应用于复制拓扑中涉及的数据库的详细信息请参阅节 3.11"Installing on replicated servers

如果 SP2 安装程序检测到任何用户数据库或文件组不是可写,它:
  • 应用于所有的可写的用户数据库的 SP2 复制更新。
  • 位于 winnt\sqlsp.log 在安装程序日志中写入不可写的数据库的列表。
  • 显示以下警告消息:
    安装程序检测到一个或多个数据库和文件组不可写。
除非在安装程序日志中列出数据库中的一部分是一个复制拓扑中的成员,您可能会忽略此警告。任何不可写入安装日志中列出的数据库时的复制拓扑成员必须使这些数据库可写入并重新将 SP2 安装应用于 SQL Server 2000 的实例。

注意 此消息将不会影响无人参与的安装。若要了解有关无人参与安装的详细信息,请参阅节 4.0"Unattended installations

有关使数据库成为可写的详细信息请参阅节 3.12"Applying SP2 to non-writable databases or filegroups。 若要了解更多有关重新应用 SP2,请参阅节 3.14"Reapplying SP2

注意 安装,期间设置使没有区别的只读数据库和数据库的脱机或怀疑有问题。如果复制数据库或文件组位于任何这些条件在安装过程中,并且涉及复制拓扑中,该 service pack 必须重新应用后数据库变为可写。

注意 由于不可写的数据库将不再导致失败的安装程序,您不再需要删除日志传送之前升级到 SP2。

系统管理服务器准备分布式安装

不能远程安装 SQL Server 2000 Service Pack 2。但是,您可以使用 Microsoft 系统管理服务器在多台计算机运行 Microsoft Windows NT Server 4.0 上自动安装 SP2。这样做,您必须使用程序包定义文件 (Smssql2ksp2.pdf 文件),可以自动创建的系统管理服务器中 SQL Server 程序包。然后可以分发和运行系统管理服务器的计算机上安装 SQL Server 包。Sms2kdef.bat 文件是一个批处理文件,将检测计算机的平台并运行适当的版本的安装程序。

系统管理服务器不能用于安装桌面引擎 SP2。

3.1 备份 SQL Server 数据库

以下内容适用于除数据库客户端组件之外的所有组件安装:

安装数据库组件 SP2 或桌面引擎 SP2 前, 先备份 母版msdb,和 模型 数据库。安装服务包将使对该 母版msdb,和 模型 数据库所做的修改将它们与 SQL Server 的 SP2 之前的版本不兼容。如果您决定重新安装 SQL Server 2000 SP2 不需要这些备份。

它也是明智备份您的用户数据库虽然 SP2 将只在数据库中的复制拓扑成员执行更新。

3.2 备份 Analysis Services 数据库

以下只适用于 Analysis Services:

在安装 Analysis Services SP2 之前备份该默认情况下的是文件文件夹下安装 Microsoft 分析 Services\Data 文件夹的副本,从而 Analysis Services 数据库。如果您不具有到 SQL Server 迁移 Analysis Services 存储库,请 Msmdrep.mdb,Microsoft 分析 Services\bin 文件夹中文件的备份副本。您也可以保存您的分析服务器注册表项通过运行 Regedit.exe 和使用在 注册表 菜单上的 导出注册表文件 项目项
HKEY_LOCAL_MACHINE\SOFTWARE\OLAP Server
导出到一个文件以进行备份。

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

以下内容适用于除数据库客户端组件和 Analysis Services 以外的所有组件安装:

如果 自动增长 选项未被选中的 母版msdb 数据库中,该数据库必须具有至少 500 千字节 (KB) 的可用空间。若要验证它们具有此空间运行 sp_spaceused 系统存储过程的 主控形状msdb 数据库。如果在数据库中的未分配的空间小于 500 KB,增加数据库的大小。有关详细的信息,请参阅 SQL Server 联机丛书 中的"展开到数据库"。

如果为的 母版msdb 数据库选择了 自动增长 选项,并且在驱动器上没有足够的空间,您可以跳过此步骤。

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

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

3.4 运行 SP2 安装程序之前停止服务和应用程序

以下内容适用于所有组件:

您可以在不关闭服务的情况下应用 SP2。如果您没有执行关闭服务,系统将提示您重新启动安装程序结束时。而不必重新启动,服务将无法启动。

您可以将 SP2 应用不需要重新启动计算机,通过应用 service pack 之前停止下列服务和应用程序:
  • Microsoft 分布式事务处理协调器 (MS DTC) 和 Microsoft 搜索和 MSSQLServerOLAPService 服务中。
  • 正在升级实例 (例如对于 MSSQL $ NamedInstance) MSSQLServer 和 SQLServerAgent 服务中。
  • Microsoft 组件服务、 Microsoft 消息队列,和 Microsoft COM 事务系统集成商。
  • 所有应用包括控制面板。此步骤,建议使用,但不是必须。
您不能停止服务在群集环境中。有关更多的信息,请参阅 3.10 部分。

3.5 安装数据库组件 SP2

以下内容适用于所有组件安装桌面引擎和 Analysis Services 除外:

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

然后安装程序:
  • SP2 文件替换现有的 SQL Server 2000 或桌面引擎文件。
  • 运行更新系统存储过程的多个 TRANSACT-SQL 脚本文件。
  • 如果检测到安装,sa 登录使用空白密码具有混合模式身份验证,它将显示一个身份验证模式对话框。将 sa 登录密码保留为空 SQL Server 或桌面引擎为用户提供轻松的管理访问权限并不建议这样做 ; 帮助保护您的系统,通过强制执行的 sa 密码,或通过使用 Windows 身份验证。若要了解更多有关此对话框,请参阅本部分中稍后的身份验证模式对话框。
  • 显示一个对话框,如果它检测到任何数据库或文件组不可写。此位置复制拓扑的一部分如果有任何这些数据库或文件组,您可以:
    1. 停止在安装过程,使这些对象可写并重新启动安装程序。
    2. 继续当前 SP2 安装程序并在以后进行这些对象可写之后重新应用 SP2。
    注意 将 SP2 应用于不可写的数据库或文件组的复制拓扑的一部分时,在前面的步骤才必要。要了解更多信息,请参阅节 3.12 应用 SP2 不-可写入数据库或文件组。
身份验证模式对话框

身份验证模式 对话框中不会默认为用于安装当前的设置。对话框框默认值是:
  • 在运行 Microsoft Windows 98 或 Windows Millennium 版的计算机上默认设置是混合模式身份验证 (唯一身份验证模式,在这些操作系统的系统上受支持)。对话框将提示您指定一个为 sa 登录 密码。如果您指定密码,安装程序将会更改 sa 登录 密码。如果保留密码为空,安装程序将连接并不更改密码。
  • 在运行 Windows NT 4.0 或 Windows 2000 的计算机上默认设置为 Windows 身份验证。使用对话框中使用 sa 登录 密码不是空白的 Windows 身份验证模式或混合模式切换。
在更改之前请确保此更改不会影响现有的应用程序身份验证模式或为该 sa 登录 密码。例如对于如果从使用混合模式身份验证使用仅 Windows 身份验证更改实例的 SQL Server,试图使用 SQL Server 身份验证进行连接的现有应用程序将无法进行连接,直至身份验证模式更改为使用 Windows 身份验证。此外,如果更改了 sa 登录密码的应用程序或使用旧密码的管理进程将无法进行连接,直至他们已被更改为使用新密码。

安装程序将它 Sqlsp.log 文件在其运行它的计算机的 Windows 目录中执行该操作的记录。如果多个实例获得升级,将此日志中记录只在最新的升级。

3.6 安装 Analysis Services SP2

以下只适用于 Analysis Services:

若要安装 Analysis Services SP2,请从下列位置之一运行 Setup.exe:
  • 包含已提取的 Analysis Services SP2 文件,从 SQL2KASP2.exe 目录中的 Msolap\Install 子目录中。
  • SP2 CD-ROM 上 Msolap\Install 目录。
Setup.exe 会打开一个设置对话框,提示输入所需的信息,然后完成安装。

3.7 安装桌面引擎 SP2

以下只适用于桌面引擎:

SQL Server 2000 桌面引擎 (也称为 MSDE 2000) 的服务包被面向开发人员创建可再发行组件使用桌面引擎的应用程序。如果运行的使用桌面引擎的应用程序与您的软件提供商联系有关升级的由这些应用程序安装桌面引擎实例的信息。更多的信息,请参阅"分发,SQL Server 2000 桌面引擎"SQL Server 联机丛书 中的主题。

在三个窗体中提供了桌面引擎的服务包:
  • 2 SQL Server 2000 服务包的安装光盘: 的 CD-ROM 包括所有升级的桌面引擎的现有实例所需的文件。支持桌面引擎的实例的最大数目为 16。此光盘不包括合并模块或安装桌面引擎的新实例所需的.msi 文件。
  • SQL2KdeskSP2.exe: 此文件包含升级 sqlrun01.msi 与创建桌面引擎的单个实例。下载不能用于升级的桌面引擎使用的任何其他.msi 文件 (通过 sqlrun16.msi sqlrun02.msi) 所创建的实例。合并模块或安装桌面引擎的新实例所需的.msi 文件,不包括该文件。有关详细的信息,请参阅节 2.2"Desktop Engine SP2 File

    注意 若要了解来确定哪个.msi 文件使用创建的 MSDE 实例,请参阅知识库文章 Q311762。您可以从 Microsoft Product Support Services Knowledge Base 访问文章。
  • SQL Server 2000 桌面引擎服务包 2年光盘: 此光盘是通过 Microsoft Product Support 通过通用 MSDN 订阅者的请求。它包括所有升级的桌面引擎的现有实例所需的文件。此外,它包含了合并模块和安装桌面引擎的新实例所需的.msi 文件。为开发人员创建需要桌面引擎的应用程序提供了此光盘。有关详细的信息,请参阅 SQL Server 联机丛书 中的"分发 SQL Server 应用"。

    注意SQL Server 2000 桌面引擎服务包 2年光盘不 SQL Server 或 Analysis Services 包括服务包。
为升级现有安装桌面引擎的过程取决这三个版本的 SP2 软件您使用,和媒体 (例如对于光盘或网络共享),从中您可以执行升级。在升级桌面引擎时必须将该桌面引擎 service pack 应用桌面引擎的每个实例。

要求

使用可应用此服务包的 Setup.exe。在桌面引擎 SP2 Setup.exe 接受作为 SQL Server 2000 桌面引擎 Setup.exe SQL Server 2000 发布相同的参数。可以在中找到的 Setup.exe 的参考资料:
  • 该主题 SQL Server 2000 桌面引擎中的"安装程序 SQL Server 2000 丛书联机
  • 原始 SQL Server 2000 Readme.txt 文件的以下各节:
    • 3.1.4
    • 3.1.23
    • 3.1.28
    • 3.1.29
    • 3.1.30
您可以从您的硬盘、 网络的共享或 CD-ROM 运行安装程序。桌面引擎安装程序需要用于安装桌面引擎在原始媒体 (例如对于原始光盘或网络共享)。如果满足以下条件时,您只可以从光盘安装桌面引擎:
  • 原始安装桌面引擎的 安装从 CD-ROM。
  • 如果创建了自己的光盘安装 SP2 的卷标 CD-ROM 上的必须 SQL2KSP2。您是否一个独立软件供应商 (ISV) 创建一个 CD-ROM 分发桌面引擎为您的应用程序的组件必须与 VolumeLabel 属性,在媒体表的 Windows 安装程序程序包 (*.MSI) 相同 CD-ROM 卷标。
如果从光盘或从网络共享已移动的原来安装桌面引擎,将 MSDE 子目录从 SQL Server 2000 桌面引擎服务包 2年光盘复制到您的硬盘或网络共享,然后运行 Setup.exe。

如果希望直接从 CD-ROM 应用 Service Pack 2 必须首先升级 Windows 安装程序版本 2.0.2600.0 或更高版本。此过程将需要重新启动计算机。

要升级 Windows 安装程序:
  1. 记下原始安装的完整路径。
  2. 运行 InstMsi20.exe。
  3. 在文本框中输入原始安装的完整路径。
Setup.exe 位于下列位置之一:
  • MSDE 子目录的目录包含从 SQL2KDeskSP2.exe 提取的服务包文件中。
  • 您的硬盘或网络共享,向其中复制 MSDE 子目录从 SQL Server 2000 SP2 安装光盘上的该位置。
注意 设置过程是不同的如果您安装桌面引擎作为另一个应用程序的组件。有关升级桌面引擎的详细信息,请与软件供应商联系。

应用修补程序包

修补程序软件包分发此 Service Pack 中将升级编号的 MSDE (01-16) 的实例包含在 SQL Server 2000 光盘中的默认值。若要升级的 MSDE 实例,您必须应用其相应的修补程序。例如对于升级实例 SqlRun03.msi 从最初安装,您必须使用 SQLRun03.msp。

注意 因为这些文件是非常大,此 Service Pack 的可下载版本包含了只有一个修补程序包: SQLRun01.msp。其他 15 个修补程序软件包是 SQL Server 2000 服务包 2 CD 上。

从命令行使用 Setup.exe,若要将修补程序软件包应用于已安装的 MSDE 实例。如果您知道哪些安装包使用安装桌面引擎实例,您可以指定安装程序将与/p 选项一起使用相应的修补程序。例如:
Setup /p SQLRun03.msp
如果您不知道使用何种安装包了,SQLRUN键入/p 选项。SQLRUN 开关告诉选择正确的修补程序包本身的 Setup.exe。这将仅工作的如果满足以下条件:
  • 所有的.msp 文件都位于一个名为直接包含安装程序文件夹下的安装文件夹中。这要求 SQL Server 2000 服务包 2年光盘。
  • 当升级实例不是默认实例时,与 INSTANCENAME 变量指定了其实例名称。
例如对于修补程序安装的实例名为 MyInstance 的 Setup.exe 将运行以下命令:
Setup /p SQLRUN INSTANCENAME=MyInstance
还可以在一个.ini 文件中指定实例名称。有关详细的信息,请参阅主题 SQL Server 联机丛书 中的"自定义桌面引擎 Setup.exe"。

注意 不要使用在实例名称的前后的开始和结束的引号。

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

注意 使用 setup.exe 安装在运行 Windows 98 或 Windows Millennium 版的计算机上的 MSDE SP2 时, 必须使用 UPGRADEUSER 开关指定登录名是 sysadmin 固定的服务器角色的成员。有关 UPGRADEUSER 的详细信息,请参阅节 3.1.23 原始 SQL Server 2000 Readme.txt 文件。
重新分发服务包

我们建议的独立软件供应商 (isv) 重新发布该服务包希望这样做,如下所示:
  1. 在配置为与匹配与您的软件一起分发的桌面引擎的实例上安装 Service Pack。
  2. 生成基于旧的和新安装的区别自己修补程序包。
  3. 将分发给您的客户自定义修补程序。
有关创建修补程序软件包的详细信息,请参阅包含与在 Windows 安装程序软件开发工具包 (SDK),可从 Microsoft Platform SDK Web site 下载的文档。

注意 您可能会重新发布一份完整的 SP2。

文件位置

SQL Server 2000 桌面引擎服务包 2年光盘 上, 合并模块和安装文件都位于 \MSDE。一个完整列表,请参阅"使用 SQL Server 桌面引擎合并模块"SQL Server 联机丛书 中。

3.8 重新启动服务

以下内容适用于所有组件:

安装程序完成时, 它可能会提示您重新启动系统。在系统重新启动后中 (或在程序执行完不请求重新启动安装程序后),使用控制面板中的服务应用程序,请确保正在运行 MS DTC 和 Microsoft 搜索、 MSSQLServer、 MSSQLServerOLAPService 和 SQLServerAgent 服务或 $ 实例特定的等价。备份数据库升级后的母版和 msdb 数据库。

3.9 重新启动应用程序

以下内容适用于所有组件:

重新启动运行服务包安装程序之前您关闭该应用程序。

3.10 在故障转移群集安装

以下只适用于故障转移群集的一部分的 SQL Server 2000 组件:

要在故障转移群集上安装此服务包,请执行以下操作:
  • 从包含您要升级该虚拟服务器组节点上运行此服务包。这将安装所有的故障转移群集节点上的服务包文件。
  • 在设置对话框中输入您要升级的虚拟服务器的名称。
  • 在安装过程中保持联机的群集中的所有节点。这可以确保升级应用于群集的每个节点。
注意 SQL Server 2000 SP2 安装程序可能需要重新启动故障转移群集节点。这将替换 SQL Server 2000 SP2 安装程序与更新的文件的过程中正在使用的文件。

如果您要升级到虚拟服务器的 (非群集) 的默认实例 SQL Server,您必须首先从默认实例进行升级,为虚拟的实例,然后再应用 SQL Server 2000 SP2。有关升级的详细信息请参阅 SQL Server 联机丛书 中的"如何从默认实例升级到 SQL Server 2000 (设置) 的默认群集实例"。

如果希望重新生成一个节点故障转移群集中的,您应该:
  • 重建该节点故障转移群集中。有关重建节点的详细信息请参阅 SQL Server 联机丛书 中的"如何从方案 1 中的故障转移群集失败中恢复"。
  • 运行原始的 SQL Server 2000 安装程序将节点添加回故障转移群集。
  • 运行 SQL Server 2000 SP2 安装程序。

3.11 在复制服务器上安装

以下只适用于复制拓扑的一部分的 SQL Server 2000 组件:

在此序列中的复制服务器部署此服务包:
  1. 分发服务器 (如果独立于发布服务器)
  2. 发布者
  3. 订阅服务器
注意 特别是在合并复制中的大多数情况下在分发服务器和发布服务器是在同一台服务器上并同时升级。

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

您可能无法升级复制拓扑中的所有服务器立即 ; 但是,通常不会影响正在运行的实例的 SQL Server 2000 和此服务包的服务器之间复制操作。此异常在节 5.3.7 讲述 Restoring replicated databases from different versions of SQL Server

注意 SP2 安装不会升级复制拓扑成员的用户数据库。如果任何成员的复制拓扑结构数据库不可写将 SP2 应用到这些数据库必须使其可写并重新应用 SP2 安装。有关使数据库成为可写的详细信息请参阅节 3.12"Applying SP2 to non-writable databases or filegroups。若要了解更多有关重新应用 SP2,请参阅节 3.14"Reapplying SP2

复制的帐户的现有备份方案将允许将数据库还原到已知点,在出现故障的情况下在 SP2 升级之后。后应用 SP2、 日志或完整数据库备份建议复制拓扑中任何用户数据库。此的方法的情况下复制数据库的故障,SP2 不会在恢复数据库后重新应用。

3.12 将 SP2 应用于不可写的数据库或文件组

以下只适用于复制拓扑的一部分的 SQL Server 2000 组件:

不可写的数据库或文件组存在时, 安装程序将显示以下消息:
安装程序检测到一个或多个数据库和文件组不可写。
通常情况下,您可能会忽略此警告,安装程序将继续执行。但是的任何不可写入安装日志中列出的数据库时的复制拓扑成员必须使这些数据库可写入并重新将 SP2 安装应用于 SQL Server 2000 的实例。

注意 此消息将不会影响无人参与的安装。若要了解有关无人参与安装的详细信息,请参阅节 4.0 无人参与安装。

注意 安装,期间设置使不可写的数据库和脱机或可疑的数据库没有区别。如果数据库或文件组中任一这些条件在安装过程中,必须重新应用服务包。有关使一个数据库的详细信息联机,请参阅有关诊断可疑数据库的"附加和分离数据库"中 SQL Server 联机丛书,和详细信息,请参阅"服务器和数据库疑难解答"SQL Server 联机丛书 中。

要应用 SP2 到只读数据库,请执行以下操作:
  1. 使可写,如下所示使用 ALTER DATABASE 只读数据库:
    ALTER DATABASE database
    SET READ_WRITE 
  2. 重复第 2 步的所有只读数据库。
  3. 应用 (或重新应用) 该 service pack。
  4. 如果需要,使数据库只读,如下所示使用 ALTER DATABASE
    ALTER DATABASE database
    SET READ_ONLY 
要以只读文件组应用 SP2,请执行以下操作:
  1. 请将只读文件组可写,如下所示使用 ALTER DATABASE
    ALTER DATABASE Database
    MODIFY FILEGROUP filegroup_name READWRITE 
  2. 重复步骤 1 的所有只读文件组。
  3. 应用 (或重新应用) 该 service pack。
  4. 将该文件组为只读,如下所示使用 ALTER DATABASE
    ALTER DATABASE Database
    MODIFY FILEGROUP filegroup_name
    READONLY 
若要了解更多有关 ALTER DATABASE,请参阅"ALTER DATABASE"引用主题 SQL Server 联机丛书 中。若要了解更多有关重新应用 SP2,请参阅节 3.14"Reapplying SP2

3.13 卸载 SP2

以下内容适用于除 Analysis Services 外的所有组件:

若要还原到的 SQL Server 2000 组件 SP2 之前的版本,所必须执行安装 SP2 的 母版msdb,和 模型 数据库的备份。有关详细的信息,请参阅节 3.1 Back up your SQL Server databases

注意 如果的任何数据库参与复制,则必须禁用发布。
  1. 若要禁用发布: 项 SQL Server 企业管理器展开 SQL Server 组、 展开一个服务器,用鼠标右键单击 复制 文件夹,然后单击 配置发布订阅服务器分发
  2. 选择 发布数据库 选项卡。
  3. 清除为每个参与复制的数据库复选框。这将使数据库可以分离。
请按照下列步骤还原到的 SQL Server SP2 之前的版本:
  1. 断开所有用户数据库。有关详细的信息请参阅 SQL Server 联机丛书 中的"如何附加和分离数据库 (企业管理器)"。
  2. 卸载 SQL Server。在 $ 控制面版中双击 添加/删除程序,然后选择您要卸载 SQL Server 的实例。
  3. SQL Server 2000 安装从 CD-ROM 或从中您最初安装 SQL Server 位置。
  4. 从上一次应用 SP2 之前创建的备份还原数据库主 msdb 和模型。这会自动将附加在创建备份的时间已连接的任何用户数据库。
  5. 附加的 master 数据库自上次备份后创建的任何用户数据库。
  6. 如有必要,请配置复制。

    警告当您将恢复到的 SQL Server SP2 之前的版本时,应用 SP2 后进行数据库主 msdb 和模型的所有更改都都将丢失。

3.14 重新应用 SP2

以下内容适用于所有组件:

在下列情况下,它将需要重新应用 SQL Server 2000 SP2:
  • 当应用了 SP2 后,已添加新 SQL Server 2000 组件。
  • 当数据库复制拓扑的一部分并在服务包的初始应用程序的过程中是只读的文件组进行的或可写。
要重新应用 SP2,请执行以下步骤在节 3.0"Service pack installation

4.0 无人参与安装

数据库组件 SP2 可以应用于 SQL Server 2000 无人参与模式下在计算机上运行的实例。数据库组件 SP2 CD-ROM 中包含可用于执行无人参与的 SP2 设置的 ISS 文件。这些文件位于 CD-ROM 上根区目录中,并可用于执行不同类型的安装:
  • sql2kdef.iss 是无人参与的安装文件用于应用数据库组件 SP2 的 Windows 2000 或 Windows NT 4.0 操作系统上运行的 SQL Server 2000 默认实例。要使用相应的批处理文件是 Sql2kdef.bat。
  • sql2knm.iss 是用于将数据库组件 SP2 应用到的 Windows 2000 或 Windows NT 4.0 操作系统上运行的 SQL Server 2000 命名实例的安装程序文件。您必须更改实例名称以标识正在升级实例 ISS 文件中。
  • sql2ktls.iss 是用于将数据库组件 SP2 应用于一个工具仅安装程序的安装程序文件。此文件可用于安装不做任何修改。
  • sql2k9x.iss 是用于运行 Windows Millennium 版或 Windows 98 操作系统的计算机上应用数据库组件 SP2 的安装程序文件。需要将更改为标识正在升级实例的实例名称。
  • sql2kcli.iss 是用于运行 Windows 95 操作系统的计算机上的客户端组件安装到应用数据库组件 SP2 的安装程序文件。
  • msolap.iss 是安装程序文件,用于存储有关运行无人参与的安装 Analysis Services SP2 的参数列表。
注意 在无人参与的安装过程中如果安装程序检测到任何不可写的数据库或文件组,该信息被写入安装日志并无人参与的安装将继续。任何不可写入安装日志中列出的数据库时的复制拓扑成员必须使这些数据库可写入并重新将 SP2 安装应用于 SQL Server 2000 的实例。有关使数据库成为可写的详细信息请参阅节 3.12"Applying SP2 to non-writable databases or filegroups。 若要了解更多有关重新应用 SP2,请参阅节 3.14"Reapplying SP2

4.1 重新分发 SP2 数据访问组件

此服务包包括自解压缩的文件、 Sqlredis.exe 和 Redist.txt 的版本。这些文件是在数据库组件 SP2。默认在执行 Sqlredis.exe 时它:
  1. 从 Microsoft 数据访问组件 (MDAC) 2.62 执行该 Mdac_typ.exe。这将与此 service pack 安装 MDAC 2.62 核心组件和 SQL Server 和桌面引擎客户端连接组件附带的版本。
  2. 安装 Microsoft Jet ODBC 驱动程序和 $ 连接组件。
您可以重新发布在条款和条件 Redist.txt 文件伴随此服务包中记下该 Sqlredis.exe 文件。

5.0 文档注释

本部分介绍,以及当您运行此服务包时始终可用的新功能可能会出现的问题。这些问题适用于运行 service pack 升级到 SQL Server 2000 和 SQL Server 2000 SP1,并不是该服务包中包含的修补程序的结果。

本节中的 Analysis Services 和元数据服务部分不会应用于桌面引擎仅安装。

5.1 数据库和 $ 桌面引擎增强功能

以下问题应用于其安装数据库组件 SP2,SQL Server 2000 实例和其安装桌面引擎 SP2 的桌面引擎实例。

5.1.1 安装桌面引擎的新实例

在 SP1 中引入

按照这些步骤应用 SP2 后安装桌面引擎的新实例。
  1. \Program Files\Microsoft SQL Server\80\Tools\Binn\Resources\1033 目录中重命名下列文件到 *.rdl:
    • semnt.rll
    • sqlsvc.rll
  2. \Program Files\Microsoft SQL Server\80\Tools\Binn 目录中重命名下列文件到 *.dld:
    • semnt.dll
    • sqlsvc.dll
    • sqlresld.dll
  3. 安装桌面引擎 SP2 不。
  4. 重命名 *.rll semnt.rdl 和 sqlsvc.rdl 文件 \Program Files\Microsoft SQL Server\80\Tools\Binn\Resources\1033 目录中。
  5. 重 *.dll semnt.dld、 sqlsvc.dld、 sqlresld.dld \Program Files\Microsoft SQL Server\80\Tools\Binn 目录中的文件。
新安装的桌面引擎的实例将 SP2。

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

在 SP1 中引入

如果在运行 Windows NT 4.0 或 Windows 98 操作系统和更高版本升级到 Windows 2000 的服务器上安装数据库组件 SP2,Windows 2000 升级会替换某些系统文件。这些系统文件所需的排序中文、 日语或朝鲜语字符。如果您使用 SQL Server 数据库中的中文、 日文,或朝鲜语字符,重新运行 Sqlredis.exe 附带 SP2 后执行升级到 Windows 2000 的版本。有关执行 Sqlredis.exe 的详细信息请参阅节 4.1"Redistributing SP2 Data Access Components

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

5.1.3 删除哈希团队

在 SP1 中引入

哈希团队已被删除。由于 SQL Server 2000 的某些增强功能的哈希团队不再生成它们 SQL Server 7.0 版中提供的性能收益。此外,删除哈希团队将使 SQL Server 2000 更稳定。

因此,查询优化器不再生成查询计划使用哈希团队。

在少数的情况的哈希团队删除可能会导致查询以处理速度更慢。分析此类查询,以查看是否创建更合适的索引将返回查询性能到其以前的级别。

5.1.4 亲和力掩码交换机添加

在 SP1 中引入

两个亲和力掩码开关已添加到此服务包。

亲和力掩码 I/O 切换

使用此服务包中,您可以指定哪些 cpu 将用于运行的磁盘 I/O 操作的线程。此开关必须与 亲和力掩码 选项一起使用。有关详细的信息,请参阅 Microsoft Product Support Services Knowledge Base 中的 298402

亲和力掩码连接切换

使用此服务包中,您可以配置启用的虚拟接口体系结构 (VIA) 将绑定从某些网络卡 SQL Server 连接,处理器或组的处理器的系统。此开关必须与 亲和力掩码 选项一起使用。有关详细的信息,请参阅 Microsoft Product Support Services Knowledge Base 中的 299641。

5.1.5 SQL Server 代理程序记录的帐户信息

在 SP2 中引入

现在,SQL Server 代理作业历史记录下的每个作业步骤已运行的 Windows 帐户。此信息可帮助管理员诊断与包括定义为复制和数据转换服务任务的计划的作业的计划作业的安全问题。

5.1.6 筛选过的索引的视图

在 SP2 中引入

如果您遇到 SQL Server 2000 bug 355069 记录在 Microsoft 知识库文章 306467,此服务包将只阻止将来出现的意外的结果,由于到的数据修改。因此,除了应用此修复程序,基于视图的筛选器条件的所有索引都需要重新创建。有关详细的信息,请参阅 Microsoft Product Support Services Knowledge Base 中的 306467

5.2 Analysis Services 增强功能

在 SP2 中的 Analysis Services 增强功能包括:
  • 远程分区。
  • 更新的 Analysis Services 可再发行组件的客户端安装程序。
  • 第三方数据挖掘算法提供程序支持。
  • 要更新的客户端文件与一个计算机上安装 Analysis Services 的能力。
5.2.1 远程分区

在 SP1 中引入

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

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

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

在 SP1 中引入

Analysis Services SP1 和更高版本包括下列客户端可再发行组件安装程序的更新的版本:
  • PTSLite.exe
  • PTSFull.exe
这些文件位于 \msolap\install\PTS SP2 安装目录的路径中。

注意 PTSFull.exe 包括 MDAC ; PTSLite.exe 却没有。

若要防止或解决时使用 Analysis Services 和 Microsoft Office XP,您就可能会遇到的客户端安装问题,在您的应用程序中使用这些更新的客户端安装程序。

注意 当使用 Office XP Analysis Services 时, 是我们强烈建议升级客户端。

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

在 SP1 中引入

Analysis Services SP1 和更高版本包括对添加的第三方数据挖掘算法提供程序的支持。有关开发一个数据挖掘算法提供程序的详细信息请参阅第三方数据挖掘提供白皮书和 OLE DB 数据挖掘资源工具包,其中包括的一个示例数据挖掘算法提供程序,Microsoft Data Access and Storage Development Center 处的代码。

为 5.2.4 的已更新的客户端文件在计算机上安装 Analysis Services

在 SP1 中引入

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

5.3 复制增强功能

在 SP2 中的复制增强功能包括:
  • 自定义存储过程的事务复制更新
  • 唯一的列上的事务性复制更新
  • 并发快照处理从删除的限制
  • 在事务复制中的脚本自定义存储过程的能力
  • 清除合并复制基于保持期的元数据
  • 从不同版本的 SQL Server 还原复制的数据库
  • -MaxCmdsInTran 日志读取器代理程序的参数
5.3.1 事务复制更新自定义存储过程

在 SP1 中引入

在事务复制过程中安装程序,自定义存储过程插入,删除和更新操作在订阅数据库中创建的。不管列的数量受到 UPDATE 语句,更新自定义存储的过程将更新订阅表中的所有列。只需将一直没有更改任何列被重置为相同的值更新之前存在的。通常,此操作会使没有问题。但是,如果任一这些列被编入索引此重置会变得昂贵。

如果您正在使用事务复制,订阅表上有多个索引,并且由于更新的更改只有几个列值,索引维护开销可能会限制性能的唯一因素,将更改应用于订阅服务器。例如对于正在出于报告目的而使用的订阅数据库可能有许多比发布数据库的多个索引。动态地生成 UPDATE 语句在运行时可能会提高性能。此更新将包括只已经从而创建一个最佳 UPDATE 字符串的列。

此服务包包括一个新存储的过程 sp_scriptdynamicupdproc,生成要动态地生成更新语句在运行时可以在订阅服务器上使用的自定义存储的过程。但是,会导致增加额外的处理在运行时动态的 UPDATE 语句,要生成的顺序。

sp_scriptdynamicupdproc

生成将创建一个动态更新的存储过程在创建程序语句。自定义存储过程内的 UPDATE 语句根据 MCALL 语法,用于指示要更改的列动态,建立。如果订阅表的索引数的增长和被更改的列数很小,请使用此存储的过程。此存储的过程在发布服务器上发布数据库上运行。

语法

sp_scriptdynamicupdproc [@ artid =] artid

参数

[@ artid =]artid 是文章 id。artidint,与没有默认值。

结果集

返回一个结果集单个 nvarchar(4000) 列组成。在结果集形成完整的 CREATE 程序语句用于创建自定义存储的过程。

说明

在事务复制中使用 sp_scriptdynamicupdproc。默认 MCALL 脚本编写逻辑包括在 UPDATE 语句内的所有列,并使用位图来确定已更改的列。如果未更改的列,列设置返回到其自身,这通常会导致任何问题。如果编制列,了自动索引会进行额外处理。此存储的过程使用动态方法的通过与之相反: 它包括它提供了一个最佳 UPDATE 字符串只有更改过的列。但是,额外处理时累算在运行时生成动态 UPDATE 语句时。建议您测试存储的过程的动态方法和静态默认值的方法,然后选择合适的最佳解决方案,以满足您的特殊需求。

权限在 public 角色的成员可以执行 sp_scriptdynamicupdproc

示例

This example creates an article (with artid set to 1) on the authors table in the pubs database, and specifies that the UPDATE statement is the custom stored procedure to execute:
'MCALL sp_mupd_authors'
Generate the custom stored procedures to be executed by the Distribution Agent at the Subscriber by running the following stored procedure at the Publisher:
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
运行此存储过程后,您可以手动创建到订阅服务器上的存储的过程使用生成的脚本。

5.3.2 事务复制 UPDATE 语句,唯一的列上

在 SP1 中引入

在事务的复制 UPDATE 语句通常是作为复制更新。但是,如果更新更改是唯一索引、 聚集的索引或作为唯一约束使用的表达式的一部分的任何列,作为跟 INSERT 语句在订阅服务器上的 DELETE 语句执行更新。这是因为这种类型的更新可能会影响多行,并且如果已传递逐行更新则唯一性冲突的机会。

但是,如果更新影响只能有一行,则没有机会对唯一性冲突。因此,跟踪标志 8207 已添加到此服务包,以允许任何唯一的列会影响复制为 UPDATE 语句只能有一个行的更新。此优化已专门为安装在订阅服务器上的用户定义更新触发器,并会影响唯一列上的只能有一个行的更新要求这些触发器激发的应用程序添加。

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

重要 通常,跟踪标志 8207 与只读事务复制一起使用。如果主键更新可能会在订阅服务器上发生,请不要使用可更新订阅使用此跟踪标记。

5.3.3 限制从并发快照处理

在 SP1 中引入

在 SQL Server 2000 并发快照处理已不推荐如果发布的表有一个唯一的索引,这是不为主键或聚集键。如果对群集注册表项进行数据修改生成并发快照时,复制可能会失败,重复的键错误时应用到订阅服务器的并发快照。在此服务包中不再有使用并发快照处理任何限制。

5.3.4 脚本编写自定义存储的过程的事务复制

在 SP1 中引入

设置时 nosync 订阅 (也就是订阅不会收到初始快照的),自定义存储的过程的 INSERT,UPDATE 和 DELETE 语句需要手动创建。通常,这些语句是在订阅服务器上创建初始快照传递时。一个新存储的过程 sp_scriptpublicationcustomprocs,已添加到自定义存储过程在发布级别为生成脚本。这一新功能可能会使它更易于设置 nosync 订阅。

sp_scriptpublicationcustomprocs

在出版物中启用了自动生成自定义过程架构选项的此存储过程脚本自定义的 INSERT,UPDATE,和删除的所有表项目的过程。sp_scriptpublicationcustomprocs 做很有用的设置的手动应用快照的订阅。

语法

sp_scriptpublicationcustomprocs [@ 出版物] = publication_name

参数

[@ 出版物] = publication_name

是出版物的名称。没有默认值与一个 sysnamepublication_name

返回代码值

0 (成功) 或 1 (失败)

结果集

返回一个结果集单个 nvarchar(4000) 列组成。在结果集形成完整的 CREATE 程序语句创建自定义存储的过程所必需。

说明

自定义过程不编写脚本的文章,而不将自动生成 (0x2) 的自定义过程架构选项。

权限

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

示例

此示例生成名为罗斯文的出版物中的自定义存储过程的脚本。
exec Northwind.dbo.sp_scriptpublicationcustomprocs @publication = N'Northwind'
5.3.5 合并复制基于保持期元数据清除

在 SP1 中引入

当有大量的合并复制系统表中的元数据清除元数据可提高性能。要 SQL Server 2000 SP1,之前可能被元数据清理只能由运行 sp_mergecleanupmetadata。但是,SQL Server 2000 SP1 和更高版本包括基于保持期元数据清除操作,这意味着可以从以下系统表自动删除元数据:
  • MSmerge_contents
  • MSmerge_tombstone
  • MSmerge_genhistory
  • 前像表如果存在任何
注意 之前映象表如果会显示在该发布上启用了 @ keep_partition_changes 同步优化选项。

基于保持期的元数据清除操作就会发生,如下所示:
  • 如果 –MetadataRetentionCleanup 合并代理程序参数设置为 1,因为它是默认情况下,合并代理程序清除订阅服务器上和在合并中所涉及的发布服务器。
  • 如果 –MetadataRetentionCleanup 参数设置为 0,自动清理不会发生。在这种情况下通过执行 sp_mergemetadataretentioncleanup 手动启动基于保持期的元数据清除操作。此存储的过程必须在每个发布服务器和订阅服务器应清理的执行。它是建议使用,但不是要求,发布服务器和订阅服务器上进行清理在类似的点的时间 (请参阅本部分中稍后的防止 False 冲突)。

    注意–MetadataRetentionCleanup 1 参数现在是装运 SQL Server 2000 sp1 和更高版本中的所有合并代理程序配置文件的一部分。如果一个服务器升级到 SP1 或 SP2,并将合并复制合并代理程序配置文件将自动更新以包括此参数。如果升级到 SP1 或 SP2 已启用合并复制的服务器,合并代理程序配置文件不会自动更新 ; 通过执行 sp_add_agent_parameter 更新配置文件 (请参见"Additional parameter for sp_add_agent_parameter,"本部分中稍后介绍)。
重要 为出版物则默认保留周期为 14 天。如果一篇文章属于多个出版物中,可能有不同的保留期。在那种情况下最长的保留周期用于确定最早可能时间清理,可能会发生。如果有一个数据库上的多个发布,并且这些发布的任何一个使用了无限的发布保持期 (保留 @ = 0) 的数据库将不会自动清除合并元数据。由于这个原因请谨慎使用无限的发布保持期。

sp_add_agent_parameter 的附加参数

系统过程 sp_add_agent_parameter 现在具有使您可以添加或合并代理程序配置文件中删除元数据保留清理的 MetadataRetentionCleanup 参数。值为 1 表示配置文件应包含清理 ; 值为 0 指示不应包含清理。例如对于要配置文件中添加元数据保留清除操作执行:
EXEC sp_add_agent_parameter @profile_id=<my_profile_id>, @parameter_name='MetadataRetentionCleanup', @parameter_value=1
在不同版本的 SQL Server 拓扑中的元数据清除操作

若要在合并复制中所涉及的数据库中发生的自动基于保持期清理,数据库和合并代理程序都必须运行 SQL Server 2000 SP1 的服务器上或更高版本。例如:
  • 一个 SQL Server 7.0 拉订阅服务器将不会在 SQL Server 2000 SP1 发布服务器上运行清理。
  • (无 SP1) SQL Server 2000 订阅服务器数据库中 SQL Server 2000 SP1 强制合并代理程序将不会运行清理。
  • SQL Server 2000 SP1 强制合并代理程序将运行一个 SQL Server 2000 SP1 的发布服务器数据库中的清理,即使它有是 SQL Server 2000 的订阅者或更早版本。
在某些服务器上而不在其他人的自动清理最多会导致假的冲突和那些应很少发生。用于包含 prior to SQL Server 2000 SP1 SQL Server 的版本的拓扑结构,您可能会通过不清理自动的所有服务器上运行 sp_mergemetadatacleanup 看到性能收益。

防止 false 冲突

基于保持期的元数据清除操作可防止无法收敛并静默覆盖的其他节点上的更改。但是,满足这两个以下条件时,可能会发生错误的冲突:
  • 在一个节点清除元数据并不能是另一个。
  • 在清理向上节点的后续更新发生在其元数据已被删除的行上。
例如对于如果在发布服务器上,但不能在订阅服务器上,会清理元数据,并在发布服务器上进行更新,则即使出现要同步的数据将发生冲突。

若此冲突确保在同一时间有关的相关节点清理元数据。如果 -MetadataRetentionCleanup 1 是使用,在发布服务器和订阅服务器上清理自动合并启动之前从而确保节点正在清理一次。如果将发生冲突,使用合并复制冲突查看器查看冲突并根据需要更改结果。

如果一篇文章属于多个出版物,或者在重新发布的情况下,则可能保留期,对于一个给定的行,发布服务器和订阅服务器上都不同。若要减少的元数据的一侧,但不是清除机会,建议这些不同的发布具有类似的保留期。

注意 如果有大量的元数据,必须进行清理的系统表中合并进程可能需要较长的时间运行。清除元数据以常规方式若要避免此问题。

5.3.6 备份和还原合并复制的问题

在 SP1 中引入

发布数据库从备份中还原的第一次应与有 (也就是订阅有一个分配的优先级值) 的全局订阅的订阅数据库同步以保证正确的聚合行为。同步可以确保在发布数据库丢失了由于还原操作的更改会准确地重新应用。

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

正在计划备份,并还原为合并复制的操作时请考虑以下附加问题:
  • 不超过保留期的备份中还原的订阅数据库。

    只有在备份是不早于订阅服务器上的所有发布的订阅在最短保持期,请从备份中还原一个订阅数据库。例如对于如果订阅服务器订阅与保留期,10 和 20,30 天的三个发布分别,用于还原数据库备份不应超过 10 天。
  • 生成一个备份之前进行同步。

    强烈建议与在发布服务器同步订阅服务器之前执行备份。否则,系统可能未收敛正确如果订阅服务器从这个备份还原。尽管该备份文件本身可能是非常新,与某一发布服务器上一次同步可能几乎一样在保持期旧。例如对于考虑具有 10 天的保留期的出版物。上一次同步 8 天,现在执行备份。如果备份应用 4 天之后,最后一次同步将发生 12 天这是过去的保持期。如果订阅服务器上有同步在备份之前的右侧,在保持期内是订阅数据库。
  • 如果您更改出版物保留值,请重新初始化订阅服务器。

    如果希望更改出版物保持值手动重新初始化订阅服务器以避免在无法收敛的数据。当发布保持期结束时,基于保持期的元数据清理功能合并系统表中删除过时的元数据。

    出版物保持值用于确定应过期后还没有在保持期内同步的订阅。如果一个清理后, 增加发布保持期和订阅试图与已删除元数据) 的发布服务器合并,不会由于增加了的保留值的过期订阅。此外,发布服务器上没有足够多的元数据以更改下载到订阅服务器会导致无法收敛。
  • 使用相同的出版物保留值的所有发布服务器和其备用同步伙伴。使用不同的值,可能会导致无法收敛。
5.3.7 从不同版本的 SQL Server 还原复制的数据库

在 SP1 中引入

将备份还原到相同的服务器和数据库 — — 运行相同版本与从其中创建备份服务器 — 将保留复制设置。如果要还原复制的数据库版本的不同的用于备份数据库版本 SQL Server,请考虑以下问题:
  • 如果要从使用 SQL Server 2000 创建的备份还原到 SQL Server 2000 SP2,并且您想要保留复制设置,您必须运行 sp_vupgrade_replication。运行 sp_vupgrade_replication 可以确保已升级复制元数据。如果不运行 sp_vupgrade_replication,复制元数据可能仍处于不可预测的状态。
  • 如果要从使用 SQL Server 7.0 (无论是发布版本、 Service Pack 1、 Service Pack 2,或 Service Pack 3),创建的备份还原到 SQL Server 2000,并且您想要保留复制设置,则必须重新安装 service pack 之前创建备份。可以直接从复制的数据库在 SQL Server 7.0 中创建的备份还原到 SQL Server 2000 SP2,但将不会保留复制设置。
5.3.8 一个新的日志读取器代理程序 MaxCmdsInTran 参数

在 SP1 中引入

使用 SP1,一个新的命令提示符参数启动 -MaxCmdsInTran,已添加的日志读取器代理程序。影响大量的命令 (通常是大容量更新或删除) 的事务的分发代理程序必须等到日志读取器代理程序将写入分发数据库的整个事务,它才能开始传播到订阅服务器事务。此延迟阻止分发代理程序,并减少了两个代理之间并行度。

通过 –MaxCmdsInTran 日志读取器代理程序将大的交易记录分成较小的块,每个块包含相同或更少的命令,比该 -MaxCmdsInTran 输入。因此,分发代理程序可以启动日志读取器代理程序通过更高版本的数据块,在同一个事务仍正常工作的同时处理的事务更早版本块。

日志读取器代理程序和分发代理程序之间的并行度的这一改进有助于更好地整体复制吞吐量。注意: 事务块是在订阅服务器上提交为个别的事务的中断 ACID 的原子性属性。此结果不是大多数的情况中的问题,但建议您在此选项以确保测试。

定义 –MaxCmdsInTran 参数

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

5.3.9 非唯一聚集索引的限制

(仅适用于事务复制) 的 SP2 中引入

对于事务复制发布后,您不能在表上创建非唯一的聚集的索引。创建索引之前必须首先删除包含表的任何出版物。

一个新-5.3.10 MaxNetworkOptimization 的快照代理程序的命令行参数

在正常的处理过程中合并复制可以将 DELETE 命令发送到订阅服务器不属于订阅服务器的分区的行。这种类型的 DELETE 命令称为不相关的删除。不相关的删除不会影响数据完整性或收敛,但可能会导致不必要的网络通信量。

若要减少网络通讯量不相关的删除从,可以使用新的快照代理程序参数 -MaxNetworkOptimization 与合并复制发布。该参数设置为 1 可以减少不相关的删除的可能性最大限度地提高其了网络优化。

注意 仅当在合并出版物的同步优化选项设置为 true 时此参数设置为 1 是很有用 (@ keep_partition_changessp_addmergepublication 的参数)。

默认值为 0,因为该参数设置为 1 可以增加元数据的存储并导致性能下降,在发布服务器上,如果存在多个级别的联接筛选器和复杂的子集筛选器。您应该仔细评估复制拓扑,并只设置 -MaxNetworkOptimization 为 1,如果从删除不相关的网络通信量很高得难以接受。

您可以通过执行系统过程 sp_add_agent_parameter 将此参数添加到快照代理程序配置文件:
EXEC sp_add_agent_parameter 1, 'MaxNetworkOptimization', 1

5.4 元数据服务

以下各项应用到 SQL Server 2000 元数据服务。
5.4.1 在 Unicode 中导出元数据浏览器

在 SP1 中引入

元数据浏览器现在将导出在 Unicode 中的基于 XML 的元数据。之前 SQL Server 2000 SP1,浏览器导出不支持非英语字符的 ANSI 代码。此功能的更改是对用户透明的。为此 SP2 发行版的导出的数据总是表示为 Unicode。您仍然可以通过设置注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Repository\Engine\XMLExport 为"0"的值导出在 ANSI 代码。下面的列表表示您可以设置对此注册表项的值:
  • NOOBJID = 1
  • NOHEADER = 2
  • 缩进 = 4
  • UNICODE = 8
  • LOGUNMAPPEDTAGS = 16
  • EXPORTBASE = 32
有关每个标志的详细信息,请参阅 SQL Server 联机丛书 中的"IExport::Export 方法"。

5.5 数据转换服务

以下各项应用到 SQL Server 2000 数据转换服务 (DTS)。
5.5.1 DTS 向导不会再限制为 255 个字符的字符串列

在 SP2 中引入

当您将数据导出到文本文件时,DTS 导入导出向导现在将配置写入多达 8000 个字符,包含字符串类型数据的任何列的包。

5.5.2 记录由 SQL Server 代理运行的 DTS 包的安全上下文

在 SP2 中引入

SQL Server 代理记录在作业中的每个步骤在其下运行的安全上下文。安全上下文从 SP2 开始将显示在作业历史记录对话框。当您运行一个 DTS 包从作业中步骤时,SQL Server 代理会记录在其下运行包的用户帐户。此信息可帮助诊断权限和身份验证时出现问题的计划的 DTS 包运行在服务器上的管理员。

5.5.3 SQL Server 代理代理帐户的改进

在 SP2 中引入

SP2,才能存储在服务器上的 DTS 包不能运行 SQL Server 代理代理帐户的凭据下除非代理帐户必须在其中运行 (在作业运行从 xp_cmdshell) 的情况下服务器或 (在代理程序作业) 的情况下,代理帐户的用户 TEMP 文件夹的访问。因此,用户经常不得不调整 SQL Server 或 SQL 代理启动帐户,使其指向被同时启动的可访问的目录和代理帐户的像 C:\TEMP TEMP 环境变量。sp2,DTS 增强了要使用系统 TEMP 文件夹,如果用户的 TEMP 文件夹不可极大地减少这些调整。

5.6 为虚拟的备份设备 API 增强功能

以下项目将应用于 SQL Server 2000 虚拟备份设备 API。
5.6.1 捕获一个快照中的多个数据库

在 SP2 中引入

虚拟的备份设备 API 允许将 SQL Server 2000 集成到他们的产品的独立软件供应商。此 API 被工程中提供最大限度的可靠性和性能。它完全支持的 SQL Server 2000,包括的热和快照备份功能全面的备份和还原功能。

在 SP1 中以及更早版本,无法冻结并一次备份多个单个数据库。SP2 现在提供了对冻结和捕获通过 VDC_PrepareToFreeze 命令的一个快照中的多个数据库的服务器端支持。

虚拟的备份设备规格 SP2 中包含 VDC_PrepareToFreeze 命令的更新的信息。虚拟设备接口的头文件 (vdi.h) 的更新的版本可以在找 \devtools\include SP2 的安装目录中。

6.0 英语查询增强

在 SP1 中引入

Microsoft 发布了一种增强安全性的英文查询应用程序。此增强功能未安装服务包的一部分。但是,则建议您应用它如果您正在使用英文查询。在文件夹 \EQHotfix SP2 CD-ROM 上位于安全增强功能。有关英文查询增强功能的详细信息都在 Microsoft Product Support Services Knowledge Base。 搜索知识库文章 297105。

7.0 db-library 和用于 c 语言的嵌入式的 SQL

在 SP1 中引入

虽然仍支持 db-library 和用于 C 应用程序编程接口 (api) 的嵌入式 SQL SQL Server 2000 中,SQL Server 没有将来的版本将包括在使用这些 api 的应用程序上的编程工作所需文件。从使用 DB 库和嵌入式 SQL 用于 c 语言编写的现有应用程序的连接仍会在下一版本的 SQL Server,支持,但这种支持还将删除在将来的版本中。在编写新的应用程序时则避免使用这些组件。修改现有的应用程序时, 您要删除这些技术上的依赖项强烈建议的。而不是 db-library 或用于 c 语言的嵌入式 SQL,您可以使用 ADO、 OLE DB 或 ODBC SQL Server 中访问数据。请有关这些技术的详细信息,参阅对 SQL Server 联机丛书

属性

文章编号: 889552 - 最后修改: 2007年11月16日 - 修订: 1.3
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 Service Pack 2
关键字:?
kbmt kbdatabase kbservicepack kbhowto kbinfo KB889552 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 889552
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