Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
SQL Server met à niveau la recherche en texte intégral pendant l’installation, ou lorsque vous attachez, restaurez ou copiez des fichiers de base de données et des catalogues de texte intégral à partir de SQL Server 2005 (9.x) et des versions antérieures.
Mise à niveau d’une instance de serveur
Pour une mise à niveau sur place, une instance de SQL Server est installée côte à côte avec l'ancienne version de SQL Server, et les données sont migrées. Si l'ancienne version de SQL Server intégrait la recherche en texte intégral, une nouvelle version de cette fonctionnalité est installée automatiquement. Une installation côte à côte signifie que chacun des composants suivants existe au niveau de l'instance de SQL Server.
Analyseurs lexicaux, générateurs de formes dérivées et filtres
Chaque instance utilise désormais son propre ensemble d'analyseurs lexicaux, de générateur de formes dérivées et de filtres, au lieu de s'appuyer sur la version de système d'exploitation de ces composants. Ces composants sont également plus faciles à inscrire et à configurer au niveau de l'instance. Pour plus d’informations, consultez Configurer et gérer les analyseurs lexicaux et générateurs de formes dérivées et Configurer et gérer des filtres.
Hôte de démon de filtre
Les démons de filtre de texte intégral sont des processus qui se chargent en toute sécurité ; par ailleurs, ils gèrent l'exécution des composants extensibles externes utilisés pour un index et une requête, par exemple les analyseurs lexicaux, les générateurs de formes dérivées et les filtres, sans altérer l'intégrité du moteur de texte intégral. Une instance de serveur utilise un processus multithread pour tous les filtres multithreads et un processus monothread pour tous les filtres monothreads.
Le service FDHOST Launcher (MSSQLFDLauncher) propage les informations du compte de service vers les processus hôtes du démon de filtre d’une instance spécifique du Moteur de base de données. Pour plus d’informations sur la définition du compte de service, voir Définir le compte de service pour le lanceur de démons de filtre en texte intégral.
Compatibilité de la mise à niveau de SQL Server 2005
Un catalogue de texte intégral est un objet logique ou virtuel qui contient un groupe d’index de recherche en texte intégral. Par conséquent, un nouveau catalogue de texte intégral n’est pas traité comme un fichier de base de données avec un chemin d’accès physique. Cependant, si vous faites une mise à jour depuis SQL Server 2005 (9.x), un nouveau groupe de fichiers est créé sur le même disque pour tout catalogue texte intégral contenant des fichiers de données.
Cette procédure gère l’ancien comportement d’E/S de disque après la mise à niveau. Tout index de texte intégral de ce catalogue est placé dans le nouveau groupe de fichiers si le chemin d'accès racine existe. Si l'ancien chemin de catalogue de texte intégral est non valide, la mise à niveau conserve l'index de recherche en texte intégral dans le même groupe de fichiers comme table de base ou, pour une table partitionnée, dans le groupe de fichiers principal.
Options de mise à niveau de texte intégral
Lorsque vous mettez à jour une instance SQL Server, l’interface utilisateur vous permet de choisir l’une des options suivantes de mise à niveau en texte intégral. Ces options ne sont disponibles que pour les bases de données SQL Server 2005 (9.x).
Import
Les catalogues de texte intégral sont importés. En général, l’import est nettement plus rapide qu’une reconstruction. Par exemple, avec un seul cœur CPU, l’importation tourne environ 10 fois plus vite que la reconstruction. Toutefois, un catalogue de texte intégral importé n’utilise pas les nouveaux analyseurs de mots installés avec la dernière version de SQL Server. Pour garantir la cohérence dans les résultats de la requête, les catalogues de texte intégral doivent être reconstruits.
Remarque
Rebuild peut fonctionner en mode multithread, et si plus de 10 cœurs CPU sont disponibles, Rebuild peut être plus rapide que l’import si vous autorisez Rebuild à utiliser tous les cœurs.
Si aucun catalogue de texte intégral n’est disponible, les index de recherche en texte intégral associés sont reconstruits.
Pour des informations sur l’effet de l’importation d’un index en texte intégral, voir Considérations pour choisir une option de mise à niveau en texte intégral plus loin dans cet article.
Rebuild
Les catalogues en texte intégral sont reconstruits à l’aide des séparateurs de mots de la version actuelle. La reconstruction des index peut prendre du temps, et une quantité importante de ressources en termes d'UC et de mémoire peut être requise après la mise à niveau.
Reset
Les catalogues de texte intégral sont réinitialisés. Lorsque vous faites une mise à jour depuis SQL Server 2005 (9.x), les fichiers catalogues en texte intégral sont supprimés, mais les métadonnées des catalogues et index texte intégral sont conservées. Une fois mis à niveau, tous les index de recherche en texte intégral sont désactivés pour le suivi des modifications en temps réel, et les explorations ne sont pas démarrées automatiquement. Le catalogue reste vide tant que vous n'avez pas procédé manuellement à une alimentation complète, au terme de la mise à niveau.
Considérations relatives au choix d’une option de mise à niveau de texte intégral
Lorsque vous choisissez l’option de mise à niveau, considérez les éléments suivants :
Avez-vous besoin de cohérence dans les résultats de la requête ?
Le Moteur de base de données installe de nouveaux séparateurs de mots destinés à être utilisés par la recherche en texte intégral et la recherche sémantique. Les séparateurs de mots sont utilisés à la fois au moment de l’indexation et lors de l’exécution des requêtes. Si vous ne régénérez pas les catalogues de texte intégral, vos résultats de recherche peuvent être incohérents. Si vous lancez une requête en texte intégral qui recherche une expression qui est brisée différemment par le « word breaker » dans une version précédente du Moteur de base de données et le word breaker actuel, un document ou une ligne contenant la phrase pourrait ne pas être récupéré. Cela est dû au fait que les expressions indexées ont été divisées à l'aide d'une logique différente de celle de la requête utilise. La solution consiste à regénérer (reconstruire) les catalogues de texte intégral avec les nouveaux séparateurs de mots afin que le comportement au moment de l’indexation et au moment des requêtes soit identique. Vous pouvez choisir l’option Reconstruire pour cela, ou reconstruire manuellement après avoir choisi l’option Importer .
Certains index de recherche en texte intégral ont-ils été construits sur la base de colonnes clés de texte intégral de type Integer ?
La reconstruction réalise des optimisations internes qui, dans certains cas, améliorent les performances des requêtes de l'index de recherche en texte intégral mis à niveau. Spécifiquement, si vous avez des catalogues de texte intégral qui contiennent des index de recherche en texte intégral dont la colonne clé de texte intégral de la table de base correspond à un type de données Integer, la reconstruction permet d'obtenir une performance idéale des requêtes de texte intégral après la mise à niveau. Dans ce cas, vous devriez utiliser l’option Reconstruire .
Remarque
Pour les index en texte intégral, la colonne servant de clé de texte intégral doit être un type de donnée entier. Pour plus d’informations, voir Améliorer les performances des index en texte intégral.
Quelle est la priorité pour obtenir votre instance de serveur en ligne ?
L'importation ou la reconstruction pendant la mise à niveau mobilise beaucoup de ressources processeur, ce qui retarde la mise à niveau et en ligne du reste de l'instance serveur. Si le fait de mettre l'instance de serveur en ligne dès que possible est important et si vous êtes prêt à exécuter une population manuelle après la mise à niveau, la fonction Reset convient.
Garantie de résultats de requête cohérents après l’importation d’un index de recherche en texte intégral
Si un catalogue en texte intégral est importé lors de la mise à jour d’une base de données SQL Server 2005 (9.x), des incompatibilités entre la requête et le contenu de l’index en texte intégral peuvent survenir en raison de différences de comportement entre les anciens et nouveaux « word breakers ». Dans ce cas, pour garantir une correspondance totale entre requêtes et contenu d'index de recherche en texte intégral, choisissez l'une des options suivantes :
Régénérez le catalogue de texte intégral qui contient l’index de recherche en texte intégral avec ALTER FULLTEXT CATALOG:
ALTER FULLTEXT CATALOG <catalog_name> REBUILD;Émettre un
FULL POPULATIONsur l’index de texte intégral avec ALTER FULLTEXT INDEX:ALTER FULLTEXT INDEX ON <table_name> START FULL POPULATION;
Pour plus d’informations sur les « word breakers », voir Configurer et gérer les word breakers et les stemmers.
Mise à niveau des fichiers de mots parasites vers des listes de mots vides
Lorsqu'une base de données est mise à niveau à partir de SQL Server 2005 (9.x), les fichiers de mots parasites ne sont plus utilisés. Toutefois, les anciens fichiers de mots parasites sont stockés dans le dossier FTDATA\FTNoiseThesaurusBak et vous pouvez les utiliser ultérieurement lors de la mise à jour ou de la génération des listes de mots vides correspondantes SQL Server.
Après la mise à niveau à partir de SQL Server 2005 (9.x) :
Si vous n’avez jamais ajouté, modifié ou supprimé des fichiers de mots parasites de votre installation de SQL Server 2005 (9.x), la liste de mots vides système doit correspondre à vos besoins.
Si vos fichiers de mots parasites ont été modifiés dans SQL Server 2005 (9.x), ces changements sont perdus pendant la mise à niveau. Pour recréer ces mises à jour, vous devez recréer manuellement ces changements dans la liste de mots vides correspondante. Pour plus d’informations, consultez ALTER FULLTEXT STOPLIST.
Si vous ne souhaitez pas appliquer de mots vides à vos index de recherche en texte intégral (par exemple, si vous avez supprimé ou effacé vos fichiers noise-word dans votre installation de SQL Server 2005 (9.x), vous devez désactiver la liste de mots vides pour chaque index de recherche en texte intégral mis à niveau. Exécutez l’instruction Transact-SQL suivante (en remplaçant database par le nom de la base de données mise à niveau et table par le nom de la table) :
USE [database]; GO ALTER FULLTEXT INDEX ON [table] SET STOPLIST OFF; GOLa clause
STOPLIST OFFsupprime le filtrage par mot vide et déclenche une alimentation de la table, sans filtrer les mots considérés comme des mots parasites.
Sauvegarde et catalogues de texte intégral importés
Pour les catalogues en texte intégral qui sont reconstruits ou réinitialisés lors de la mise à jour (et pour les nouveaux catalogues en texte intégral), le catalogue en texte intégral est un concept logique et ne réside pas dans un groupe de fichiers. Par conséquent, pour sauvegarder un catalogue de texte intégral, vous devez identifier tous les groupes de fichiers contenant un index de recherche en texte intégral du catalogue et les sauvegarder un par un. Pour plus d’informations, consultez Sauvegarder et restaurer des catalogues de texte intégral et des index.
Pour les catalogues de texte intégral importés à partir de SQL Server 2005 (9.x), le catalogue de texte intégral est encore un fichier de base de données dans son propre groupe de fichiers. Le processus de sauvegarde SQL Server 2005 (9.x) pour les catalogues de texte intégral s’applique toujours, sauf que le service MSFTESQL n’existe pas dans SQL Server. Pour plus d’informations sur le processus SQL Server 2005 (9.x), consultez Sauvegarde et restauration d’un catalogue de texte intégral dans la documentation en ligne de SQL Server 2005.
Migrer des index de recherche en texte intégral lors de la mise à niveau d’une base de données
Les fichiers de base de données et les catalogues de texte intégral d'une version précédente de SQL Server peuvent être mis à niveau vers une instance existante en utilisant un attachement, une restauration ou l'Assistant Copie de base de données. Les index de recherche en texte intégral de SQL Server 2005 (9.x) sont, le cas échéant, importés, réinitialisés ou reconstruits. La upgrade_option propriété serveur spécifie l’option de mise à niveau de texte intégral utilisée par l’instance de serveur pendant ces mises à niveau de base de données.
Après avoir attaché, restauré ou copié toute base de données SQL Server 2005 (9.x) vers une instance plus récente, la base de données devient immédiatement disponible et est automatiquement mise à jour. Selon le volume de données indexé, l’importation peut prendre plusieurs heures et la reconstruction peut durer jusqu’à dix fois plus longtemps. Lorsque l’option de mise à niveau est définie pour importer, si un catalogue de texte intégral n’est pas disponible, les index de recherche en texte intégral associés sont reconstruits.
Modifier le comportement de mise à niveau de texte intégral sur une instance de serveur
Transact-SQL : Utiliser l’action
upgrade_optionde sp_fulltext_serviceSQL Server Management Studio : utilisez l’option de mise à niveau Full-Text de la boîte de dialogue Propriétés du serveur. Pour plus d’informations, consultez Gérer et surveiller la recherche en texte intégral pour une instance de serveur.
Considérations relatives à la restauration d’un catalogue de texte intégral SQL Server 2005 (9.x)
Une méthode pour mettre à jour les données en texte intégral d’une base de données SQL Server 2005 (9.x) consiste à restaurer une sauvegarde complète de la base de données vers une instance plus récente de SQL Server.
En important un catalogue SQL Server 2005 (9.x), vous pouvez sauvegarder et restaurer la base de données et le fichier catalogue. Le comportement est le même que dans SQL Server 2005 (9.x) :
La sauvegarde complète de la base de données inclut le catalogue de texte intégral. Pour faire référence au catalogue de texte intégral, utilisez son nom de fichier SQL Server 2005 (9.x), sysft_+nom-catalogue.
Si le catalogue de texte intégral est hors connexion, la sauvegarde échoue.
Pour plus d’informations sur la sauvegarde et la restauration de catalogues de texte intégral SQL Server 2005 (9.x), consultez : Sauvegarde et restauration de catalogues de texte intégral et index, sauvegarde et restauration de fichiers, et catalogues de texte intégral dans la documentation en ligne de SQL Server 2005 (9.x).
Lorsque la base de données est restaurée sur une instance plus récente de SQL Server, un nouveau fichier de base de données est créé pour le catalogue de texte intégral. Le nom par défaut de ce fichier est ftrow_nom-catalogue.ndf. Par exemple, si votre nom de catalogue est cat1, le nom par défaut du fichier de base de données SQL Server serait ftrow_cat1.ndf. Mais si le nom par défaut est déjà utilisé dans le répertoire cible, le nouveau fichier de base de données sera nommé ftrow_GUID-nom{}.ndf de catalogue, où GUID est l’identifiant unique globalement unique du nouveau fichier.
Une fois les catalogues importés, les sys.database_files et sys.master_files sont mis à jour pour supprimer les entrées de catalogue, et la colonne path dans sys.fulltext_catalogs est définie sur NULL.
Sauvegarder une base de données
- Sauvegardes complètes de la base de données
- Sauvegardes des journaux de transactions (modèle de récupération complet uniquement)
Restaurer une sauvegarde de base de données
- Restaurations de base de données complètes (mode de récupération simple)
- Restaurations complètes de bases de données (mode de récupération complète)
Exemple
L’exemple suivant utilise la MOVE clause de l’instruction RESTORE pour restaurer une base de données SQL Server 2005 (9.x) nommée ftdb1. Les fichiers catalogue, le journal et la base de données de SQL Server 2005 (9.x) sont déplacés vers les nouveaux emplacements sur l'instance de serveur SQL Server, comme suit :
Le fichier de base de données,
ftdb1.mdf, est déplacé versC:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf.Le fichier journal,
ftdb1_log.ldf, est déplacé vers un répertoire de journal sur votre lecteur de disque journal, lecteur_journal:\répertoire_journal\ftdb1_log.ldf.Les fichiers catalogue qui correspondent au catalogue
sysft_cat90sont déplacés versC:\temp. Après l’importation des index en texte intégral, ils sont automatiquement placés dans un fichier de base de données,C:\ftrow_sysft_cat90.ndfetC:\tempseront supprimés.
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';
Attacher une base de données SQL Server 2005
Dans SQL Server 2008 (10.0.x) et les versions ultérieures, un catalogue de texte intégral est un concept logique qui renvoie à un groupe d'index de recherche en texte intégral. Le catalogue de texte intégral est un objet virtuel qui n’appartient à aucun groupe de fichiers. Cependant, quand vous attachez une base de données SQL Server 2005 (9.x) qui contient des fichiers catalogue de texte intégral à une instance de serveur SQL Server plus récente, les fichiers catalogue sont attachés à partir de leur emplacement précédent avec les autres fichiers de base de données, les mêmes que dans SQL Server 2005 (9.x).
L'état de chaque catalogue de texte intégral attaché sur SQL Server est le même que lors du détachement de la base de données de SQL Server 2005 (9.x). Si le remplissage de l'index de recherche en texte intégral est interrompu par l'opération de détachement, le remplissage reprend sur SQL Server, et l'index de recherche en texte intégral devient disponible pour la recherche en texte intégral.
Si SQL Server ne trouve pas de fichier catalogue de texte intégral ou si le fichier de texte intégral a été déplacé pendant l’opération d’attachement sans spécifier de nouvel emplacement, le comportement dépend de l’option de mise à niveau de texte intégral sélectionnée. Si l’option de mise à niveau de texte intégral a la valeur Importer ou Reconstruire, le catalogue de texte intégral attaché est reconstruit. Si l’option de mise à niveau de texte intégral a la valeur Réinitialiser, le catalogue de texte intégral attaché est réinitialisé.
Pour plus d’informations sur le détachement et l’attachement d’une base de données, voir Détacher et attacher la base de données, CREATE DATABASE, sp_attach_db et sp_detach_db.