Upgrade der Volltextsuche
Das Upgrade der Volltextsuche auf SQL Server 2014 erfolgt während des Setups und wenn Datenbankdateien und Volltextkataloge aus der früheren Version von SQL Server mithilfe des Assistenten zum Kopieren von Datenbanken angefügt, wiederhergestellt oder kopiert werden.
In diesem Thema werden die folgenden Aspekte des Aktualisierens der Volltextsuche erläutert:
Migrieren von Volltextindizes beim Aktualisieren einer Datenbank auf SQL Server 2014
Überlegungen zum Wiederherstellen eines SQL Server 2005-Volltextkatalogs in SQL Server 2014
Aktualisieren einer Serverinstanz
Für ein direktes Upgrade wird eine instance von SQL Server 2014 parallel zur alten Version von SQL Server eingerichtet, und daten werden migriert. Wenn in der alten Version von SQL Server die Volltextsuche installiert war, wird automatisch eine neue Version der Volltextsuche installiert. Parallele Installation bedeutet, dass jede der folgenden Komponenten auf der instance-Ebene SQL Server vorhanden ist.
Wörtertrennung, Wortstammerkennung und Filter
Jede Instanz verwendet ihren eigenen Satz von Wörtertrennung, Wortstammerkennung und Filtern, anstatt auf die Betriebssystemversion dieser Komponenten zurückzugreifen. Diese Komponenten sind auf Instanzebene einfacher zu registrieren und zu konfigurieren. Weitere Informationen finden Sie unter Konfigurieren und Verwalten von Wörtertrennungen und Wortstammerkennungen für die Suche und Konfigurieren und Verwalten von Filtern für die Suche.
Filterdaemonhost
Bei Volltext-Filterdaemonhosts handelt es sich um Prozesse, die erweiterbare externe Komponenten für Indizierung und Abfragen wie Wörtertrennung, Wortstammerkennung und Filter auf sichere Weise laden und ausführen, ohne die Integrität der Volltext-Engine zu gefährden. Eine Serverinstanz verwendet einen Multithreadprozess für alle Multithreadfilter und einen Singlethreadprozess für alle Filter mit einem einzigen Thread.
Hinweis
SQL Server 2008 wurde ein Dienstkonto für den FDHOST-Startprogrammdienst (MSSQLFDLauncher) eingeführt. Dieser Dienst verteilt die Dienstkontoinformationen an die Hostprozesse des Filterdaemons eines bestimmten instance SQL Server. Informationen zum Festlegen des Dienstkontos finden Sie unter Festlegen des Dienstkontos für das Startprogramm des Volltextfilterdaemons.
In SQL Server 2005 befindet sich jeder Volltextindex in einem Volltextkatalog, der zu einer Dateigruppe gehört, einen physischen Pfad aufweist und als Datenbankdatei behandelt wird. In SQL Server 2008 und höheren Versionen ist ein Volltextkatalog ein logisches oder virtuelles Objekt, das eine Gruppe von Volltextindizes enthält. Deshalb wird ein neuer Volltextkatalog nicht als Datenbankdatei mit einem physischen Pfad behandelt. Wenn jedoch ein Volltextkatalog aktualisiert wird, der Datendateien enthält, wird auf demselben Datenträger jeweils eine neue Dateigruppe erstellt. Auf diese Weise wird nach dem Upgrade das alte Datenträger-E/A-Verhalten beibehalten. Jeder Volltextindex aus diesem Katalog wird in die neue Dateigruppe eingefügt, wenn der Stammpfad vorhanden ist. Falls der alte Volltextkatalogpfad ungültig ist, wird beim Upgrade der Volltextindex in derselben Dateigruppe wie die Basistabelle bzw. bei einer partitionierten Tabelle in der primären Dateigruppe beibehalten.
Hinweis
SQL Server 2005 Transact-SQL DDL-Anweisungen, die Volltextkataloge angeben, funktionieren weiterhin ordnungsgemäß.
Volltextupgrade-Optionen
Beim Upgrade eines Servers instance auf SQL Server 2014 können Sie über die Benutzeroberfläche eine der folgenden Volltextupgradeoptionen auswählen.
Importieren
Volltextkataloge werden importiert. Normalerweise ist der Import bedeutend schneller als eine Neuerstellung. Wenn Sie zum Beispiel nur eine CPU verwenden, läuft ein Import etwa zehnmal schneller ab als eine Neuerstellung. Ein importierter Volltextkatalog verwendet jedoch nicht die neuen Worttrennungen, die mit der neuesten Version von SQL Server installiert wurden. Volltextkataloge müssen neu erstellt werden, um die Konsistenz in Abfrageergebnissen sicherzustellen.
Hinweis
Sie können die Neuerstellung im Multithreadmodus ausführen. Wenn mehr als 10 CPUs verfügbar sind, ist die Neuerstellung ggf. schneller als der Import, falls dabei alle CPUs genutzt werden können.
Wenn ein Volltextkatalog nicht verfügbar ist, werden die zugehörigen Volltextindizes neu erstellt. Diese Option ist nur für SQL Server 2005-Datenbanken verfügbar.
Informationen zu den Auswirkungen eines Imports von Volltextindizes finden Sie unter "Überlegungen beim Auswählen einer Volltextupgrade-Option" weiter unten in diesem Thema.
Neu erstellen
Volltextkataloge werden mithilfe der neuen und verbesserten Worttrennmodule neu erstellt. Das Neuerstellen von Indizes kann einige Zeit dauern, und nach dem Upgrade ist ggf. eine beträchtliche Menge an CPU-Leistung und Arbeitsspeicherkapazität erforderlich.
Reset
Volltextkataloge werden zurückgesetzt. Beim Upgrade von SQL Server 2005 werden Volltextkatalogdateien entfernt, aber die Metadaten für Volltextkataloge und Volltextindizes werden beibehalten. Nach der Upgrade wird die Änderungsnachverfolgung für alle Volltextindizes deaktiviert, und Durchforstungen werden nicht automatisch gestartet. Der Katalog bleibt leer, bis Sie ihn nach Beendigung des Upgrades manuell vollständig auffüllen.
Überlegungen beim Auswählen einer Volltextupgrade-Option
Beachten Sie beim Auswählen der Aktualisierungsoption Folgendes:
Ist die Konsistenz in Abfrageergebnissen erforderlich?
SQL Server 2014 installiert neue Worttrennungen für Full-Text und semantische Suche. Die Wörtertrennungen werden sowohl bei der Indizierung als auch bei Abfragen verwendet. Wenn Sie die Volltextkataloge nicht neu erstellen, sind die Suchergebnisse möglicherweise inkonsistent. Wenn Sie eine Volltextabfrage ausstellen, die nach einem Ausdruck sucht, der durch die Worttrennung in einer früheren Version von SQL Server und der aktuellen Worttrennung unterschiedlich unterbrochen wird, wird ein Dokument oder eine Zeile, die den Ausdruck enthält, möglicherweise nicht abgerufen. Das liegt daran, dass die indizierten Ausdrücke anhand einer anderen Logik getrennt wurden als der von der Abfrage verwendeten Logik. Die Lösung besteht darin, die Volltextkataloge mit den neuen Wörtertrennungen aufzufüllen (neu zu erstellen), damit das Verhalten bei der Indizierung und bei Abfragen gleich ist. Sie können dafür die Option zur Neuerstellung auswählen oder nach dem Auswählen der Option "Importieren" die Kataloge manuell neu erstellen.
Wurden Volltextindizes basierend auf ganzzahligen Volltextschlüsselspalten erstellt?
Bei der Neuerstellung werden interne Optimierungen durchgeführt, die die Abfrageleistung des aktualisierten Volltextindex in einigen Fällen verbessern. Mit der Neuerstellung erzielen Sie nach dem Upgrade besonders dann eine optimale Leistung der Volltextabfragen, wenn Sie Volltextkataloge mit Volltextindizes verwenden, bei denen die Volltextschlüsselspalte der Basistabelle ein integer-Datentyp ist. In diesem Fall ist es sehr zu empfehlen, die Option Neu erstellen zu verwenden.
Hinweis
Für Volltextindizes in SQL Server 2014 wird empfohlen, dass die spalte, die als Volltextschlüssel dient, ein ganzzahliger Datentyp ist. Weitere Informationen finden Sie unter Verbessern der Leistung von Volltextindizes.
Worauf liegt beim Herstellen der Onlineverfügbarkeit der Serverinstanz die Priorität?
Das Importieren bzw. das Neuerstellen während eines Upgrades belegt viele CPU-Ressourcen. Dies führt zu Verzögerungen beim Aktualisieren und Herstellen der Onlineverfügbarkeit des Rests der Serverinstanz. Wenn die schnellstmögliche Onlineverfügbarkeit der Serverinstanz wichtig und das manuelle Auffüllen nach dem Upgrade akzeptabel ist, eignet sich die Option Zurücksetzen .
Sicherstellen von konsistenten Abfrageergebnissen nach dem Importieren eines SQL Server 2005-Volltextindexes
Wenn beim Upgrade einer SQL Server 2005-Datenbank auf SQL Server 2014 ein Volltextkatalog importiert wurde, kann es aufgrund von Unterschieden im Verhalten der alten und neuen Worttrennung zu Abweichungen zwischen der Abfrage und dem Volltextindexinhalt kommen. Wählen Sie in diesem Fall eine der folgenden Optionen aus, um eine vollständige Übereinstimmung zwischen Abfragen und dem Inhalt des Volltextindexes sicherzustellen:
Erstellen Sie den Volltextkatalog neu, der den Volltextindex enthält (ALTER FULLTEXT CATALOGcatalog_name REBUILD)
Geben Sie eine FULL POPULATION für den Volltextindex aus (ALTER FULLTEXT INDEX ON table_name START FULL POPULATION).
Weitere Informationen zur Wörtertrennung finden Sie unter Konfigurieren und Verwalten von Wörtertrennungen und Wortstammerkennungen für die Suche.
Aktualisieren von Füllwortdateien auf Stoplisten
SQL Server Rauschwörter 2005 wurden in SQL Server 2008 und höheren Versionen durch Stoppwörter ersetzt. Wenn eine Datenbank von SQL Server 2005 auf SQL Server 2014 aktualisiert wird, werden die Rauschwortdateien nicht mehr verwendet. Die alten Rauschwortdateien werden jedoch im Ordner FTDATA\ FTNoiseThesaurusBak gespeichert, und Sie können sie später beim Aktualisieren oder Erstellen der entsprechenden SQL Server 2014-Stopplisten verwenden.
Nach dem Upgrade von SQL Server 2005:
Wenn Sie in Ihrer Installation von SQL Server 2005 keine Rauschwortdateien hinzugefügt, geändert oder gelöscht haben, sollte die Systemstoppliste Ihren Anforderungen entsprechen.
Wenn Ihre Rauschwortdateien in SQL Server 2005 geändert wurden, gehen diese Änderungen während des Upgrades verloren. Um diese Updates erneut zu erstellen, müssen Sie diese Änderungen in der entsprechenden SQL Server 2008-Stoppliste manuell neu erstellen. Weitere Informationen finden Sie unter ALTER FULLTEXT STOPLIST (Transact-SQL).
Wenn Sie keine Stoppwörter auf Ihre Volltextindizes anwenden möchten (z. B. wenn Sie Ihre Rauschwortdateien in Ihrer SQL Server 2005-Installation gelöscht oder gelöscht haben), müssen Sie die Stoppliste für jeden aktualisierten Volltextindex deaktivieren. Führen Sie die folgende Transact-SQL-Anweisung aus (ersetzen Sie die Datenbank durch den Namen der aktualisierten Datenbank und tabelle durch den Namen der Tabelle):
Use database; ALTER FULLTEXT INDEX ON table SET STOPLIST OFF; GO
Die STOPLIST OFF-Klausel entfernt die Stoppwortfilterung und löst eine Auffüllung der Tabelle aus, ohne Wörter zu filtern, die als Füllwörter betrachtet werden.
Sichern und Importieren von Volltextkatalogen
Für während des Upgrades neu erstellte oder zurückgesetzte Volltextkataloge (oder für neue Volltextkataloge) ist der Volltextkatalog ein logisches Konzept und nicht in einer Dateigruppe enthalten. Zum Sichern eines Volltextkatalogs in SQL Server 2014 müssen Sie daher jede Dateigruppe identifizieren, die einen Volltextindex des Katalogs enthält, und sie einzeln sichern. Weitere Informationen finden Sie unter Sichern und Wiederherstellen von Volltextkatalogen und Indizes.
Für Volltextkataloge, die aus SQL Server 2005 importiert wurden, ist der Volltextkatalog weiterhin eine Datenbankdatei in einer eigenen Dateigruppe. Der SQL Server 2005-Sicherungsprozess für Volltextkataloge gilt weiterhin, mit der Ausnahme, dass der MSFTESQL-Dienst in SQL Server 2014 nicht vorhanden ist. Informationen zum SQL Server 2005-Prozess finden Sie unter Sichern und Wiederherstellen Full-Text Kataloge in SQL Server 2005-Onlinedokumentation.
Migrieren von Volltextindizes beim Aktualisieren einer Datenbank auf SQL Server 2014
Datenbankdateien und Volltextkataloge aus einer früheren Version von SQL Server können mithilfe des Anfügens, Wiederherstellens oder des Assistenten zum Kopieren von Datenbanken auf einen vorhandenen SQL Server 2014-Server instance aktualisiert werden. SQL Server 2005-Volltextindizes werden entweder importiert, zurückgesetzt oder neu erstellt. Die Servereigenschaft upgrade_option steuert, welche Volltextupgrade-Option die Serverinstanz während dieser Datenbankupgrades verwendet.
Nachdem Sie eine SQL Server 2005-Datenbank an SQL Server 2014 angefügt, wiederhergestellt oder kopiert haben, ist die Datenbank sofort verfügbar und wird dann automatisch aktualisiert. Je nach Menge der indizierten Daten kann der Importvorgang mehrere Stunden dauern; die Neuerstellung sogar bis zu zehnmal länger. Wenn die Upgradeoption auf "Importieren" festgelegt und kein Volltextkatalog verfügbar ist, werden die zugehörigen Volltextindizes neu erstellt.
So ändern Sie das Verhalten des Volltextupgrades für eine Serverinstanz
Transact-SQL: Verwenden Sie die upgrade_option Aktion von sp_fulltext_service
SQL Server Management Studio: Verwenden Sie die Volltextupgradeoption des Dialogfelds Servereigenschaften. Weitere Informationen finden Sie unter Verwalten und Überwachen der Volltextsuche auf einer Serverinstanz.
Überlegungen zum Wiederherstellen eines SQL Server 2005-Volltextkatalogs in SQL Server 2014
Eine Methode zum Aktualisieren von Volltextdaten aus einer SQL Server 2005-Datenbank auf SQL Server 2014 besteht darin, eine vollständige Datenbanksicherung auf SQL Server 2014 wiederherzustellen.
Beim Importieren eines SQL Server 2005-Volltextkatalogs können Sie die Datenbank und die Katalogdatei sichern und wiederherstellen. Das Verhalten ist identisch mit SQL Server 2005:
Die vollständige Datenbanksicherung enthält den Volltextkatalog. Um auf den Volltextkatalog zu verweisen, verwenden Sie dessen SQL Server 2005-Dateinamen, sysft_+Katalogname.
Wenn der Volltextkatalog offline ist, kann die Sicherung nicht ausgeführt werden.
Weitere Informationen zum Sichern und Wiederherstellen SQL Server Volltextkatalogen von 2005 finden Sie unter Sichern und Wiederherstellen Full-Text Kataloge und Dateisicherung und -wiederherstellung und Full-Text Katalogein SQL Server 2005-Onlinedokumentation.
Wenn die Datenbank am SQL Server 2014 wiederhergestellt wird, wird eine neue Datenbankdatei für den Volltextkatalog erstellt. Der Standardname dieser Datei lautet ftrow_catalog-name.ndf. Wenn Sie z. B. katalogname ist, lautet cat1
ftrow_cat1.ndf
der Standardname der SQL Server 2014-Datenbankdatei . Wenn der Standardname im Zielverzeichnis jedoch bereits verwendet wird, erhält die neue Datenbankdatei den Namen ftrow_
catalog-name{
GUID}.ndf
, wobei GUID für den eindeutigen Bezeichner (Globally Unique Identifier, GUID) der neuen Datei steht.
Nach dem Importieren der Kataloge werden die Dateien sys.database_files und sys.master_fileaktualisiert, um die Katalogeinträge zu entfernen, und die Spalte path in der Datei sys.fulltext_catalogs wird auf NULL festgelegt.
So sichern Sie eine Datenbank
Transaktionsprotokollsicherungen (SQL Server) (nur vollständiges Wiederherstellungsmodell)
So stellen Sie eine Datenbanksicherung wieder her
Vollständige Datenbankwiederherstellungen (einfaches Wiederherstellungsmodell)
Vollständige Datenbankwiederherstellungen (vollständiges Wiederherstellungsmodell)
Beispiel
Im folgenden Beispiel wird die MOVE-Klausel in der RESTORE-Anweisung verwendet, um eine SQL Server 2005-Datenbank mit dem Namen ftdb1
wiederherzustellen. Die SQL Server 2005-Datenbank-, Protokoll- und Katalogdateien werden wie folgt an neue Speicherorte auf dem SQL Server 2014-Server instance verschoben:
Die Datenbankdatei
ftdb1.mdf
wird an den SpeicherortC:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf
verschoben.Die Protokolldatei
ftdb1_log.ldf
wird in ein Protokollverzeichnis auf Ihrem Protokolllaufwerk verschoben: Protokolllaufwerk:\
Protokollverzeichnis\ftdb1_log.ldf
.Die Katalogdateien, die dem Katalog
sysft_cat90
entsprechen, werden inC:\temp
verschoben. Nachdem die Volltextindizes importiert wurden, werden diese automatisch in eine Datenbankdatei mit dem Namen C:\ftrow_sysft_cat90.ndf eingefügt, und das Verzeichnis C:\temp wird gelöscht.
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';
Anfügen einer SQL Server 2005-Datenbank an SQL Server 2014
In SQL Server 2008 und höheren Versionen ist ein Volltextkatalog ein logisches Konzept, das sich auf eine Gruppe von Volltextindizes bezieht. Ein Volltextkatalog ist ein virtuelles Objekt und gehört keiner Dateigruppe an. Wenn Sie jedoch eine SQL Server 2005-Datenbank, die Volltextkatalogdateien enthält, an einen SQL Server 2014-Server instance anfügen, werden die Katalogdateien von ihrem vorherigen Speicherort aus zusammen mit den anderen Datenbankdateien angefügt, die identisch mit SQL Server 2005 sind.
Der Zustand jedes angefügten Volltextkatalogs in SQL Server 2014 entspricht dem Zustand, als die Datenbank von SQL Server 2005 getrennt wurde. Wenn die Volltextindexauffüllung durch den Trennvorgang angehalten wurde, wird die Auffüllung am SQL Server 2014 fortgesetzt, und der Volltextindex wird für die Volltextsuche verfügbar.
Wenn SQL Server 2014 keine Volltextkatalogdatei finden kann oder die Volltextdatei während des Anfügungsvorgangs ohne Angabe eines neuen Speicherorts verschoben wurde, hängt das Verhalten von der ausgewählten Volltextupgradeoption ab. Wenn die Volltextupgrade-Option Importieren oder Neu erstellenlautet, wird der angefügte Volltextkatalog neu erstellt. Wenn die Volltextupgrade-Option Zurücksetzen lautet, wird der angefügte Volltextkatalog zurückgesetzt.
Weitere Informationen zum Trennen und Anfügen einer Datenbank finden Sie unter Trennen und Anfügen von Datenbanken (SQL Server),CREATE DATABASE (SQL Server Transact-SQL),sp_attach_db und sp_detach_db (Transact-SQL).
Weitere Informationen
Erste Schritte mit der Volltextsuche
Konfigurieren und Verwalten von Wörtertrennungen und Wortstammerkennungen für die Suche
Konfigurieren und Verwalten von Filtern für die Suche