Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обновление полнотекстового поиска до SQL Server 2014 выполняется во время установки и при подключении, восстановлении или копировании файлов базы данных и полнотекстовых каталогов из более ранней версии SQL Server с помощью мастера копирования баз данных.
В данном разделе рассматриваются следующие аспекты обновления полнотекстового поиска:
Миграция полнотекстовых индексов при обновлении базы данных до версии SQL Server 2014
Замечания по восстановлению полнотекстового каталога SQL Server 2005 в SQL Server 2014
Обновление экземпляра сервера
Для обновления на месте экземпляр SQL Server 2014 настраивается параллельно со старой версией SQL Server, а данные переносятся. Если в старой версии SQL Server установлен полнотекстовый поиск, автоматически устанавливается новая версия полнотекстового поиска. Параллельная установка означает, что каждый из следующих компонентов существует на уровне экземпляра SQL Server.
Средства разбиения по словам, парадигматические модули и фильтры
Теперь каждый экземпляр SQL Server использует отдельный комплект средств разбиения по словам, парадигматические модули и фильтры, а не те версии этих компонентов, которые предоставляет операционная система. Более того, это облегчает регистрацию и конфигурацию этих компонентов. Дополнительные сведения см. в разделах Настройка и управление средством разбиения на слова и парадигматические модули для поиска и Настройка и управление фильтрами для поиска.
Узел управляющей программы фильтрации
Узлы управляющей программы полнотекстовой фильтрации — это процессы, которые безопасно загружают внешние расширяемые компоненты индексов и запросов (например: средства разбиения по словам, парадигматические модули и фильтры), и позволяют использовать их, не нарушая целостности средства полнотекстового поиска. Экземпляр сервера использует многопоточный процесс для всех многопоточных фильтров и однопоточный процесс для однопоточных фильтров.
Примечание
SQL Server 2008 году появилась учетная запись службы для службы запуска FDHOST (MSSQLFDLauncher). Эта служба распространяет сведения об учетной записи службы на процессы узла управляющей программы фильтрации определенного экземпляра SQL Server. Сведения о настройке учетной записи службы см. в разделе Настройка учетной записи службы средства запуска управляющей программы полнотекстовой фильтрации.
В SQL Server 2005 каждый полнотекстовый индекс находится в полнотекстовом каталоге, который принадлежит файловой группе, имеет физический путь и обрабатывается как файл базы данных. В SQL Server 2008 и более поздних версиях полнотекстовый каталог представляет собой логический или виртуальный объект, содержащий группу полнотекстовых индексов. В связи с этим новые полнотекстовые каталоги не обрабатываются как файлы базы данных с физическим путем. Однако при обновлении любого полнотекстового каталога, содержащего файлы данных, новая файловая группа создается на том же диске. Это обеспечивает соблюдение старого поведения дискового ввода-вывода после обновления. Если существует корневой путь, то любой полнотекстовый индекс размещается в новой файловой группе. Если старый путь полнотекстового каталога недействителен, то обновление будет хранить полнотекстовый индекс в той же файловой группе, в которой хранится базовая таблица, либо, в случае с секционированной таблицей, в первичной файловой группе.
Примечание
SQL Server 2005 инструкции Transact-SQL DDL, указывающие полнотекстовые каталоги, продолжают работать правильно.
Параметры полнотекстового обновления
При обновлении экземпляра сервера до SQL Server 2014 пользовательский интерфейс позволяет выбрать один из следующих вариантов полнотекстового обновления.
Импорт
Полнотекстовые индексы импортируются. Обычно импорт производится значительно быстрее перестроения. Например, если используется только один ЦП, то импорт выполняется в 10 раз быстрее, чем перестроение. Однако импортированный полнотекстовый каталог не использует новые средства разбиения по словам, установленные в последней версии SQL Server. Для обеспечения согласованности результатов запроса необходимо перестроить полнотекстовые каталоги повторно.
Примечание
Перестроение может выполняться в многопоточном режиме; если доступно более 10 процессоров, то перестроение может выполниться быстрее импорта, если будет разрешено использовать все процессоры.
Если полнотекстовый каталог недоступен, перестраиваются связанные полнотекстовые индексы. Этот параметр доступен только для баз данных SQL Server 2005.
Дополнительные сведения о влиянии импорта полнотекстового индекса см. в подразделе «Замечания по выбору режима полнотекстового обновления» далее в этом разделе.
Перестроение
Полнотекстовые каталоги перестраиваются с помощью новых и улучшенных средств разбиения по словам. Перестроение индексов может занять длительное время, а после обновления может потребоваться значительный объем ресурсов ЦП и памяти.
Reset
Полнотекстовые каталоги сбрасываются. При обновлении с SQL Server 2005 файлы полнотекстового каталога удаляются, но метаданные полнотекстовых каталогов и полнотекстовых индексов сохраняются. После обновления для всех полнотекстовых индексов отключается отслеживание изменений и сканирование не запускается автоматически. После завершения обновления каталог останется пустым, пока не будет вручную запущено полное заполнение.
Замечания по выбору режима полнотекстового обновления
При выборе режима обновления необходимо учитывать следующие соображения.
Требуется ли согласованность в результатах запроса?
SQL Server 2014 устанавливает новые средства разбиения по словам для использования Full-Text и семантического поиска. Средства разбиения по словам используются как во время индексирования, так и при выполнении запросов. Если не выполнить перепостроение полнотекстовых каталогов, результаты поиска могут быть несогласованными. Если вы выполняете полнотекстовый запрос, который ищет фразу, разбитую по-другому с помощью средства разбиения по словам в предыдущей версии SQL Server и текущего средства разбиения по словам, документ или строка, содержащие фразу, могут не быть извлечены. Это связано с тем, что индексированные фразы были разбиты с помощью логики, которая не соответствует логике, используемой в запросе. Решение заключается в том, чтобы заполнить полнотекстовые каталоги повторно (перестроить их) с помощью новых средств разбиения по словам, чтобы при индексировании и выполнении запросов использовалась одинаковая логика. Для реализации данного решения можно выбрать параметр перестроения или выполнить перестроения вручную после выбора параметра импорта.
Были ли полнотекстовые индексы построены в целочисленных столбцах полнотекстовых ключей?
Перестроение выполняет внутренние оптимизации, которые в некоторых случаях могут увеличить производительность запросов обновленных полнотекстовых индексов. В частности, если в полнотекстовых каталогах пользователя содержатся полнотекстовые индексы, у которых полнотекстовый ключевой столбец базовой таблицы имеет тип данных integer, то при перестроении достигается идеальная производительность полнотекстовых запросов. В данном случае рекомендуется использовать параметр Перестроение .
Примечание
Для полнотекстовых индексов в SQL Server 2014 мы рекомендуем, чтобы столбец, выступающий в качестве полнотекстового ключа, был целочисленным типом данных. Дополнительные сведения см. в разделе Улучшение производительности полнотекстовых индексов.
Насколько важно перевести сервер в режим «в сети»?
Импорт или перестроение отнимает много ресурсов процессора, что задерживает обновление остальных частей экземпляра сервера и перевод его в режим «в сети». Если важно перевести экземпляр сервера в режим «в сети» как можно скорее, а пользователь способен выполнить после обновления заполнение вручную, то целесообразно будет использовать режим Сброс .
Обеспечение согласованности результатов запроса после импорта полнотекстового индекса SQL Server 2005
Если при обновлении базы данных SQL Server 2005 до SQL Server 2014 был импортирован полнотекстовый каталог, могут возникнуть несоответствия между запросом и содержимым полнотекстового индекса из-за различий в поведении старых и новых средств разбиения по словам. В данном случае для обеспечения полного соответствия между запросами и содержимым полнотекстового индекса следует выбрать один из следующих параметров:
Выполнить повторное создание полнотекстового каталога, содержащего полнотекстовый индекс (ALTER FULLTEXT CATALOGимя_каталога REBUILD).
Выполнить инструкцию FULL POPULATION для полнотекстового индекса (ALTER FULLTEXT INDEX ON имя_таблицы START FULL POPULATION).
Дополнительные сведения о средствах разбиения по словам см. в разделе Настройка и управление средством разбиения на слова и парадигматические модули для поиска.
Обновление файлов пропускаемых слов до списков стоп-слов
SQL Server 2005 шум слова были заменены стоп-словами в SQL Server 2008 и более поздних версиях. При обновлении базы данных до SQL Server 2014 с SQL Server 2005 года файлы с шумными словами больше не используются. Однако старые файлы noise-word хранятся в папке FTDATA\ FTNoiseThesaurusBak, и их можно использовать позже при обновлении или создании соответствующих SQL Server списков стоп-слов 2014.
После обновления с SQL Server 2005:
Если вы никогда не добавляли, не изменяли или не удаляли какие-либо файлы с помехами в установке SQL Server 2005, системный список стоп-слов должен соответствовать вашим потребностям.
Если файлы звуковых слов были изменены в SQL Server 2005 году, эти изменения будут потеряны во время обновления. Чтобы повторно создать эти обновления, необходимо вручную повторно создать эти изменения в соответствующем списке стоп-слов SQL Server 2008. Дополнительные сведения см. в статье ALTER FULLTEXT STOPLIST (Transact-SQL).
Если вы не хотите применять стоп-слова к полнотекстовому индексу (например, при удалении или удалении файлов с помехами в установке SQL Server 2005), необходимо отключить список стоп-слов для каждого обновленного полнотекстового индекса. Выполните следующую инструкцию Transact-SQL (заменив базу данных именем обновленной базы данных, а таблицу — именем таблицы):
Use database; ALTER FULLTEXT INDEX ON table SET STOPLIST OFF; GO
Предложение STOPLIST OFF удаляет фильтрацию по стоп-словам; таблица будет заполняться без фильтрации неучитываемых слов.
Резервные копии полнотекстовых каталогов и импортированные полнотекстовые каталоги
Для полнотекстовых каталогов, которые были восстановлены или сброшены во время обновления (и для новых полнотекстовых каталогов) полнотекстовый каталог является логическим понятием. Он не располагается в файловой группе. Таким образом, чтобы создать резервную копию полнотекстового каталога в SQL Server 2014 г., необходимо определить каждую файловую группу, содержащую полнотекстовый индекс каталога, и вернуть каждую из них по очереди. Дополнительные сведения см. в разделе Создание резервных копий и восстановление полнотекстовых каталогов и индексов.
Для полнотекстовых каталогов, импортированных из SQL Server 2005, полнотекстовый каталог по-прежнему является файлом базы данных в собственной файловой группе. Процесс резервного копирования SQL Server 2005 для полнотекстовых каталогов по-прежнему применяется, за исключением того, что служба MSFTESQL не существует в SQL Server 2014. Сведения о процессе SQL Server 2005 см. в статье Резервное копирование и восстановление каталогов Full-Text в электронной документации по SQL Server 2005 г.
Миграция полнотекстовых индексов при обновлении базы данных до версии SQL Server 2014
Файлы базы данных и полнотекстовые каталоги из предыдущей версии SQL Server можно обновить до существующего экземпляра сервера SQL Server 2014 с помощью присоединения, восстановления или мастера копирования баз данных. SQL Server 2005 полнотекстовые индексы(при наличии) импортируются, сбрасываются или перестраиваются. Свойство сервера upgrade_option определяет, какой из режимов обновления полнотекстового поиска будет использоваться экземпляром сервера при обновлении базы данных.
После присоединения, восстановления или копирования любой базы данных SQL Server 2005 в SQL Server 2014 база данных сразу же становится доступной, а затем автоматически обновляется. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — в несколько (до десяти) раз больше. Обратите внимание, что если при обновлении выбран режим «Импортировать», а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены.
Изменение поведения полнотекстового обновления на экземпляре сервера
Transact-SQL: используйте действие upgrade_optionsp_fulltext_service
SQL Server Management Studio : используйте параметр полнотекстового обновления диалогового окна Свойства сервера. Дополнительные сведения см. в разделе Управление и наблюдение за полнотекстовым поиском для экземпляра сервера.
Замечания по восстановлению полнотекстового каталога SQL Server 2005 в SQL Server 2014
Одним из способов обновления полнотекстовых данных из базы данных SQL Server 2005 до SQL Server 2014 г. является восстановление полной резервной копии базы данных до SQL Server 2014 г.
При импорте полнотекстового каталога SQL Server 2005 можно создать резервную копию и восстановить базу данных и файл каталога. Поведение аналогично SQL Server 2005:
В полную резервную копию базы данных будет включен полнотекстовый каталог. Чтобы сослаться на полнотекстовый каталог, используйте его имя файла SQL Server 2005 sysft_+catalog-name.
Если полнотекстовый каталог находится в режиме «вне сети», то резервное копирование завершится ошибкой.
Дополнительные сведения о резервном копировании и восстановлении полнотекстовых каталогов SQL Server 2005 см. в разделах Резервное копирование и восстановление каталогов Full-Text и Резервное копирование и восстановление файлов и каталогов Full-Textв электронной документации по SQL Server 2005 года.
При восстановлении базы данных SQL Server 2014 г. для полнотекстового каталога будет создан новый файл базы данных. По умолчанию данный файл имеет имя ftrow_имя-каталога.ndf. Например, если аргумент catalog-name имеет значение cat1
, по умолчанию для файла базы данных SQL Server 2014 будет ftrow_cat1.ndf
имя . Но если имя по умолчанию уже используется в целевом каталоге, новый файл базы данных будет назван ftrow_
имя-каталога{
GUID}.ndf
(где GUID — это глобальный уникальный идентификатор нового файла).
После импорта каталогов обновляются представления sys.database_files и sys.master_files: удаляются записи каталога и устанавливается значение NULL для столбца path (путь) в sys.fulltext_catalogs .
Создание резервной копии базы данных
Резервные копии журналов транзакций (SQL Server) (только модель полного восстановления)
Восстановление резервной копии базы данных
Выполнение полного восстановления базы данных (Простая модель восстановления)
Выполнение полного восстановления базы данных (модель полного восстановления)
Пример
В следующем примере используется предложение MOVE в инструкции RESTORE для восстановления базы данных SQL Server 2005 с именем ftdb1
. Файлы базы данных, журнала и каталога SQL Server 2005 перемещаются в новые расположения на экземпляре сервера SQL Server 2014 следующим образом:
Файл базы данных
ftdb1.mdf
перемещается по адресуC:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf
.Файл журнала
ftdb1_log.ldf
перемещается в каталог журналов на диске журналов: log_drive:\
log_directory\ftdb1_log.ldf
.Файлы каталогов, соответствующие каталогу
sysft_cat90
, перемещаются по адресуC:\temp
. После того как был выполнен импорт полнотекстовых каталогов, они будут автоматически размещены в файле базы данных «C:\ftrow_sysft_cat90.ndf», а каталог «C:\temp» будет удален.
RESTORE DATABASE [ftdb1] FROM DISK = N'C:\temp\ftdb1.bak' WITH FILE = 1,
MOVE N'ftdb1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf',
MOVE N'ftdb1_log' TO N'log_drive:\log_directory\ftdb1_log.ldf',
MOVE N'sysft_cat90' TO N'C:\temp';
Присоединение базы данных SQL Server 2005 к SQL Server 2014
В SQL Server 2008 и более поздних версиях полнотекстовый каталог является логическим понятием, которое ссылается на группу полнотекстовых индексов. Полнотекстовый каталог является виртуальным объектом и не входит в какую-либо файловую группу. Однако при присоединении базы данных SQL Server 2005, содержащей файлы полнотекстового каталога, к экземпляру сервера SQL Server 2014 файлы каталога присоединяются из предыдущего расположения вместе с другими файлами базы данных, как и в SQL Server 2005.
Состояние каждого подключенного полнотекстового каталога в SQL Server 2014 г. совпадает с состоянием, когда база данных была отключена от SQL Server 2005. Если заполнение полнотекстового индекса было приостановлено операцией отсоединения, заполнение возобновляется SQL Server 2014 г., и полнотекстовый индекс становится доступным для полнотекстового поиска.
Если SQL Server 2014 не удается найти файл полнотекстового каталога или если полнотекстовый файл был перемещен во время операции присоединения без указания нового расположения, поведение зависит от выбранного параметра полнотекстового обновления. Если был выбран режим обновления полнотекстового поиска Импорт или Перестроение, то присоединенный полнотекстовый каталог будет перестроен. Если был выбран режим обновления полнотекстового поиска Сброс, то присоединенный полнотекстовый каталог будет сброшен.
Дополнительные сведения об отключении и присоединении базы данных см. в разделах Отсоединение и подключение базы данных (SQL Server),CREATE DATABASE (SQL Server Transact-SQL),sp_attach_db и sp_detach_db (Transact-SQL).
См. также:
Начало работы с компонентом Full-Text Search
Настройка и управление средством разбиения на слова и парадигматические модули для поиска
Настройка и управление фильтрами для поиска