SUMMARY
The values returned in the
Rank column in full-text search (FTS) queries that use the
CONTAINSTABLE or FREETEXTTABLE functions
may change when the catalogs
repopulate. The values may change even if the underlying data does not change.
To resolve
this ranking inconsistency, Microsoft made a change in the
full-text catalog format. As a result, you must upgrade
all full-text
catalogs to the new format when you upgrade to SQL Server 2000 Service Pack 3
(SP3).
This article contains information about the setup of SQL
Server 2000 SP3 that is specific to full-text search.
It also provides
workaround information to minimize any full-text search downtime that may occur
when you upgrade to SQL Server 2000 SP3.
You must rebuild all the
full-text catalogs after you upgrade the full-text catalog format. The
catalogs are rebuilt automatically when you start the MSSearch service,
after the SQL Server 2000
SP3 setup completes. In the intitial stages of
the SQL Server 2000 SP3 setup, a window opens. You
will see a message that
states all the full-text catalogs must be rebuilt. For the SQL Server 2000 SP3
setup to continue, you must click to select the
Upgrade Microsoft
Search and apply
SQL Server 2000 SP3 (REQUIRED) check
box.
All the catalogs from all instances of SQL Server 2000 on the
same computer will be rebuilt, not just
the catalogs associated with the
instance that is being upgraded. The rebuild operation may be time
and
resource intensive. As a result, the full-text catalogs are not available until
the rebuild completes.
CAUSE
An issue with the MSSearch catalog format causes an
inconsistency in the rank values
returned by the CONTAINSTABLE and
FREETEXT queries between catalog repopulations in previous
versions of SQL
Server. RESOLUTION
To resolve the problem, you must upgrade the MSSearch
catalog format. After
you upgrade the MSSearch catalog format, you may
experience the symptoms mentioned in the
"Summary" section. WORKAROUND
To work around the behavior you can use any one of these
options:
- A side-by-side upgrade
- A controlled upgrade
- A default upgrade
More information about each type of upgrade
follows.
Side-By-Side Upgrade
Note: The full-text search catalogs will not be available until they
are rebuilt. Depending on the full-text catalog size, and available system
resources, you may not have to
perform a side-by-side upgrade. If the
total number of rows in all the full-text catalogs that are being
upgraded
is greater than 100,000, the rebuild process may take an hour, or more,
depending on available
hardware and system resources. If you have more
than 100,000 rows, you may want to use a side-by-side
upgrade.
Additionally, for this workaround to be complete, you must upgrade all the
catalogs from all
instances of SQL Server 2000 on the computer.
To avoid significant full-text search unavailability during the rebuild
process, and to minimize resource
usage following the upgrade to SQL
Server 2000 SP3, follow these steps to perform a side-by-side upgrade:
- Back up all your SQL Server databases. SQL Server uses
these backups to create an image of your existing production computer on a
development computer. For more information about creating and maintaining a
development computer that is a replica of your production computer, see the
"Using Standby Servers" topic in SQL Server Books Online.
- If change tracking is enabled on the production server,
disable the background update index and any scheduled updates. You can leave
any full or incremental populations that are scheduled.
- Restore the backups created in step 1 to your
development computer. Make sure that the database identifiers are the same.
This a requirement for successfully copying your full-text catalogs from your
development computer to your production computer (see step 6).
- After your backups have been applied to your
development computer, pointers to your full-text catalogs will exist in your
database. However, those full-text catalogs will not exist. Execute the
following code for each full-text catalog so that those catalogs will be
created and populated:
sp_fulltext_catalog 'fulltext_catalog_name', 'rebuild'
go
sp_fulltext_catalog 'fulltext_catalog_name', 'start_full'
go
- Apply SQL Server 2000 SP3 to the development server to
upgrade the full-text catalog data.
- When the build process completes on all full-text
catalogs on the development server, copy all the full-text catalogs to a secure
location on the production server. Do not overwrite existing full-text catalog
data at this time.
- When possible, apply SQL Server 2000 SP3 to the
production server.
- After the upgrade to SQL Server 2000 SP3 completes,
stop the MSSearch service.
Note: If the automatic rebuilding of your catalogs has started, stop
the process for each of your catalogs by running this code:
sp_fulltext_catalog 'fulltext_catalog_name', 'stop'
When the process completes, stop the MSSearch service. - On the production server, replace the existing catalogs
with the catalogs that were copied from the development server.
- Start the MSSearch service.
- If change tracking is enabled on the production server,
when possible, perform a manual change tracking update on all full-text enabled
tables by executing the following command in Query Analyzer:
sp_fulltext_table '%tablename%', 'update_index'
You do not have to rebuild any full-text catalog. Additionally, if
change tracking is enabled and background index updates or scheduled updates
were disabled in step 2, re-enable them.
Controlled Upgrade
To avoid significant immediate resource usage following an upgrade
to SQL Server 2000 SP3, follow these steps to perform a controlled
upgrade:
Note: Full-text search catalogs are not available until the rebuild
process completes. A controlled upgrade minimizes resource usage immediately
after the SQL Server 2000 SP3 setup installation completes; however, full-text
catalogs may be unavailable for a longer period with a side-by-side
upgrade.
- Before you upgrade SQL Server 2000 SP3 on a production
server, run this code and record the output:
exec sp_help_fulltext_catalogs
exec sp_help_fulltext_columns
The information provided by these two system stored procedures is
helpful when you re-create the full-text catalogs. - Use the sp_fulltext_table and sp_fulltext_catalog stored procedures to drop all the full-text catalogs. You must
drop the full-text indexed tables before you drop the full-text
catalogs.
- Back up your SQL Server data.
- Apply SQL Server 2000 SP3. During the setup process, a
warning message appears to inform you that all the full-text catalogs will be
rebuilt following the upgrade to SQL Server 2000 SP3. You can ignore this
message because all the full-text catalogs have been dropped.
- When you want, re-create all the full-text catalogs by
using the sp_fulltext_catalog stored procedure.
- Add all the former full-text indexed tables and columns
to their original full-text catalogs, and then start a full population on all
full-text catalogs.
Default Upgrade
If the total size of all full-text catalogs is reasonably small
(less than 100,000 rows in many cases), and there are ample system resources
available following the SQL Server 2000 SP3 setup process, you may not have to
perform a side-by-side or controlled upgrade. In those cases, you will probably
experience a minimum period of downtime during the rebuild process and a brief
increase in resource usage.
In all cases, before you upgrade to SQL
Server 2000 SP3, test the upgrade process on a non-production server. Back up
all SQL Server and full-text catalog data to make sure you have a successful
migration.