CORRECTIF : Vous recevez des messages d’erreur lorsque vous exécutez un remplissage pour un index de texte intégral volumineux dans SQL Server 2008 ou dans SQL Server 2008 R2

Microsoft distribue les correctifs de Microsoft SQL Server 2008 en tant que fichier téléchargeable. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et correctifs de sécurité inclus dans la précédente 2008 de SQL Server version du correctif.

Symptômes

Symptôme 1

Lorsque vous effectuez un remplissage pour un index de texte intégral de grande taille dans Microsoft SQL Server 2008 ou Microsoft SQL Server 2008 R2, vous pouvez recevoir un message d’erreur dans le fichier journal de texte intégral. Le nombre de fois que ce message d’erreur est consigné dépend de la taille de lot moins un. Par exemple, sur un ordinateur 32 bits, la taille de lot étant 1 000, l’erreur est consignée 999 heures. Le message d’erreur semblable au suivant :
Erreur ' 0x8004cb04 : La liste de mots en mémoire est endommagée. Ceci est dû à un filtre défectueux, un séparateur de mots ou autre composant indexation.' s’est produite pendant le remplissage d’index de texte intégral pour la table ou la vue indexée ' [smarsh]. [dbo]. [ArchiveMsgs]' (table ou vue indexée ID ' 160719625', base de données ID ' 7'), la valeur de clé de texte intégral '291484087'. Tentative effectuée pour réindexer il.
Après avoir reçu ce message d’erreur, vous pouvez également recevoir le message d’erreur suivant pour la taille de lot moins un :
spid28s < date >< heure > '0x80040e28' erreur de texte intégral index de remplissage de la table ou la vue indexée ' [smarsh]. [dbo]. [ArchiveMsgs]' (table ou vue indexée ID ' 160719625', base de données ID ' 7'), la valeur de clé de texte intégral '199598211'. Tentative effectuée pour réindexer il.
Après avoir reçu ce message d’erreur, vous pouvez également recevoir le message d’erreur suivant pour la taille de lot moins un :
Erreur de spid26s < date >< heure > 0x80043630 ' : le processus démon du filtre MSFTEFD a expiré pour une raison inconnue. Cela peut indiquer un bogue dans un filtre, un séparateur de mots ou Gestionnaire de protocole.' s’est produite pendant le remplissage d’index de texte intégral pour la table ou la vue indexée ' [smarsh]. [dbo]. [ArchiveMsgs]' (table ou vue indexée ID ' 160719625', base de données ID ' 7'), la valeur de clé de texte intégral '14304130'. Tentative effectuée pour réindexer il.
Symptôme 2

En outre, vous pouvez remarquer que le processus FDHOST.exe est défectueux. Lorsque vous essayez d’exécuter une requête de texte intégral ou effectuer un remplissage de texte intégral, vous recevez le message suivant au client.
Msg 30053, niveau 16, état 102, ligne 1
Césure a expiré pour la chaîne de requête de texte intégral. Cela peut se produire si le séparateur de mots prenait beaucoup de temps à traiter la chaîne de requête de texte intégral, ou si un grand nombre de requêtes est en cours d’exécution sur le serveur. Essayez d’exécuter la requête à nouveau sous une charge plus claire.
Lorsque vous examinez les journaux de SQLFT * pour ce catalogue, vous notez ce message d’erreur :
Erreur '0 x 80004005' s’est produite pendant le remplissage d’index de texte intégral pour la table ou la vue indexée ' [DBNAME]. [dbo]. [Nom_table]' (table ou vue indexée ID ' 1204001724', base de données ID ' 5'), la valeur de clé de texte intégral '4'. Tentative effectuée pour réindexer il.
Lorsque vous examinez le journal des erreurs SQL, vous notez ce message d’erreur :
Erreur : 30089, gravité : 17, état : 1.
Le processus hôte (FDHost) de démon du filtre de texte intégral s’est arrêté de façon anormale. Cela peut se produire si un composant linguistique mal configuré ou ne fonctionne pas correctement, par exemple un séparateur de mots, un analyseur morphologique ou un filtre a provoqué une erreur irrécupérable lors du traitement de l’indexation ou de la requête de texte intégral. Le processus sera redémarré automatiquement.

Cause

Ce problème se produit en raison d’un bogue dans la communication entre le processus Sqlservr.exe et Fdhost.exe. Lorsque des lots sont envoyés à partir du processus Sqlservr.exe au processus Fdhost.exe, parfois la mémoire partagée sortante (OSM), qui est de la mémoire partagée de Sqlservr.exe à Fdhost.exe, l’espace est insuffisant pour contenir la colonne suivante d’un document. Lorsque cela se produit, le processus Sqlservr.exe envoie un message pour informer le Fdhost.exe un processus à toutes les données existantes dans le OSM. Pendant le traitement de données est le processus Fdhost.exe la mémoire partagée entrante (ISM), ce qui est de la mémoire partagée à partir de Fdhost.exe à Sqlservr.exe, peut arriver à saturation. Dans ce cas, le processus Fdhost.exe envoie un message de « rembobinage » au processus Sqlservr.exe. Ce message demande que le processus Sqlservr.exe renvoyer le dernier document à partir de la première colonne. Toutefois, lorsqu’il démarre le processus Sqlservr.exe envoyer le document à nouveau, il démarre à partir de la colonne 2, au lieu de la colonne 1. Ainsi, les messages d’erreur mentionnés dans la section « Symptômes ».

Résolution

Informations de mise à jour cumulative

SQL Server 2008 R2 Service Pack 2

Le correctif de ce problème a été publié dans 3 de mise à jour Cumulative. Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2008 R2 Service Pack 2, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
2754552 Cumulative mise à jour 3 pour SQL Server 2008 R2 Service Pack 2
Remarque Les versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente SQL Server 2008 R2 Service Pack 2 version du correctif. Nous vous recommandons l’application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2730301 le SQL Server versions 2008 R2 publiées après SQL Server 2008 R2 Service Pack 2

SQL Server 2008

Le correctif de ce problème a été publié dans les 4 mise à jour Cumulative pour la version de SQL Server 2008. Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
963036 Cumulative mise à jour 4 pour SQL Server 2008
Remarque Les versions étant cumulatives, chaque nouvelle version du correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente version du correctif de SQL Server 2008. Nous vous recommandons l’application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
956909 the SQL Server versions 2008 publiées après SQL Server 2008

SQL Server 2008 Service Pack 1

Le correctif de ce problème a été publié dans à jour Cumulative 1 pour SQL Server 2008 Service Pack 1. Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
969099 Cumulative mise à jour 1 pour Microsoft SQL Server 2008 Service Pack 1
Remarque Les versions étant cumulatives, chaque nouvelle version du correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente version du correctif de SQL Server 2008. Nous vous recommandons l’application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
970365 the SQL Server versions 2008 publiées après SQL Server 2008 Service Pack 1

Solution de contournement

Pour contourner ce problème, augmentez la taille ISM. Pour ce faire, configurez la variable ISM_Size à l’aide de la procédure stockée sp_fulltext_service .

Pour afficher la valeur actuelle :
sp_fulltext_service 'ism_size'

Pour modifier la valeur à 16 :
sp_fulltext_service 'ism_size',@value=16

Remarque : Vous devez redémarrer le service SQL Server pour que cette modification prenne effet.

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Ce problème n’empêche pas la population à partir de la fin. L’index de texte intégral a une logique de relance intégrée qui continuera d’essayer l’entrée échouée jusqu'à ce qu’il réussisse. Par conséquent, vous pouvez ignorer les messages d’erreur. Les seuls potentiels négatifs effets secondaires connus sont qu’il peut prendre plu de temps pour l’achèvement du remplissage et la croissance du journal de texte intégral augmente considérablement pour la notification de l’erreur.

La logique des nouvelles tentatives dans le code source provoque un éventuel remplissage réussi sans altération de l’index, malgré le message d’erreur qui indique une corruption possible.


Si vous exécutez dans le symptôme #2 décrit ci-dessus, le texte intégral puis les requêtes de recherche ou de remplissage ne fonctionne pas, car le composant FDHOST n’est pas dans un état correct de la fonction et que vous devez appliquer cette mise à jour cumulative.

Plus d’informations sur le package de mises à jour cumulatives 4 pour SQL Server 2008

Pour plus d’informations sur les fichiers modifiés et pour plus d’informations sur les conditions requises pour appliquer le package de mise à jour cumulative qui contient le correctif qui est décrit dans cet article de la Base de connaissances Microsoft, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
963036 Cumulative mise à jour 4 pour SQL Server 2008

Plus d’informations sur le package de mise à jour cumulative 1 pour SQL Server 2008 Service Pack 1

Pour plus d’informations sur les fichiers modifiés et pour plus d’informations sur les conditions requises pour appliquer le package de mise à jour cumulative qui contient le correctif qui est décrit dans cet article de la Base de connaissances Microsoft, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
969099 Cumulative mise à jour 1 pour Microsoft SQL Server 2008 Service Pack 1

Références

Pour plus d’informations sur la liste des versions disponibles après la publication de SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

956909 the SQL Server versions 2008 publiées après SQL Server 2008

Pour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

935897 un modèle de service incrémentiel est disponible auprès de l’équipe SQL Server pour proposer des correctifs pour les problèmes signalés

Pour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

Packages de mises à jour 822499 nouveau schéma d’appellation pour les logiciels de Microsoft SQL Server

Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft
Propriétés

ID d'article : 963659 - Dernière mise à jour : 14 janv. 2017 - Révision : 1

Commentaires