Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op:SQL Server
SQL Server werkt zoekopdrachten in volledige tekst bij tijdens de installatie of wanneer u databasebestanden en volledige-tekstcatalogussen bijvoegt, herstelt of kopieert vanuit SQL Server 2005 (9.x) en eerdere versies.
Een serverexemplaar upgraden
Voor een in-place upgrade wordt een exemplaar van SQL Server naast de oude versie van SQL Server ingesteld en worden gegevens gemigreerd. Als de oude versie van SQL Server zoeken in volledige tekst had geïnstalleerd, wordt automatisch een nieuwe versie van zoeken in volledige tekst geïnstalleerd. Naast elkaar installeren betekent dat elk van de volgende onderdelen bestaat op het exemplaarniveau van SQL Server.
Woordonderbrekers, stemmers en filters
Elk exemplaar gebruikt nu een eigen set woordonderbrekers, stemmers en filters, in plaats van afhankelijk te zijn van de versie van het besturingssysteem voor deze onderdelen. Deze onderdelen zijn ook eenvoudiger te registreren en te configureren op exemplaarniveau. Voor meer informatie, zie Configuratie en beheer woordbrekers en stemmers en Configureer en beheer filters.
Filter-daemonhost
De daemonhosts voor volledig tekstfilters zijn processen die veilig uitbreidbare externe onderdelen laden en aandrijven die worden gebruikt voor index- en query's, zoals woordonderbrekers, stemmers en filters, zonder de integriteit van de Full-Text Engine in gevaar te brengen. Een serverexemplaar gebruikt een meerdraadig proces voor alle meerdraadige filters en een eendraadig proces voor alle eendraadige filters.
De FDHOST Launcher-service (MSSQLFDLauncher) verspreidt de service-accountinformatie naar de filter-daemonhostprocessen van een specifieke instantie van de Database Engine. Voor informatie over het instellen van het serviceaccount, zie Het serviceaccount instellen voor de full-text Filter Daemon Launcher.
Compatibiliteit met SQL Server 2005-upgrades
Een catalogus met volledige tekst is een logisch of virtueel object dat een groep volledige-tekstindexen bevat. Daarom wordt een nieuwe catalogus met volledige tekst niet behandeld als een databasebestand met een fysiek pad. Als je echter upgrade van SQL Server 2005 (9.x), wordt er op dezelfde schijf een nieuwe bestandsgroep aangemaakt voor elke full-text catalogus die databestanden bevat.
Met deze procedure blijft het I/O-gedrag van de oude schijf behouden na de upgrade. Elke volledige-tekstindex uit die catalogus wordt in de nieuwe bestandsgroep geplaatst als het hoofdpad bestaat. Als het oude pad naar de volledige tekstcatalogus ongeldig is, behoudt de upgrade de volledige-tekstindex in dezelfde bestandsgroep als de basistabel of, voor een gepartitioneerde tabel, in de primaire bestandsgroep.
Upgradeopties voor volledige tekst
Wanneer je een SQL Server-instantie upgradet, kun je in de gebruikersinterface een van de volgende full-text upgrade-opties kiezen. Deze opties zijn alleen beschikbaar voor SQL Server 2005 (9.x) databases.
Import
Catalogussen met volledige tekst worden geïmporteerd. Importeren is doorgaans aanzienlijk sneller dan herbouwen. Bijvoorbeeld, met slechts één CPU-core draait import ongeveer tien keer sneller dan rebuild. In een geïmporteerde catalogus met volledige tekst worden echter geen nieuwe woordonderbrekers gebruikt die zijn geïnstalleerd met de nieuwste versie van SQL Server. Om consistentie in queryresultaten te garanderen, moeten catalogussen met volledige tekst opnieuw worden opgebouwd.
Notitie
Rebuild kan in multithreaded modus draaien, en als er meer dan 10 CPU-cores beschikbaar zijn, kan rebuild sneller lopen dan import als je rebuild alle cores laat gebruiken.
Als er geen catalogus met volledige tekst beschikbaar is, worden de bijbehorende indexen voor volledige tekst opnieuw opgebouwd.
Voor informatie over het effect van het importeren van een full-text index, zie Overwegingen voor het kiezen van een full-text upgrade-optie later in dit artikel.
Rebuild
Volledige tekstcatalogi worden opnieuw opgebouwd met behulp van de woordbrekers van de huidige versie. Het opnieuw opbouwen van indexen kan enige tijd duren en er kan een aanzienlijke hoeveelheid CPU en geheugen nodig zijn na de upgrade.
Opnieuw instellen
Catalogussen met volledige tekst worden opnieuw ingesteld. Wanneer je upgrade van SQL Server 2005 (9.x), worden full-text catalogusbestanden verwijderd, maar de metadata voor full-text catalogi en full-text indexen blijft behouden. Nadat de upgrade is uitgevoerd, worden alle volledige-tekstindexen uitgeschakeld voor het bijhouden van wijzigingen en worden verkenningen niet automatisch gestart. De catalogus blijft leeg totdat u handmatig een volledige populatie uitvraagt, nadat de upgrade is voltooid.
Overwegingen voor het kiezen van een optie voor een upgrade in volledige tekst
Wanneer je voor de upgrade-optie kiest, overweeg dan het volgende:
Hebt u consistentie in queryresultaten nodig?
De Database Engine installeert nieuwe woordbrekers voor gebruik door Full-Text en Semantic Search. De woordonderbrekers worden zowel gebruikt bij het indexeren als bij het uitvoeren van query's. Als u de volledige tekstcatalogus niet opnieuw bouwt, zijn uw zoekresultaten mogelijk inconsistent. Als je een full-text query uitvoert die zoekt naar een zin die anders wordt gebroken door de woordbreker in een eerdere versie van de Database Engine en de huidige woordbreker, kan het zijn dat een document of rij met de frase niet wordt opgehaald. Dit komt doordat de geïndexeerde woordgroepen zijn verbroken met andere logica dan de query. De oplossing is om de volledige tekstcatalogussen opnieuw te vullen (opnieuw te bouwen) met de nieuwe woordonderbrekers, zodat het gedrag van indextijd en querytijd identiek is. Je kunt hiervoor de optie Herbouwen kiezen, of je kunt handmatig opnieuw opbouwen nadat je de optie Importeren hebt gekozen.
Zijn er volledige-tekstindexen gebouwd op kolommen met volledige tekstsleutels?
Herbouwen voert interne optimalisaties uit die in sommige gevallen de queryprestaties van de geüpgradede full-text index verbeteren. Als u een volledige-tekstcatalogus hebt die volledige-tekstindexen bevat waarvoor de kolom met de volledige tekstsleutel van de basistabel een gegevenstype geheel getal is, zorgt herbouwen voor ideale prestaties van query's met volledige tekst na de upgrade. In dat geval moet je de optie Rebuild gebruiken.
Notitie
Voor full-text indexen moet de kolom die als full-text key dient een geheel datatype zijn. Voor meer informatie, zie Verbeter de prestaties van full-text indexes.
Wat is de prioriteit voor het online krijgen van uw serverinstantie?
Tijdens het importeren of opnieuw opbouwen bij een upgrade worden veel CPU-resources verbruikt, wat de upgrade en het online brengen van de rest van de serverinstantie vertraagt. Als het van belang is om de serverinstantie zo snel mogelijk online te krijgen en als u bereid bent om na de upgrade een handmatige populatie uit te voeren, dan is Reset geschikt.
Consistente queryresultaten garanderen na het importeren van een volledige-tekstindex
Als een full-text catalogus wordt geïmporteerd bij het upgraden van een SQL Server 2005 (9.x) database, kunnen er mismatches ontstaan tussen de zoekopdracht en de full-text indexinhoud door verschillen in het gedrag van de oude en nieuwe woordbrekers. Kies in dit geval een van de volgende opties om een totale overeenkomst tussen query's en de inhoud van de volledige tekstindex te garanderen:
Bouw de volledige tekstcatalogus met de volledige-tekstindex opnieuw op met ALTER FULLTEXT CATALOG:
ALTER FULLTEXT CATALOG <catalog_name> REBUILD;Geef een
FULL POPULATIONop de full-textindex met ALTER FULLTEXT INDEX:ALTER FULLTEXT INDEX ON <table_name> START FULL POPULATION;
Voor meer informatie over woordbrekers, zie Woordbrekers en stemmers configureren en beheren.
Noise-Word-bestanden upgraden naar stoplijsten
Wanneer een database wordt bijgewerkt vanuit SQL Server 2005 (9.x), worden de noise-word-bestanden niet meer gebruikt. De oude noise-word-bestanden worden echter opgeslagen in de map FTDATA\FTNoiseThesaurusBak en u kunt ze later gebruiken bij het bijwerken of compileren van de bijbehorende SQL Server-stoplijsten.
Na een upgrade van SQL Server 2005 (9.x):
Als u geen noise-Word-bestanden hebt toegevoegd, gewijzigd of verwijderd in uw installatie van SQL Server 2005 (9.x), moet de systeemstoplijst aan uw behoeften voldoen.
Als uw noise-word-bestanden zijn gewijzigd in SQL Server 2005 (9.x), gaan deze wijzigingen verloren tijdens de upgrade. Als u deze updates opnieuw wilt maken, moet u deze wijzigingen handmatig opnieuw maken in de bijbehorende stoplijst. Zie ALTER FULLTEXT STOPLIST voor meer informatie.
Als u geen stopwoorden wilt toepassen op uw volledige-tekstindexen (bijvoorbeeld als u uw noise-word-bestanden in uw INSTALLATIE van SQL Server 2005 (9.x) hebt verwijderd of gewist, moet u de stoplijst uitschakelen voor elke bijgewerkte volledige-tekstindex. Voer de volgende Transact-SQL-instructie uit (vervang database door de naam van de bijgewerkte database en tabel door de naam van de tabel):
USE [database]; GO ALTER FULLTEXT INDEX ON [table] SET STOPLIST OFF; GODe
STOPLIST OFFclausule verwijdert stopwoordfiltering en activeert een populatie van de tabel, zonder woorden die als ruis worden beschouwd te filteren.
Back-up maken van en geïmporteerde catalogussen met volledige tekst
Voor full-text catalogi die worden herbouwd of gereset tijdens een upgrade (en voor nieuwe full-text catalogi), is de full-text catalogus een logisch concept en bevindt zich niet in een bestandsgroep. Als u een back-up wilt maken van een catalogus met volledige tekst, moet u daarom elke bestandsgroep identificeren die een volledige-tekstindex van de catalogus bevat en een voor één back-up van de catalogus maken. Zie Back-ups maken en herstellen van catalogussen en indexen in volledige tekst voor meer informatie.
Voor catalogi met volledige tekst die zijn geïmporteerd uit SQL Server 2005 (9.x), is de volledige tekstcatalogus nog steeds een databasebestand in een eigen bestandsgroep. Het back-upproces van SQL Server 2005 (9.x) voor volledige-tekstcatalogussen is nog steeds van toepassing, behalve dat de MSFTESQL-service niet bestaat in SQL Server. Voor informatie over het SQL Server 2005-proces (9.x) zie Back-up maken en herstellen van Full-Text catalogi in SQL Server 2005 Books Online.
Volledige-tekstindexen migreren bij het upgraden van een database
Databasebestanden en volledige-tekstcatalogussen van een eerdere versie van SQL Server kunnen worden bijgewerkt naar een bestaand exemplaar door de wizard Database bijvoegen, herstellen of kopiëren te gebruiken. SQL Server 2005 (9.x) volledige-tekstindexen, indien aanwezig, worden geïmporteerd, opnieuw ingesteld of opnieuw opgebouwd. De upgrade_option servereigenschap geeft aan welke optie voor volledige tekstupgrade de serverinstantie gebruikt tijdens deze database-upgrades.
Nadat je een SQL Server 2005 (9.x) database hebt gekoppeld, hersteld of gekopieerd naar een nieuwere instantie, wordt de database direct beschikbaar en wordt deze automatisch geüpgraded. Afhankelijk van de hoeveelheid gegevens die wordt geïndexeerd, kan het importeren enkele uren duren en kan het opnieuw opbouwen tot 10 keer langer duren. Wanneer de upgradeoptie is ingesteld om te importeren, worden de bijbehorende indexen voor volledige tekst opnieuw opgebouwd als er geen volledige tekstcatalogus beschikbaar is.
Het upgradegedrag voor volledige tekst op een serverexemplaren wijzigen
Transact-SQL: de
upgrade_optionactie van sp_fulltext_service gebruikenSQL Server Management Studio: gebruik de Full-Text upgradeoptie van het dialoogvenster Servereigenschappen . Voor meer informatie, zie Beheren en controleren Full-Text Zoeken naar een serverexemplaar.
Overwegingen voor het herstellen van een volledige tekstcatalogus van SQL Server 2005 (9.x)
Een methode om full-text data uit een SQL Server 2005 (9.x) database te upgraden is het herstellen van een volledige database-back-up naar een nieuwere instantie van SQL Server.
Tijdens het importeren van een volledige tekstcatalogus van SQL Server 2005 (9.x), kunt u een back-up maken van de database en het catalogusbestand en deze herstellen. Het gedrag is hetzelfde als in SQL Server 2005 (9.x):
De volledige databaseback-up bevat de volledige tekstcatalogus. Als u naar de volledige tekstcatalogus wilt verwijzen, gebruikt u de naam van het SQL Server 2005-bestand (9.x), sysft_+catalogusnaam.
Als de catalogus met volledige tekst offline is, mislukt de back-up.
Zie Back-up maken en herstellen van fulltextcatalogi en indexen en Bestandsback-up en herstel en fulltextcatalogi voor meer informatie over het maken van back-ups en het herstellen van SQL Server 2005 (9.x) volledige tekstcatalogussen in SQL Server 2005 (9.x) Books Online.
Wanneer de database wordt hersteld op een nieuwer exemplaar van SQL Server, wordt er een nieuw databasebestand gemaakt voor de catalogus met volledige tekst. De standaardnaam van dit bestand is ftrow_catalogusnaam.ndf. Als je catalogusnaam bijvoorbeeld iscat1, zou de standaardnaam van het SQL Server-databasebestand zijn ftrow_cat1.ndf. Maar als de standaardnaam al wordt gebruikt in de doelmap, wordt het nieuwe databasebestand ftrow_{ genoemd}.ndf, waarbij GUID de wereldwijd unieke identificatie van het nieuwe bestand is.
Nadat de catalogi zijn geïmporteerd, worden sys.database_files en sys.master_files bijgewerkt om de catalogusvermeldingen te verwijderen en is de path-kolom in sys.fulltext_catalogs ingesteld op NULL.
Een back-up maken van een database
- Volledige databaseback-ups
- Back-ups van transactielogboeken (alleen volledig herstelmodel)
Een back-up van een database herstellen
- databaseherstelbewerkingen voltooien (Simple Recovery Model)
- databaseherstelbewerkingen (volledig herstelmodel) voltooien
Voorbeeld
Het volgende voorbeeld gebruikt de MOVE clausule in de RESTORE instructie om een SQL Server 2005 (9.x) database met de naam ftdb1te herstellen. De SQL Server 2005-database-, logboek- en catalogusbestanden worden verplaatst naar nieuwe locaties op het SQL Server-serverexemplaar, als volgt:
Het databasebestand,
ftdb1.mdf, wordt verplaatst naarC:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf.Het logboekbestand,
ftdb1_log.ldf, wordt verplaatst naar een logboekmap op uw logboekschijfstation, log_drive:\log_directory\ftdb1_log.ldf.De catalogusbestanden die overeenkomen met de
sysft_cat90catalogus worden verplaatst naarC:\temp. Nadat de full-text indexes zijn geïmporteerd, worden ze automatisch in een databasebestand geplaatst,C:\ftrow_sysft_cat90.ndf, enC:\tempworden ze verwijderd.
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';
Een SQL Server 2005-database koppelen
In SQL Server 2008 (10.0.x) en latere versies is een catalogus met volledige tekst een logisch concept dat verwijst naar een groep indexen in volledige tekst. De catalogus met volledige tekst is een virtueel object dat niet tot een bestandsgroep behoort. Wanneer u echter een SQL Server 2005-database (9.x) koppelt die volledige-tekstcatalogusbestanden bevat aan een nieuwer SQL Server-serverexemplaren, worden de catalogusbestanden gekoppeld vanaf hun vorige locatie, samen met de andere databasebestanden, hetzelfde als in SQL Server 2005 (9.x).
De status van elke gekoppelde volledige-tekstcatalogus op SQL Server is hetzelfde als wanneer de database is losgekoppeld van SQL Server 2005 (9.x). Als een volledige-tekstindexpopulatie is onderbroken door de loskoppelbewerking, wordt de populatie hervat op SQL Server en wordt de volledige-tekstindex beschikbaar voor zoeken in volledige tekst.
Als SQL Server geen catalogusbestand met volledige tekst kan vinden of als het bestand met volledige tekst tijdens de bijvoegbewerking is verplaatst zonder een nieuwe locatie op te geven, is het gedrag afhankelijk van de geselecteerde optie voor het bijwerken van volledige tekst. Als de optie voor het bijwerken van volledige tekst is Import of Rebuild, wordt de bijgevoegde catalogus met volledige tekst opnieuw opgebouwd. Als de optie voor het bijwerken van volledige tekst is Reset, wordt de bijgevoegde catalogus met volledige tekst opnieuw ingesteld.
Voor meer informatie over het loskoppelen en koppelen van een database, zie Database detach and attach, CREATE DATABASE, sp_attach_db en sp_detach_db.