Как перемещать, копировать и архивировать файлы и папки полнотекстового каталога

Переводы статьи Переводы статьи
Код статьи: 240867 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Полнотекстовые каталоги и индексы не хранятся в SQL База данных сервера. Полнотекстовые каталоги и индексы хранятся в отдельных файлах что управляет служба поиска Майкрософт. Не файлы полнотекстового каталога восстановить во время восстановления Microsoft SQL Server. Кроме того нельзя использовать инструкций Transact SQL, резервного КОПИРОВАНИЯ и ВОССТАНОВЛЕНИЯ для резервного копирования и восстановления файлы полнотекстового каталога. После операции восстановления или восстановления необходимо отдельно повторной синхронизации полнотекстовых каталогов. Только Microsoft Windows NT системному администратору и служба поиска Майкрософт можно получить доступ к полнотекстовому поиску файлы каталога.

Несмотря на то, что нельзя использовать для резервного копирования баз данных SQL Server полнотекстовые каталоги с больших таблиц, можно использовать производственные базы данных полнотекстовый поиск с поддержкой. Если для этого может потребоваться перемещение, создание резервной копии, или восстановление этих полнотекстовых каталогов и их производственной базы данных. Время выполнения для полнотекстового каталога совокупности или повторная синхронизация может быть длиннее окна обычно обслуживания. В данной статье описывается другой метод, можно использовать для перемещения или копирования каталогов без запуска полного заполнения. Этот метод позволяет избежать значительного времени простоя.

Эта статья документов несколько методов, которые можно использовать для копирования, перемещения и резервного копирования и восстановления полнотекстовый каталог папок и файлов в определенные ограничения:
  • С помощью версии SQL Server, же.
  • Файлы и папки полнотекстового каталога должны находиться на локальном диск.
  • Файлы и папки полнотекстового каталога необходимо сохранять их имена исходного и содержимое папки.
  • Включить полнотекстовый поиск идентификатора базы данных и таблицы Идентификатор должен быть одинаковым на обоих серверах после перемещения или копирования полнотекстового поиска каталоги между серверами.
Предупреждение Эти процедуры не поддерживаются в экземплярах отказоустойчивого кластера SQL Server.

Полнотекстовые каталоги, сохраняются как набор папок и файлы. Расположение по умолчанию полнотекстовые каталоги являются:

Microsoft SQL Server 7.0:
\Mssql7\FTDATA

Microsoft SQL Server 2000:
По умолчанию экземпляр: программа Files\Microsoft SQL Server\MSSQL\FTDATA
Именованный экземпляр: программа Files\Microsoft SQL Server\MSSQL$ instancename\FTDATA

Каждый полнотекстовый каталог и его связанные файлы сохраняются в папке, используются следующие имена соглашение о где DBID связанные базы данных идентификатор и где ftcatid полный текст каталог Идентификатор:

(SQLxxxxx)»DBID) yyyyy ()ftcatid)"

Каждый ftcatid уникально в пределах соответствующего База данных.

Важные Этот раздел, метод или задача содержит действия, о том, как внести изменения в реестр. Тем не менее при неправильном изменении реестра, могут возникнуть серьезные проблемы. Таким образом Убедитесь, что внимательно выполните следующие действия. Для дополнительной защиты резервную копию реестра перед внесением изменений. Затем при возникновении неполадок можно восстановить реестр. Для получения дополнительных сведений о том, как резервное копирование и восстановление реестра щелкните следующий номер статьи базы знаний Майкрософт:
322756 Резервное копирование и восстановление реестра Windows

Резервное копирование полнотекстового каталога на автономный компьютер или кластер

  1. Остановите службу поиска Microsoft на автономного компьютер. Для кластеризованной конфигурации SQL Server оставьте полнотекстовый поиск ресурс в оперативный режим. После остановки службы поиска Майкрософт не удается запустить полнотекстовые запросы, использующие предикаты CONTAINS или FREETEXT, или функции для наборов строк функции CONTAINSTABLE и FREETEXTTABLE в базе данных. Кроме того, запросы полнотекстового поиска не работают, и появляется следующее сообщение об ошибке:
    Сервера: Msg 7602, уровень 16, Состояние 1, строка 2 служба полнотекстового (Microsoft Search) не поддерживается. В системный администратор должен запустить эту службу.
  2. Резервное копирование системных файлов Microsoft Windows NT с помощью служебной программы, например, Backup Exec, а затем архивировать полнотекстовые каталоги, файлы и папки.В Системная таблица (полнотекстовые каталогиsysfulltextcatalogs) резервного копирования базы данных SQL Server.
  3. Архивировать следующие записи реестра, если необходимо создать резервную каталоги по отдельности:
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder]]] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\ [FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    [FT_Catalog_Folder] — Имя папки каталога (SQLxxxxx)»DBID) yyyyy ()ftcatid)"
    Для именованного экземпляра SQL Server является запись в реестре \SQLServer$Имя_экземпляра\.
  4. 2. Создание резервной копии следующие записи реестра для резервного копирования всех каталоги: (архивная все полнотекстовые каталоги на сервере.)
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering... \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Для именованного экземпляра SQL Server является запись в реестре \SQLServer$Имя_экземпляра\.

Чтобы восстановить полнотекстовые каталоги на одном сервере же локальный диск или путь

  1. Остановите службу поиска Microsoft. Примечание Выполните шаг 2, только если база данных была удалена. В противном случае перейдите к Шаг 3.
  2. Восстановление или присоединение базы данных, где были включены полнотекстовые. После восстановления базы данных, убедитесь, что идентификатор базы данных (dbid) совпадает с он был во время резервного.
    Примечание Если база данных была присоединена с помощью sp_attach_dbкоманды, убедитесь, что запуск Exec sp_fulltext_database команда «включить» Включение базы данных для полнотекстового поиска.
  3. Для определения dbid, выполните следующую команду:
    Use dbname
    go
    select db_id()
    Примечание Чтобы восстановить отдельные каталоги, выполните шаг 4. Чтобы восстановить все каталоги, перейдите к шагу 5.
  4. Восстановление реестра, которые резервного копирования на основе инструкции более ранней резервной копии. Требуется резервную копию реестра перед Повторите этот шаг.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder]]] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\ [FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    [FT_Catalog_Folder] — Имя папки каталога (SQLxxxxx)»DBID) yyyyy ()ftcatid)"
    Для именованного экземпляра SQL Server является запись в реестре \SQLServer$Имя_экземпляра\.
  5. Чтобы восстановить все каталоги на сервере, восстановить следующие записи реестра. Требуется резервную копию реестра, прежде чем Повторите этот шаг.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering... \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Для именованного экземпляра SQL Server является запись в реестре \SQLServer$Имя_экземпляра\.
  6. Восстановление из резервной копии каталогов по умолчанию что резервного копирования из.
  7. Перезапустите службу поиска Майкрософт.
  8. Убедитесь, что новые полнотекстовые каталоги, файлы и папки режим работы с помощью инструкции Transact-SQL SELECT и используют CONTAINS или Предикат FREETEXT в предложении WHERE.

Для перемещения или копирования полнотекстовых каталогов между локальные диски или пути на том же компьютере, на котором запущен SQL Server

  1. Подтвердите имя полнотекстового каталога и локального диска или путь с помощью sp_help_fulltext_catalogs «ft_catalog_name». Запись полнотекстовый поиск каталог диска и полный путь для последующего использования.
  2. Остановите службу поиска Microsoft. Выполните шаги 3 и 4 только в том случае, если база данных была удалена или был удален каталог, в противном случае перейдите Шаг 5.
  3. Восстановление или присоединение базы данных, где были включены полнотекстовые. После восстановления базы данных, убедитесь, что идентификатор базы данных (dbid) совпадает с он был во время резервного.

    Примечание Если база данных была присоединена с помощью sp_attach_dbкоманды, убедитесь, что запуск Exec sp_fulltext_database команда «включить» Включение базы данных для полнотекстового поиска.

    Для определения dbid, запуск Следующий код:
    Use dbname
    go
    select db_id()
  4. Восстановите следующие записи реестра. Может потребоваться резервную копию реестра, прежде чем этот шаг.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder]]] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\ [FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    [FT_Catalog_Folder] — Имя папки каталога (SQLxxxxx)»DBID) yyyyy ()ftcatid)"
    Для именованного экземпляра SQL Server является запись в реестре \SQLServer$Имя_экземпляра\.
  5. Определите новый полнотекстовый каталог локального диска или пути. Копировать полнотекстовые каталоги на новое место.
  6. Разрешить обновления таблицы системы хранится в системе Процедура процедуры sp_configure изменить параметры с помощью переопределения и затем обновить [имя_базы_данных]. dbo.sysfulltextcatalogs столбец пути к новый локальный диск или путь назначения для Папка по умолчанию полнотекстовый каталог, такие как d:\FTData.
  7. Использование в пакете ресурсов Windows NT 4.0 Поиск Утилита для поиска и замены в следующий раздел реестра HKLM значения для каждого полнотекстового каталога, папки (FT_Catalog_Folder) (например, SQL0000500005):
    \SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder] \SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\ [FT_Catalog_Folder] \SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    Кроме того убедитесь, что для использования прямых кавычек знаки ("") для заключения для обоих разделов реестра -p и -r параметры. Например:
    -m \\server_2 -p "<Key Name>" <Old_FT_Catalog_Path_and_Folder> -r <New_FT_Catalog_Path_and_Folder>

    Примечание: Замена <key name="">, <old_ft_catalog_path_and_folder>, и <new_ft_catalog_path_and_folder> с соответствующими значениями.<b00></b00></new_ft_catalog_path_and_folder></old_ft_catalog_path_and_folder></key>
    Для Пример: -m \\server_2 -p «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\sqlserver$SQL2k\SQL0000500005» d:\programme\Microsoft SQL Server\MSSQL$ SQL2K\FTDATA\SQL0000500005 - r d:\programme\Microsoft SQL Server\MSSQL$ SQL2K\FTDATA\New Location\SQL0000500005

    Для получения дополнительных сведений о синтаксисе для использования Поиск Служебная программа, введите следующий параметр в командной строке DOS:сопровождается /?
  8. Перезапустите службу поиска Майкрософт.
  9. Убедитесь, что новые полнотекстовые каталоги, файлы и папки режим работы с помощью инструкции Transact-SQL SELECT и используют CONTAINS или Предикат FREETEXT в предложении WHERE.

Для копирования полнотекстовых каталогов между экземплярами SQL Server на тот же локальный диск или путь

Следующие шаги демонстрируют, как перемещение или копирование полнотекстового поиска каталог папки и файлы с одного компьютера, на котором запущен SQL Server (server_1) на другой компьютер, на котором запущен SQL Server (server_2). Это в статье предполагается, что SQL Server имеет полнотекстовый поиск установлен и что одинаковые идентификаторы базы данных и таблицы существует на обоих серверах. Для успеха Копировать полнотекстовые каталоги из одного экземпляра SQL Server на другой, Идентификаторы баз данных должны быть одинаковыми. Таким образом рекомендуется иметь server_2 (к которому При копировании каталога) будет точной (клон) из server_1.Confirm, dbids на server_1 и server_2 являются одинаковыми. Для сделать это, выполните следующие команды на обоих серверах:
Use dbname
go
select db_id()
Для «горячей замены» dbids Чтобы получить правильный dbid на server_2, используйте sp_detach_db и sp_attach_db Чтобы отсоединить и повторно подключите правильный баз данных. Например если у вас есть две базы данных, таких как TestDB (dbid = 7) и PerfDB (dbid = 8), отключите обе базы данных, а затем Первый повторно подключите PerfDB базы данных, а затем TestDB База данных. Это меняет местами dbids: dbid для TestDB становится 8 и dbid для PerfDB становится 7. Является наименьшим dbid в пул доступных dbids всегда используется в первую очередь.

Внимание! Чтобы сделать это, Прежде чем отсоединить базы данных, убедитесь, что обе базы данных нет иметь любые полнотекстовые каталоги и что они не полнотекстовый включается. См. «Очистка процедуры» в разделе «Дополнительная информация» для действия, чтобы удалить полнотекстовые каталоги и отключение полнотекстового поиска для базы данных.
  1. Убедитесь, что master.dbo.sysdatabases DBID для баз данных с включенной полнотекстового совпадают значения на оба сервера.
  2. Убедитесь, что [имя_базы_данных]. dbo.sysobjects Значения Идентификаторов для таблицы включены полнотекстовые одинаковы для обоих серверы. Для получения дополнительных сведений о том, как получить значение Идентификатора таблицы см. раздел «object_id» в электронной документации по SQL Server.
  3. Убедитесь, что полнотекстового каталога, имя и локальный диск или пути одинаковы на обоих серверах с помощью sp_help_fulltext_catalogsFT_Catalog_Name'.
  4. Остановите службу поиска Microsoft на обе server_1 и server_2.
  5. Назначить букву диска на server_1 для соответствующего диска или путь на server_2.
  6. Скопируйте папку полнотекстового каталога и файлов, которые определенного в шаге 3 из server_1 к server_2 с помощью команды DOS Команда xcopy. Используйте полное имя полнотекстового каталога диска или путь и имя папки, как в исходном расположении и полнотекстовый каталог, сопоставленный диск или путь и имя папки как место назначения. Если конечные папки не существует на server_2, использование Команда xcopy Параметры /I и /E Чтобы создать все конечные папки. Чтобы восстановить все каталоги, копирование все папки каталога server_2.
  7. Можно использовать команду DOS RMDIR /S /Q [FT_Catalog_drive и пути] на server_1 для удаления файлов полнотекстового каталога на server_1.

    Примечание Чтобы восстановить отдельные каталоги, выполните шаг 8. Чтобы восстановить все каталоги, перейдите к шагу 9.
  8. Восстановление реестра, которые резервного копирования на основе более ранних версий инструкции. Требуется резервную копию реестра, прежде чем вы сделаете это шаг.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder]]] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\ [FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer [FT_Catalog_Folder]
    [FT_Catalog_Folder] — Имя папки каталога (SQLxxxxx)»DBID) yyyyy ()ftcatid)"
    Для именованного экземпляра SQL Server является запись в реестре \SQLServer$Имя_экземпляра\.
  9. Чтобы восстановить все каталоги на сервере, восстановить следующие записи реестра. Однако при этом будут потеряны все существующие каталоги на server_2 после выполнения этого шага. Требуется резервное копирование вашего реестр, прежде чем этот шаг.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering... \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Примечание По умолчанию, расположение двоичных файлов полнотекстового поиска:
    SQL Server 7.0: \Mssql7\FTDATA
    Корпорация Майкрософт. По умолчанию экземпляр SQL Server 2000: \Program Files\Microsoft SQL Server\MSSQL\FTDATA
    Именованный экземпляр SQL Server 2000: MSSQL$Имя_экземпляра\FTDATA
    К ним расположение и пути к папкам могут различаться для разных компьютеров. В этом случае вы необходимо изменить две записи в реестре, поэтому пути указывают правильное расположение полнотекстовый двоичные файлы после завершения восстановления на server_2.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Можно использовать Поиск Утилита для поиска записей реестра и изменить расположение двоичные файлы полнотекстового поиска.
  10. Перезапустите службу Microsoft Search для обоих серверы.
  11. Убедитесь, что новые полнотекстовые каталоги, файлы и папки режим работы с помощью инструкции Transact-SQL SELECT и используют CONTAINS или Предикат FREETEXT в предложении WHERE.

Дополнительная информация

Следующий сценарий SQL Server Демонстрация перемещения или «Миграция» папки полнотекстового каталога из SQL Server 7.0 (server_1) в другую компьютер, на котором запущен SQL Server 7.0 (server_2) на другой локальный диск или путь к папке на server_2. В данной статье предполагается, что SQL Server 7.0 с полнотекстовый поиск установленных на компьютере под управлением Windows NT 4.0 и что одинаковые идентификаторы базы данных и таблицы существует на обоих серверах.

Для в целях иллюстрации, Pubs (dbid = 5) базы данных и таблицы pub_info (id = 645577338) полнотекстовое включено и на обоих серверы. Замените server_2 на имя сервера и заменить полнотекстовый поиск имя папки каталога и диска или путь к папке имя полнотекстового каталога и диск или путь.

Необходимо войти в систему как локальный сервер является членом Группа администраторов и входить в состав SQL Server sysadmin сервер роли (или вход в систему «sa»). Кроме того, должны быть Владелец базы данных (DBO) базы данных для выполнения следующих SQL Server сценарии.

Запустите следующий сценарий SQL Server на обоих серверах.
use pubs
go
sp_fulltext_service 'clean_up'
go
sp_fulltext_database 'enable'
go

-- Creates and activates the full-text catalog: PubInfo, if it does not exist.
-- Drops, re-creates and activates the full-text catalog: PubInfo, if it does
-- exist.
IF OBJECTPROPERTY ( object_id('pub_info'),
                    'TableHasActiveFulltextIndex') = 1
BEGIN
    print 'Table pub_info is Full-Text Enabled, dropping Full-Text Index
& Catalog...'
    EXEC sp_fulltext_table 'pub_info', 'drop'
    EXEC sp_fulltext_catalog 'PubInfo', 'drop'
    print 'Table pub_info is NOT Full-Text Enabled, creating FT Catalog,
Index & Activating...'
    EXEC sp_fulltext_catalog 'PubInfo', 'create'
    EXEC sp_fulltext_table 'pub_info', 'create', 'PubInfo', 'UPKCL_pubinfo'
    EXEC sp_fulltext_column 'pub_info', 'pub_id', 'add'
    EXEC sp_fulltext_column 'pub_info', 'pr_info', 'add'
    EXEC sp_fulltext_table 'pub_info', 'activate'
END
ELSE IF OBJECTPROPERTY ( object_id('pub_info'),'TableHasActiveFulltextIndex') = 0
BEGIN
    print 'Table pub_info is NOT Full-Text Enabled, creating FT Catalog,
Index & Activating...'
    EXEC sp_fulltext_catalog 'PubInfo', 'create'
    EXEC sp_fulltext_table 'pub_info', 'create', 'PubInfo', 'UPKCL_pubinfo'
    EXEC sp_fulltext_column 'pub_info', 'pub_id', 'add'
    EXEC sp_fulltext_column 'pub_info', 'pr_info', 'add'
    EXEC sp_fulltext_table 'pub_info', 'activate'
END
go -- Confirm Database ID, Object ID, FT Catalog ID and FT folder(default)
   -- location.
select dbid, name from master.dbo.sysdatabases where dbid = DB_ID('pubs')
-- dbid = 5
go
select id, name from pubs.dbo.sysobjects where id = object_id('pub_info') 
go
sp_help_fulltext_catalogs 'PubInfo' 
go
sp_help_fulltext_tables 'PubInfo', 'pub_info' 
go
sp_help_fulltext_columns 'pub_info' 
go
exec master..xp_cmdshell 'dir d:\MSSQL70\FTDATA'
go

--- After full-text is enabled and activated, start full crawl/population
BEGIN
SET NOCOUNT ON
EXEC sp_fulltext_catalog 'PubInfo', 'start_full'
--
--  Wait for crawl to complete
--  NOTE: Forlarger tables, increase the WAITFOR DELAY time appropriately
--
DECLARE @status int, @itemCount int, @keyCount int, @indexSize int
SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')
WHILE (@status <> 0)
BEGIN
  WAITFOR DELAY '00:00:01' -- wait for 1 second before checking FT
                           -- Populatestatus...
  SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')
END
WAITFOR DELAY '00:00:05' -- wait for 5 seconds to receive correct FT Property
                         -- info (add more time for larger tables)...
SET @itemCount = FullTextCatalogProperty('PubInfo', 'itemcount')
SET @keyCount = FullTextCatalogProperty('PubInfo', 'uniquekeycount')
SET @indexSize = FullTextCatalogProperty('PubInfo', 'indexsize')
PRINT 'Nbr. of Rows FT Indexed = ' + CAST((CONVERT(varchar(10), @itemCount)
- 1) as varchar(12)) + char(09) + 'Nbr. of Unique FT Words = '
+  CONVERT(varchar(10), @keyCount) + char(09)
SET NOCOUNT OFF
END
go

-- Confirm FT population, 1 row should be returned (pub_id = 0736). 
SELECT pub_id, pr_info FROM pub_info WHERE CONTAINS(pr_info, 'moon')
go

-- Stop the Microsoft Search service on both servers
exec master..xp_cmdshell 'net stop "Microsoft Search"'
go
Запустите следующий сценарий SQL Server на ИСХОДНОМ сервере (server_1):
use pubs
go
-- Map a Drive letter to the destination server.
exec master..xp_cmdshell 'NET USE K: \\server_2\[drive]$'
go
-- Copy the destination server's FT catalog folder and files as a backup.
exec master..xp_cmdshell 'ROBOCOPY K:\MSSQL70\FTDATA\SQL0000500005
K:\MSSQL70\BACKUP\SQL0000500005 /E /NP'
go
-- Remove the destination server's full-text catalog folder and files.
exec master..xp_cmdshell 'RMDIR /S /Q K:\MSSQL70\FTDATA\SQL0000500005'
go
-- Copy the SOURCE full-text catalog folder and files to the destination server's
NEW full-text catalog location.
exec master..xp_cmdshell 'ROBOCOPY D:\MSSQL70\FTDATA\SQL0000500005
K:\FTData\SQL0000500005 /E /NP'
go
-- Restart the Microsoft Search service.
exec master..xp_cmdshell 'net start "Microsoft Search"'
go
-- Remove the mapped drive letter to the destination server, for example
-- K:\.
exec master..xp_cmdshell 'NET USE K: /delete'
go
Необходимо выполнить следующий сценарий SQL на Назначение сервер (server_2):
use master
go
-- Enable system table updates.
sp_configure allow,1
go
reconfigure with override
go

use pubs
go
-- Record full-text catalog information (Note: path = NULL)
select * from sysfulltextcatalogs
go
-- Update the full-text catalog information with the new full-text catalog location
UPDATE sysfulltextcatalogs set path = 'E:\FTData'
   WHERE ftcatid = 5
go
-- Record full-text catalog info. (Note: path = E:\FTData)
select * from sysfulltextcatalogs
go

use master
go
-- Disable system table updates.
sp_configure allow,0
go
reconfigure with override
go

-- CAUTION: Back up your registry hive before you contine!

-- Search and replace HKLM "Gather" registry keys with new full-text catalog
-- folder location [10 row(s) affected]:
exec master..xp_cmdshell 'REGFIND -m \\server_2 -p
\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\SQL0000500005
"E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'
go
-- Search and replace HKLM "Gatherer Manager" registry keys with new FT
-- catalog folder location [6 row(s) affected]:
exec master..xp_cmdshell 'REGFIND -m \\server_2 -p
"\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\Gathering
Manager\Applications\SQLServer\Projects\SQL0000500005"
"E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'
go
-- Search and replace HKLM indexer registry keys with new FT catalog folder
-- location [6 row(s) affected]:
exec master..xp_cmdshell 'REGFIND -m \\server_2 -p
"\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\SQL0000500005"
"E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'
go

-- Restart the Microsoft Search service
exec master..xp_cmdshell 'net start "Microsoft Search"'
go

-- Confirm FT population, 1 row should be returned (pub_id = 0736). 
use pubs
go
SELECT pub_id, pr_info FROM pub_info WHERE CONTAINS(pr_info, 'moon')
go
«Прервать» полнотекстового заполнения выполняется путем запуска Следующий код SQL Server:

Внимание! Если число элементов не равно числу строк полнотекстовый индекс плюс один дополнительный, может быть размер полнотекстового каталога Неверный!
-- Run the following code after starting full crawl/population through another connection.
use pubs
go
BEGIN
SET NOCOUNT ON
EXEC sp_fulltext_catalog 'PubInfo', 'stop'

-- Wait for crawl to stop

--  NOTE: For larger tables, increase the WAITFOR DELAY time appropriately

DECLARE @status int, @itemCount int, @keyCount int, @indexSize int
SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')
WHILE (@status <> 0)
BEGIN
  WAITFOR DELAY '00:00:01' -- wait for 1 second before checking FT
                           -- Populatestatus...
  SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')
END
WAITFOR DELAY '00:00:05' -- wait for 5 seconds to receive correct FT Property
                         -- info (add more time for larger tables)...
SET @itemCount = FullTextCatalogProperty('PubInfo', 'itemcount')
SET @keyCount = FullTextCatalogProperty('PubInfo', 'uniquekeycount')
SET @indexSize = FullTextCatalogProperty('PubInfo', 'indexsize')
PRINT 'Nbr. of Rows FT Indexed = ' + CAST((CONVERT(varchar(10), @itemCount) - 1)
as varchar(12)) + char(09) + 'Nbr. of Unique FT Words = ' +
CONVERT(varchar(10), @keyCount) + char(09)
SET NOCOUNT OFF
END
go
-- Can return: Nbr. of Rows FT Indexed = -1 Nbr. of Unique FT Words = 0 
-- (depending upon when the crawl/population stopped)
Процедуры очистки

Запустите следующий сценарий SQL на обоих серверах.

Удалить полнотекстовый индекс, полнотекстовый каталог, а затем отключите полнотекстовый поиск В диалоговом окне pubs База данных:
use pubs
go
sp_fulltext_table 'pub_info', 'drop'
go
sp_fulltext_catalog 'PubInfo', 'drop'
go
sp_fulltext_database 'disable'
go
sp_fulltext_service 'clean_up'
go
-- end SQL Script !

ССЫЛКИ

Для получения дополнительных сведений о получении dbid для базы данных в разделе «db_id» в электронной документации по SQL Server.

Чтобы определить, если База данных находится полнотекстовый поиск, содержатся в разделе «databaseproperty» или Разделы «isfulltextenabled» в электронной документации по SQL Server.

Для получения дополнительных сведения о ftcatid, содержатся в разделе «sp_help_fulltext_catalogs» «objectproperty» или «tablefulltextcatalogid» разделы электронной документации по SQL Server Через Интернет.

Свойства

Код статьи: 240867 - Последний отзыв: 4 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2000 Standard Edition на следующих платформах
    • Microsoft SQL Server 2000 Developer Edition
    • Microsoft SQL Server 2000 Enterprise Edition
Ключевые слова: 
kbinfo kbmt KB240867 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:240867

Отправить отзыв

 

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