KB963659-Fix: Sie erhalten Fehlermeldungen, wenn Sie eine Auffüllung für einen umfangreichen Volltextindex in SQL Server 2008 oder in SQL Server 2008 R2 ausführen.

Gilt für: SQL Server 2008 StandardSQL Server 2008 EnterpriseSQL Server 2008 Developer

Microsoft vertreibt Microsoft SQL Server 2008-Fixes als eine herunterladbare Datei. Da die Fixes kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 behoben wurden.

Problembeschreibung


Symptom 1Wenn Sie eine Auffüllung für einen umfangreichen Volltextindex in Microsoft SQL Server 2008 oder Microsoft SQL Server 2008 R2 ausführen, wird möglicherweise eine Fehlermeldung in der voll Textprotokolldatei angezeigt. Die Häufigkeit, mit der diese Fehlermeldung protokolliert wird, hängt von der Batchgröße minus eins ab. Beispielsweise ist auf einem 32-Bit-Computer die Batchgröße 1.000, sodass der Fehler 999 mal protokolliert wird. Die Fehlermeldung sieht wie folgt aus:
Fehler "0x8004cb04: die im Arbeitsspeicher befindliche Wortliste ist beschädigt. Dies liegt an einem fehlerhaften Filter, Wörtertrennungs oder einer anderen Indizierungskomponente. "während der Volltextindexauffüllung für die Tabelle oder indizierte Sicht" [smarsh]. [dbo]. [ArchiveMsgs] ' (Tabelle oder indizierte Sicht-ID ' 160719625 '; Datenbank-ID ' 7 '), Volltextschlüsselwert ' 291484087 '. Es wird versucht, Sie erneut zu indizieren.
Nachdem Sie diese Fehlermeldung erhalten haben, wird möglicherweise auch die folgende Fehlermeldung für die Batchgröße minus eins angezeigt:
<Datum> <Uhrzeit> spid28s-Fehler "0x80040e28" während der Auffüllung des Volltextindexes für die Tabelle oder indizierte Sicht ' [smarsh]. [dbo]. [ArchiveMsgs] ' (Tabelle oder indizierte Sicht-ID ' 160719625 '; Datenbank-ID ' 7 '), Volltextschlüsselwert ' 199598211 '. Es wird versucht, Sie erneut zu indizieren.
Nachdem Sie diese Fehlermeldung erhalten haben, wird möglicherweise auch die folgende Fehlermeldung für die Batchgröße minus eins angezeigt:
<Datum> <Uhrzeit> spid26s-Fehler "0x80043630: der Filter-Daemon-Prozess MSFTEFD ein Timeout aus einem unbekannten Grund. Dies kann auf einen Fehler in einem Filter, Wörtertrennungs oder Protokollhandler hindeuten. "während der Volltextindexauffüllung für die Tabelle oder indizierte Sicht" [smarsh]. [dbo]. [ArchiveMsgs] ' (Tabelle oder indizierte Sicht-ID ' 160719625 '; Datenbank-ID ' 7 '), Volltextschlüsselwert ' 14304130 '. Es wird versucht, Sie erneut zu indizieren.
Symptom 2Darüber hinaus stellen Sie möglicherweise fest, dass der Prozess "fdhost. exe" fehlerhaft ist. Wenn Sie versuchen, eine Volltextabfrage auszuführen oder eine Volltextauffüllung durchzuführen, erhalten Sie die folgende Meldung zurück an den Client.
Msg 30053, Ebene 16, Zustand 102, Zeile 1Word Breaking Zeitüberschreitung für die Volltextabfragezeichenfolge. Dies kann geschehen, wenn der Wörtertrennungs eine lange Zeit in Anspruch nahm, um die Volltextabfragezeichenfolge zu verarbeiten, oder wenn eine große Anzahl von Abfragen auf dem Server ausgeführt wird. Versuchen Sie, die Abfrage unter einer helleren Auslastung erneut auszuführen.
Wenn Sie die SQLFT *-Protokolle für diesen Katalog untersuchen, sehen Sie diese Fehlermeldung:
Fehler "0x80004005" während der Auffüllung des Volltextindexes für die Tabelle oder indizierte Sicht ' [DBName]. [dbo]. [TableName] ' (Tabelle oder indizierte Sicht-ID ' 1204001724 '; Datenbank-ID ' 5 '), Volltextschlüsselwert ' 4 '. Es wird versucht, Sie erneut zu indizieren.
Wenn Sie das SQL-Fehlerprotokoll untersuchen, sehen Sie diese Fehlermeldung:
Fehler: 30089, Schweregrad: 17, Status: 1. der Volltext-Filter-Daemon-Host (fdhost)-Prozess wurde nicht mehr ordnungsgemäß beendet. Dies kann auftreten, wenn eine falsch konfigurierte oder fehlerhafte linguistische Komponente wie Wörtertrennungs, STEMMER oder Filter bei der Volltextindizierung oder der Abfrageverarbeitung zu einem unwiederbringlichen Fehler geführt hat. Der Prozess wird automatisch neu gestartet.

Ursache


Dieses Problem tritt aufgrund eines Fehlers in der Kommunikation zwischen dem Prozess sqlservr. exe und dem fdhost. exe-Prozess auf. Wenn Batches vom Prozess sqlservr. exe an den Prozess fdhost. exe gesendet werden, weist manchmal der ausgehende Shared Memory (OSM), bei dem es sich um den freigegebenen Speicher von sqlservr. exe zu fdhost. exe handelt, nicht genügend Speicherplatz für die nächste Spalte eines Dokuments auf. In diesem Fall sendet der Prozess sqlservr. exe eine Nachricht, um den Prozess fdhost. exe zu benachrichtigen, um alle vorhandenen Daten in der OSM-Datei zu verarbeiten. Während der Prozess "fdhost. exe" Daten verarbeitet, kann der freigegebene Arbeitsspeicher (ISM), der der freigegebene Speicher von fdhost. exe zu sqlservr. exe ist, voll werden. In diesem Fall sendet der Prozess "fdhost. exe" eine Meldung "Zurückspulen" an den Prozess "sqlservr. exe". Diese Meldung fordert an, dass der sqlservr. exe-Prozess das letzte Dokument aus der ersten Spalte erneut sendet. Wenn der Prozess "sqlservr. exe" jedoch beginnt, das Dokument erneut zu senden, beginnt er in Spalte 2 statt in Spalte 1. Dies führt zu den Fehlermeldungen, die im Abschnitt "Symptom" erwähnt werden.

Fehlerbehebung


Informationen zum kumulativen Update

SQL Server 2008 R2 Service Pack 2

Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 3 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 R2 Service Pack 2 erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
2754552 Kumulatives Updatepaket 3 für SQL Server 2008 R2 Service Pack 2
Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 R2 Service Pack 2 enthalten waren. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2730301 Die SQL Server 2008 R2-Builds, die nach dem Veröffentlichen von SQL Server 2008 R2 Service Pack 2 veröffentlicht wurden

SQL Server 2008

Die Fehlerbehebung für dieses Problem wurde zuerst in Kumulatives Update 4 für die Veröffentlichungsversion von SQL Server 2008 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
963036 Kumulatives Updatepaket 4 für SQL Server 2008
Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
956909 Die SQL Server 2008-Builds, die nach der Veröffentlichung von SQL Server 2008 veröffentlicht wurden

SQL Server 2008 Service Pack 1

Der Fix für dieses Problem wurde erstmals im kumulativen Update 1 für SQL Server 2008 Service Pack 1 veröffentlicht. Wenn Sie weitere Informationen zum beziehen dieses kumulativen Updatepakets für SQL Server 2008 benötigen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
969099 Kumulatives Updatepaket 1 für SQL Server 2008 Service Pack 1
Hinweis Da die Builds kumulativ sind, enthält jede neue Fix-Version alle Hotfixes und alle Sicherheitsupdates, die in der vorherigen Version von SQL Server 2008 behoben wurden. Wir empfehlen, dass Sie die neueste Fix-Version anwenden, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
970365 Die SQL Server 2008-Builds, die nach der Veröffentlichung von SQL Server 2008 Service Pack 1 veröffentlicht wurden

Problemumgehung


Um dieses Problem zu umgehen, vergrößern Sie die ISM-Größe. Konfigurieren Sie dazu die ISM_Size-Variable mithilfe der gespeicherten Prozedur sp_fulltext_service . So zeigen Sie den aktuellen Wert an:sp_fulltext_service "ism_size" , um den Wert in 16 zu ändern:sp_fulltext_service "ism_size", @Value = 16Hinweis: Sie müssen den SQL Server-Dienst neu starten, damit diese Änderung wirksam wird.

Status


Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Weitere Informationen


Dieses Problem verhindert nicht, dass die Auffüllung beendet wird. Der Volltextindex verfügt über eine integrierte Wiederholungslogik, mit der der fehlerhafte Eintrag weiterhin wiederholt wird, bis er erfolgreich ist. Daher können Sie die Fehlermeldungen bedenkenlos ignorieren. Die einzigen bekannten potenziellen negativen Nebeneffekte sind, dass es möglicherweise länger dauert, bis die Auffüllung abgeschlossen ist, und das Wachstum des voll Text Protokolls für die Berichterstellung des Fehlers erheblich zunimmt. Die Wiederholungslogik im Quellcode führt trotz der Fehlermeldung, die mögliche Beschädigungen angibt, zu einer möglichen erfolgreichen Auffüllung ohne Beschädigung des Indexes. Wenn Sie die oben beschriebene Symptom #2 ausführen, funktionieren die Volltextsuchabfragen oder die Auffüllung nicht, da sich die FDHOST-Komponente nicht in einem korrekten Zustand befindet und Sie dieses kumulative Update anwenden müssen.

Weitere Informationen zum kumulativen Updatepaket 4 für SQL Server 2008

Wenn Sie weitere Informationen dazu erhalten möchten, welche Dateien geändert werden, und wenn Sie Informationen zu den Voraussetzungen für die Anwendung des kumulativen Updatepakets haben, das den in diesem Microsoft Knowledge Base-Artikel beschriebenen Hotfix enthält, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
963036 Kumulatives Updatepaket 4 für SQL Server 2008

Weitere Informationen zum kumulativen Updatepaket 1 für SQL Server 2008 Service Pack 1

Wenn Sie weitere Informationen dazu erhalten möchten, welche Dateien geändert werden, und wenn Sie Informationen zu den Voraussetzungen für die Anwendung des kumulativen Updatepakets haben, das den in diesem Microsoft Knowledge Base-Artikel beschriebenen Hotfix enthält, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
969099 Kumulatives Updatepaket 1 für SQL Server 2008 Service Pack 1

Informationsquellen


Wenn Sie weitere Informationen zur Liste der Builds erhalten möchten, die nach der Veröffentlichung von SQL Server 2008 verfügbar sind, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
956909 Die SQL Server 2008-Builds, die nach der Veröffentlichung von SQL Server 2008 veröffentlicht wurden
Wenn Sie weitere Informationen zum inkrementellen Wartungsmodell für SQL Server erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
935897 Ein inkrementelles Wartungsmodell steht im SQL Server-Team zum Bereitstellen von Hotfixes für gemeldete Probleme zur Verfügung.
Wenn Sie weitere Informationen zum Benennungsschema für SQL Server-Updates erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
822499 Neues Benennungsschema für Microsoft SQL Server-Softwareupdatepakete
Wenn Sie weitere Informationen zur Terminologie für Softwareupdates erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
824684 Beschreibung der Standardterminologie, die zum Beschreiben von Microsoft-Softwareupdates verwendet wird