Description of Service Pack 1 for SQL Server 2000: May 30, 2001
Important This article contains information about modifying the registry.
Before you modify the registry, make sure to back it up and make sure that you
understand how to restore the registry if a problem occurs. For information
about how to back up, restore, and edit the registry, click the following
article number to view the article in the Microsoft Knowledge Base: 256986 (http://support.microsoft.com/kb/256986/) Description of the Microsoft Windows Registry On This PageSUMMARYMicrosoft SQL Server 2000 Service Pack 1 (SP1) provides
updates for the database components of a SQL Server 2000 installation. This
article includes the following information:
ContentsINTRODUCTION This release of Microsoft SQL Server 2000 Service Pack 1
(SP1) is provided in three parts:
Database Components SP1 installation The Database Components SP1 Setup program automatically detects which edition of SQL Server 2000 is present on the instance of SQL Server 2000 that is being upgraded. Setup only upgrades the components that have been installed for that instance. For example, when the service pack is applied to a computer that is running SQL Server 2000 Standard Edition, it does not upgrade components that are only included with SQL Server 2000 Enterprise Edition. Database Components SP1 can be applied to a single default instance or a named instance of SQL Server. If you upgrade multiple instances of SQL Server 2000, you must apply SP1 to each instance. When you upgrade one instance on a computer that has one or more instances of SQL Server 2000, all the tools are upgraded to SP1. There are not separate copies of the tools for each instance on a computer. Removing SQL Server 2000 SP1 When the service pack is installed, it changes the system tables for maintenance. Because of these changes, SQL Server 2000 SP1 cannot be easily removed. To revert to the build that you were running before you installed SP1, you must remove and reinstall SQL Server 2000. Before you remove SQL Server 2000, detach your databases. Reattach them after you reinstall SQL Server 2000. For information about using sp_attach_db and sp_detach_db, see SQL Server Books Online. After you have reinstalled SQL Server 2000, you must do the following:
290212 (http://support.microsoft.com/kb/290212/)
List of bugs fixed in SQL Server 2000 Service Pack 1 (1 of 2)
Each fix listed in this article has a link to a
Knowledge Base article that describes the problem that the fix addresses.
QFE Fixes If you received a QFE fix after May 1, 2001, the fix is not included in SQL Server 2000 SP1. Contact your primary support provider about QFE fixes and SQL Server 2000 SP1. Identifying the current version of SQL ServerTo identify the version of SQL Server 2000 that you have installed, type SELECT @@VERSION at a command prompt if you use the osql or isql utilities. If you use SQL Query Analyzer, type SELECT @@VERSION in the Query window. The following table shows the relationship between the version string that the SELECT @@VERSION command reports and the SQL Server 2000 version number.
Identifying the current version of Analysis ServicesTo identify the version of Analysis Services that you have installed, follow these steps:
Downloading and extracting SQL Server 2000 SP1SQL Server 2000 SP1 is distributed in two formats:
The setup process is the same for both the SQL Server 2000 SP1 CD and the extracted SQL Server 2000 SP1 files. Note Some of the files in service packs are system files. Therefore, you cannot view them unless you have the Show all files check box selected. To select the Show all files check box, do the following:
On your local hard disk drive, you need free space that is approximately three times the size of the self-extracting file. This space includes space to store the file, space to store the extracted service pack files, and temporary working space that the self-extraction program itself requires. You can rename the folder where you extract the files after you extract the components. However, make sure that the folder name does not contain space characters. You can use the same target folder for each file that is listed earlier in this section. They will not overwrite or interfere with each other. Installing SQL Server 2000 SP1To install SQL Server 2000 SP1, do one the following, depending on the components that you are installing:
Before you install SQL Server 2000 SP1, make sure that your databases and file groups are writable and that the user account that is running SQL Server Setup has permission to access the databases. Setup fails if you do not do this. The cause of the failure is recorded in the Sqlsp.log file for SQL Server or in the Olapsp.log file for Analysis Services. Also, if the databases are not writable, you must disable log shipping to apply the service pack. You also can use Systems Management Server to install SQL Server 2000 SP1 automatically on multiple computers that are running Windows NT Server 4.0 by using a package definition file (Smssql2ksp1.pdf file). The package definition file automatically creates a SQL Server package in Systems Management Server. The SQL Server package can then be distributed and installed on computers that are running Systems Management Server. The Sms2kdef.bat file is a batch file that detects the operating system of the computer and runs the appropriate version of the Setup program. Note Before you install SQL Server 2000 SP1 on the French language version of Windows NT 4.0, read and follow the instructions in the following article in the Microsoft Knowledge Base: 259484 (http://support.microsoft.com/kb/259484/) CryptEncrypt and CryptDecrypt functions are supported with the French locale on Windows 2000
Back up your SQL Server databasesBefore you install the service pack, back up the master database and the msdb database. Installing the service pack changes the master database and msdb database. The changes make them incompatible with pre-SP1 versions of SQL Server 2000. These backups are required if you decide to reinstall SQL Server 2000 without SP1.Applying SQL Server 2000 SP1 does not affect any other databases. Back up your Analysis Services databasesBefore you install the service pack, back up your Analysis Services databases by making a backup copy of your Microsoft Analysis Services\Data folder. By default, this folder is installed in the C:\Program Files folder. If you have not migrated your Analysis Services repository to SQL Server, make a backup copy of the Msmdrep.mdb file. This file is located in the Microsoft Analysis Services\bin folder. To save your Analysis Services registry entries, run Registry Editor, and use the Export Registry File item on the Registry menu to export the HKEY_LOCAL_MACHINE\SOFTWARE\OLAP Server subkey to a file for backup.Make sure that the system databases have sufficient free spaceIf the autogrow option has not been selected for the master database and msdb database, the databases must have at least 500 kilobytes (KB) of free space. To verify that they have this space, run the sp_spaceused system stored procedure for the master database or msdb database. If the unallocated space in either database is less than 500 KB, increase the size of the database. For more information, see "Expanding a Database" in SQL Server Books Online.If the autogrow option has been selected for the master database and msdb database in the instance of SQL Server 2000 or Desktop Engine where you apply SQL Server 2000 SP1, you can skip this step. To verify that this option has been selected in SQL Server 2000, open SQL Server Enterprise Manager, right-click the icon for the database, and then click Properties. Verify that the Automatically grow file check box is selected. To verify that this option has been selected in Desktop Engine, issue the following SQL statements:
Stop services and applications before you run the SQL Server 2000 SP1 Setup programYou can apply SQL Server 2000 SP1 without shutting down services. If you do not shut down services, the Setup program restarts your computer.To run the Setup program without restarting your computer, stop the following services and applications before you apply the service pack:
Install Database Components SP1Run the Setup.bat script from one of the following locations:
The Setup program then does the following:
The Setup program puts a record of the actions it performed in the Sqlsp.log file in the Windows directory of the computer where it was run. Install Analysis Services SP1To install Analysis Services SP1, run Setup.exe from one of the following locations:
Install Desktop Engine SP1To upgrade an existing installation of the Desktop Engine, run Setup.exe from one of the following locations:
Note Do not use opening and closing quotation marks around the
instance name. The instance name may also be specified in a Setup.ini file or another settings file. For more information, see "SQL Server 2000 Desktop Engine Setup" in SQL Server Books Online. If Setup cannot find the correct patch file, you will receive an error message. Installing new instances of the Desktop Engine after you apply SQL Server 2000 SP1 Follow these steps to install a new instance of the Desktop Engine after you apply SQL Server 2000 SP1.
Restart servicesWhen the Setup program finishes, it may prompt you to restart the system. After the system restarts or after the Setup program finishes without requesting a restart, use the Services application in Control Panel to make sure that MS DTC and the Microsoft Search, MSSQLServer, MSSQLServerOLAPService, and SQLServerAgent services are running. Back up the upgraded master database and msdb database, and re-enable log shipping.Restart applicationsRestart the applications that you closed before you ran SQL Server 2000 SP1 Setup.Install SQL Server 2000 SP1 on a server clusterTo install SQL Server 2000 SP1 on a server cluster:
Install SQL Server 2000 SP1 on replicated serversApply this service pack to all SQL Server 2000 participants in your replication topology These participants include Publisher, Distributor, and Subscribers. Deploy SQL Server 2000 SP1 across replicated servers in the following sequence:
In merge replication, the distribution database is used only to store the agent history. Typically, the distribution database resides on the same computer that the published database resides on. However, you may also have a remote distribution database for merge replication at sites that want to centralize agent history logging. You may not be able to upgrade all the servers in a replication topology immediately. However, replication operations are generally unaffected between servers that are running instances of SQL Server 2000 and this service pack. The exceptions to this are covered in the "A new -MaxCmdsInTran parameter for the Log Reader Agent" section later in this article. Uninstalling SQL Server 2000 SP1To revert to the pre-SP1 version of SQL Server or Analysis Services, you must do the following:
Unattended installationsDatabase Components SP1 can be applied to an instance of SQL Server 2000 that is running on a computer that is in unattended mode. The Database Components SP1 CD contains .iss files that can be used to perform unattended SP1 setups. These files are located in the root directory on the CD. The files can be used to perform different types of installations, as follows:
Redistributing Database Components SP1 client componentsThis service pack includes a self-extracting file that is named Sqlredis.exe, and a version of Redist.txt. These files are in the Database Components SP1. By default, when Sqlredis.exe is run, it takes the following actions:
Documentation notesThis section describes issues that may occur when you run this service pack. These issues apply to running the service pack to upgrade to SQL Server 2000. They do not result from fixes that this service pack contains.Using Chinese, Japanese, or Korean characters with Database Components SP1If you install Database Components SP1 on a server that is running the Windows NT 4.0 or Windows 98 operating systems and you upgrade to Windows 2000, the Windows 2000 upgrade replaces some system files. These system files are required for sorting Chinese, Japanese, or Korean characters. If you use Chinese, Japanese, or Korean characters in your SQL Server databases, rerun the version of Sqlredis.exe that came with SQL Server 2000 SP1 after you complete the upgrade to Windows 2000. For more information about running Sqlredis.exe, see the "Redistributing Database Components SP1 client components" section.Note You do not have to rerun Sqlredis.exe on client computers or on servers that do not have databases that contain Chinese, Japanese, or Korean characters. Meta Data Browser exports metadata in UnicodeWarning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.Meta Data Browser now exports XML-based metadata in Unicode. Before SQL Server 2000 SP1, the browser exported ANSI code. However, ANSI code does not support non-English characters. This functional change is transparent to the user. As of this SQL Server 2000 SP1 release, exported data is always expressed as Unicode. You can still export in ANSI code by setting the value of the following registry subkey to zero: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Repository\Engine\XMLExport The following lists the values that you can set for this registry
subkey:
Remote partitionsWhen a remote partition is created on a local server that has SQL Server 2000 SP1 installed on it, the remote server must use a domain user account that has full access permissions to the parent cube on the local server. Any user account that is a member of the OLAP Administrators group on the local server has full access permissions.Additionally, if the local server has SQL Server 2000 SP1 installed on it, the remote server also must have SQL Server 2000 SP1 installed on it to create or administer remote partitions. Hash teams removedIn this service pack, hash teams have been removed. Because of certain enhancements to SQL Server 2000, hash teams no longer produce the performance benefits they offered in SQL Server 7.0. Also, removing hash teams makes SQL Server 2000 more stable. Therefore, the query optimizer no longer generates query plans by using the hash teams.Sometimes, removing hash teams may cause the query to be processed more slowly. Analyze such queries to see whether creating more appropriate indexes return query performance to its previous level. Affinity mask switches addedTwo affinity mask switches have been added to this service pack.Affinity mask I/O switch With this service pack, you can specify the CPUs that are used to run threads for disk I/O operations. You must use this switch with the affinity mask option. For additional information, click the following article number to view the article in the Microsoft Knowledge Base: 298402 (http://support.microsoft.com/kb/298402/)
Understanding how to set the SQL Server I/O affinity option
Affinity mask connection switch
With this service pack, you can configure systems that are enabled for Virtual Interface Architecture (VIA) to bind the SQL Server connections from certain network cards to a processor or to a set of processors. This switch must be used with the affinity mask option. For additional information, click the following article number to view the article in the Microsoft Knowledge Base: 299641 (http://support.microsoft.com/kb/299641/)
Understanding how to configure a SQL Server connection affinity mask
Analysis Services enhancementsThe following Analysis Services enhancements are included in SQL Server 2000 SP1:
Analysis Services redistributable client setup updatesAnalysis Services SP1 includes updated versions of the following client redistributable Setup programs:
Support is enabled for third-party data-mining algorithm providersThe Analysis Services SP1 now includes support for adding third-party data mining algorithm providers. For more information about developing a data-mining algorithm provider, see the OLE DB for Data Mining Resource Kit. The kit includes the code for a sample data-mining algorithm provider. For additional information visit the following Microsoft Web site: http://www.Microsoft.com/data (http://www.Microsoft.com/data) Analysis Services installation on a computer with updated client filesIf you install SQL Server 2000 Analysis Services on a computer that contains updated client files, such as SQL Server 2000 SP1 or Office XP, you must apply Analysis Services SP1 to make sure that the client works correctly and that you can browse cubes. Replication enhancementsThe following replication enhancements are included in SQL Server 2000 SP1:
Transactional replication UPDATE in custom stored procedureDuring transactional replication setup, custom stored procedures for insert, delete, and update actions are created in the subscription database. Regardless of how many columns are affected by an UPDATE statement, the UPDATE stored procedure updates all the columns in the subscription table. This update sets any column that has not changed back to itself. Typically, this action causes no problems. However, if any one of these columns is indexed, Resetting the columns can become expensive. If the following conditions are true, the index maintenance overhead may become a limiting factor when changes are applied at the Subscriber:
This service pack includes a new stored procedure, sp_scriptdynamicupdproc. This stored procedure generates a custom stored procedure you can use at the Subscriber to dynamically build the update statement at runtime. However, additional processing will be incurred at run time for the dynamic UPDATE statement to be built. sp_scriptdynamicupdproc Generates the CREATE PROCEDURE statement that creates a dynamic update stored procedure. The UPDATE statement within the custom stored procedure is built dynamically based on the MCALL syntax that indicates which columns to change. Use this stored procedure if the number of indexes on the subscribing table is growing and the number of columns being changed is small. This stored procedure is run at the Publisher on the publication database. Syntax sp_scriptdynamicupdproc [ @artid =] artid Arguments [@artid =] artid Is the article ID. artid is int, without a default. Result Sets Returns a result set that is made up of a single nvarchar(4000) column. The result set forms the complete CREATE PROCEDURE statement that is used to create the custom stored procedure. Remarks The sp_scriptdynamicupdproc stored procedure is used in transactional replication. The default MCALL scripting logic includes all columns within the UPDATE statement. The logic uses a bitmap to determine the columns that have changed. If a column did not change, the column is set back to itself. This process generally causes no problems. If the column is indexed, additional processing occurs. The dynamic approach includes only the columns that have changed. Including only the columns that have changed provides an optimal UPDATE string. However, additional processing occurs at run time when the dynamic UPDATE statement is built. We recommend that you test the dynamic and static approaches and that you choose the optimal solution. Permissions Members of the public role can run the sp_scriptdynamicupdproc stored procedure. Examples This example creates an article (with artid set to 1) on the authors table in the pubs database. The example specifies that the UPDATE statement is the custom procedure to run: Generate the custom stored procedures to be executed by the Distribution
Agent at the Subscriber by running the following stored procedure at the
Publisher: After you run this stored procedure, you can use the resulting script to manually create the stored procedure at the Subscribers. Transactional replication UPDATE statements on unique columnsIn transactional replication, UPDATE statements generally are replicated as updates. But if the update changes any column that is part of a unique index, of a clustered index, or of an expression that is used as a unique constraint, the update is performed as a DELETE statement that is followed by an INSERT statement at the Subscriber. This is done because this kind of update may affect multiple rows, and a uniqueness violation may occur if updates were delivered row by row. However, if the update affects only one row, a uniqueness violation will not occur. Therefore, trace flag 8207 has been added to this service pack to enable updates to any unique column that affect only one row to be replicated as UPDATE statements. This optimization has been added specifically for applications that install user-defined UPDATE triggers at the Subscriber and that require these triggers to fire for updates that affect only one row on a unique column. To use trace flag 8207, turn it on at the command prompt by typing sqlservr.exe -T8207, or turn it on at run time by using DBCC TRACEON(8207, -1) before the Log Reader Agent is started. Important Typically, trace flag 8207 is used with read-only transactional replication. Do not use this trace flag with updatable subscriptions if the primary key UPDATE can occur at the Subscriber. Restrictions removed from concurrent snapshot processingIn SQL Server 2000, concurrent snapshot processing was not recommended if the publishing table had a unique index that was not the primary key or the clustering key. If data modifications were made to the clustering key while a concurrent snapshot was being generated, replication could fail with a duplicate key error when the concurrent snapshot was applied to a Subscriber. In this service pack, there are no longer restrictions on using concurrent snapshot processing. Transactional replication scripting custom proceduresWhen you set up nosync subscriptions, the custom procedures for INSERT, UPDATE, and DELETE statements must be manually created. The nosync subscriptions are subscriptions that do not receive the initial snapshot. Typically, these statements are created at the Subscriber when the initial snapshot is delivered. A new stored procedure, sp_scriptpublicationcustomprocs, has been added to generate scripts for the custom stored procedures at the publication level. This new functionality may make it easier to set up nosync subscriptions. sp_scriptpublicationcustomprocs Scripts the custom INSERT, UPDATE, and DELETE procedures for all table articles in a publication that has the auto-generate custom procedure schema option enabled. The sp_scriptpublicationcustomprocs stored procedure is particularly useful for setting up subscriptions that have the snapshot manually applied. Syntax sp_scriptpublicationcustomprocs [@publication]= publication_name Arguments [@publication] = publication_name Is the name of the publication. publication_name is sysname without a default. Return Code Values 0 (success) or 1 (failure) Result Sets Returns a result set that is made up of a single nvarchar(4000) column. The result set forms the complete CREATE PROCEDURE statement that is required to create the custom stored procedure. Remarks Custom procedures are not scripted for articles without the auto-generate custom procedure (0x2) schema option. Permissions Execute permission is granted to public. A procedural security check is performed inside this stored procedure to restrict access to members of the sysadmin fixed server role and db_owner fixed database role in the current database. Example This example generates a script of the custom stored procedures in a publication that is named Northwind. Merge replication retention-based metadata cleanupSometimes, cleaning up metadata that was created in system tables during merge-replication processing improves the performance of merge replication. To clean up metadata in the system tables in SQL Server 2000, the replication topology had to be inactive, and data had to be quiesced. However, SQL Server 2000 SP1 includes retention-based metadata cleanup. Therefore, metadata can be more easily deleted from the following system tables:
Retention-based metadata cleanup occurs as follows:
Preventing false conflicts Retention-based metadata cleanup prevents nonconvergence and silent overwrites of changes at other nodes. However, false conflicts can occur if the following are true:
If an article belongs to several publications or if an article is in republishing scenarios, the retention periods for a specific row at the Publisher and Subscriber may be different. To reduce the chance of cleaning up metadata on one side but not on the other side, we recommend that those different publications have similar retention periods. Note If lots of metadata in the system tables must be cleaned up, the merge process may take longer to run. Clean up the metadata regularly to prevent this issue. Backup and restore issues for merge replicationA publication database that is restored from a backup should first be synchronized with a subscription database that has a global subscription to guarantee correct convergence behavior. A global subscription has an assigned priority value. Synchronization guarantees that the changes that were lost at the publication database because of the restore operation are accurately reapplied. Do not synchronize the publication database with a subscription database that has an anonymous subscription. Because anonymous subscriptions do not have sufficient metadata to apply changes to the publication database. Synchronizing with a database that has an anonymous subscription could lead to the non-convergence of data. When you plan back up and restore operations for merge replication, consider the following additional issues:
The publication retention value is used to determine when subscriptions that have not been synchronized within the retention period should expire. If the following conditions are true, the subscription will not expire because of the increased retention value:
Restoring replicated databases from different versions of SQL ServerRestoring a backup to the same server and database preserves your replication settings. If you are restoring a replicated database to a version of SQL Server that is different from the version that was used to back up the database, consider the following issues:
A new -MaxCmdsInTran parameter for the Log Reader AgentIn SQL Server 2000 SP1, a new command-prompt parameter that is named -MaxCmdsInTran has been added for the Log Reader Agent. This parameter improves parallelism between the Log Reader Agent and the Distribution Agent. Therefore, the parameter improves overall replication throughput. However, these chunks are committed at the Subscriber as individual transactions. Therefore, the ACID property of atomicity is broken. This outcome is not a problem most of the time. However, we recommend that you test the outcome to make sure that it is not a problem. For transactions that affect many commands such as mass update or delete transactions, the Distribution Agent must wait for the Log Reader Agent to write the whole transaction to the distribution database before it can propagate the transaction to the Subscriber. This delay blocks the Distribution Agent. It also reduces the parallelism between the two agents. By using the -MaxCmdsInTran parameter, the Log Reader Agent breaks large transactions into smaller chunks. Each chunk contains the same or fewer commands than the -MaxCmdsInTran input. Therefore, the Distribution Agent can process earlier chunks of a transaction while the Log Reader Agent works through later chunks of the same transaction. Defining the –MaxCmdsInTran Parameter Specify a positive integer (1 or larger) for the -MaxCmdsInTran parameter value. A value of 0 is equivalent of not using the parameter at all. Because this parameter improves performance only when the transaction is very large, a value of 5000 or larger for this parameter is typical. For example: To use this parameter, the Publisher must be running SQL Server 2000
Service Pack 1. The Log Reader Agent and distribution database must be upgraded
to this service pack. Otherwise, the -MaxCmdsInTran parameter is ignored. English Query enhancementsMicrosoft has released a security enhancement for English Query applications. This enhancement is not installed as a part of SQL Server 2000 SP1. However, we recommend that you apply it if you use English Query. For additional information about the English Query enhancement, click the following article number to view the article in the Microsoft Knowledge Base:297105 (http://support.microsoft.com/kb/297105/)
FIX: Potential English Query security issue
| Article Translations
|
Back to the top
