Dela via


Uppgradera Full-Text sök

gäller för:SQL ServerAzure SQL Database

SQL Server uppgraderar fulltextsökning under installationen, eller när du kopplar, återställer eller kopierar databasfiler och fulltextkataloger från en tidigare version av SQL Server.

Uppgradera en serverinstans

För en uppgradering på plats konfigureras en instans av SQL Server sida vid sida med den gamla versionen av SQL Server och data migreras. Om den gamla versionen av SQL Server hade fulltextsökning installerad installeras automatiskt en ny version av fulltextsökning. Sida vid sida-installation innebär att var och en av följande komponenter finns på instansnivå för SQL Server.

Ordbrytare, stamningsalgoritmer och filter
Varje instans använder nu sin egen uppsättning ordbrytare, stemmers och filter i stället för att förlita sig på operativsystemversionen av dessa komponenter. De här komponenterna är också enklare att registrera och konfigurera på nivån per instans. Mer information finns i Konfigurera och hantera orddelare och stammar för sökning och Konfigurera och hantera filter för sökning.

Filtrera daemonvärd
Daemonvärdarna för fulltextfilter är processer som på ett säkert sätt läser in och driver utbyggbara externa komponenter vilka används för indexering och sökfrågor, som ordbrytare, stamträd och filter, utan att kompromissa med Full-Text-maskinens integritet. En serverinstans använder en flertrådad process för alla flertrådade filter och en enkeltrådad process för alla entrådade filter.

Not

SQL Server 2008 (10.0.x) introducerade ett tjänstkonto för tjänsten FDHOST Launcher (MSSQLFDLauncher). Den här tjänsten distribuerar tjänstkontoinformationen till värdprocesserna för filterdemonen i en specifik instans av SQL Server. Information om hur du anger tjänstkontot finns i Ange tjänstkontot för Daemon Launcher för fulltextfilter.

I SQL Server 2005 (9.x) finns varje fulltextindex i en fulltextkatalog som tillhör en filgrupp, har en fysisk sökväg och behandlas som en databasfil. I SQL Server 2008 (10.0.x) och senare versioner är en fulltextkatalog ett logiskt eller virtuellt objekt som innehåller en grupp fulltextindex. Därför behandlas inte en ny fulltextkatalog som en databasfil med en fysisk sökväg. Men under uppgraderingen av en fulltextkatalog som innehåller datafiler skapas en ny filgrupp på samma disk. Detta underhåller det gamla disk-I/O-beteendet efter uppgraderingen. Vilket som helst fulltextindex från katalogen placeras i den nya filgruppen om rotsökvägen finns. Om den gamla katalogsökvägen i fulltext är ogiltig behåller uppgraderingen fulltextindexet i samma filgrupp som bastabellen eller, för en partitionerad tabell, i den primära filgruppen.

Uppgraderingsalternativ i fulltext

När du uppgraderar en SQL Server-instans kan du med användargränssnittet välja något av följande uppgraderingsalternativ i fulltext.

Importera
Fulltextkataloger importeras. Normalt är import betydligt snabbare än återuppbyggnad. Om du till exempel bara använder en processor körs importen ungefär 10 gånger snabbare än återskapad. En importerad fulltextkatalog använder dock inte de nya ordbrytarna som installerats med den senaste versionen av SQL Server. För att säkerställa konsekvens i frågeresultat måste fulltextkataloger återskapas.

Not

Återskapa kan köras i flertrådat läge, och om fler än 10 processorer är tillgängliga kan återskapande köras snabbare än import om du tillåter att återskapande använder alla processorer.

Om en fulltextkatalog inte är tillgänglig återskapas de associerade fulltextindexen. Det här alternativet är endast tillgängligt för SQL Server 2005-databaser (9.x).

Information om hur du importerar fulltextindex finns i "Överväganden för att välja ett Full-Text uppgraderingsalternativ" senare i det här avsnittet.

Återskapa
Fulltextkataloger återskapas med hjälp av de nya och förbättrade ordbrytarna. Det kan ta ett tag att återskapa index, och det kan krävas en betydande mängd cpu och minne efter uppgraderingen.

Återställ
Fulltextkataloger har återställts. När du uppgraderar från SQL Server 2005 (9.x) tas katalogfiler i fulltext bort, men metadata för fulltextkataloger och fulltextindex behålls. Efter uppgraderingen inaktiveras alla fulltextindex för ändringsspårning och crawlningar startas inte automatiskt. Katalogen förblir tom tills du manuellt utfärdar en fullständig population när uppgraderingen har slutförts.

Att tänka på när du väljer ett uppgraderingsalternativ i fulltext

Tänk på följande när du väljer uppgraderingsalternativet för uppgraderingen:

  • Behöver du konsekvens i frågeresultat?

    SQL Server installerar nya ordbrytare för användning av Full-Text och semantisk sökning. Ordbrytarna används både vid indexeringstid och vid frågetid. Om du inte återskapar fulltextkatalogerna kan sökresultaten vara inkonsekventa. Om du utfärdar en fulltextfråga som söker efter en fras som är bruten på ett annat sätt av ordbrytaren i en tidigare version av SQL Server och den aktuella ordbrytaren kanske inte ett dokument eller en rad som innehåller frasen hämtas. Det beror på att de indexerade fraserna bröts med annan logik än frågan använder. Lösningen är att fylla i (återskapa) fulltextkatalogerna med de nya ordbrytarna så att indextids- och frågetidsbeteendet är identiska. Du kan välja alternativet Återskapa för att åstadkomma detta, eller så kan du återskapa manuellt när du har valt alternativet Importera.

  • Byggdes alla fulltextindex på heltalskolumner med fulltextnycklar?

    Ombyggnad utför interna optimeringar som förbättrar sökprestanda för det uppgraderade fulltextindexet i vissa fall. Specifikt, om du har fulltextkataloger som innehåller fulltextindex för vilka fulltextnyckelkolumnen i grundtabellen är en heltalsdatatyp, ger återskapande ideal prestanda för fulltextfrågor efter uppgraderingen. I det här fallet rekommenderar vi starkt att du använder Återskapa-funktionen.

    Observera

    För fulltextindex rekommenderar vi att kolumnen som fungerar som fulltextnyckel är en heltalsdatatyp. Mer information finns i Förbättra prestanda för Full-Text index.

  • Vad är prioriteten för att få serverinstansen online?

    Import eller återskapande under uppgraderingen kräver mycket CPU-resurser, vilket fördröjer uppgraderingen av resten av serverinstansen och online. Om det är viktigt att få igång serverinstansen så snart som möjligt och om du är villig att köra en manuell population efter uppgraderingen är Återställ lämpligt.

Säkerställa konsekventa frågeresultat när du har importerat ett fulltextindex

Om en fulltextkatalog importerades när en SQL Server 2005-databas (9.x) uppgraderades, kan det uppstå felmatchningar mellan frågan och innehållet i fulltextindexet på grund av skillnader i beteendet för de gamla och nya ordbrytarna. I det här fallet väljer du något av följande alternativ för att garantera en total matchning mellan frågor och innehållet i fulltextindexet:

  • Återskapa den fulltextkatalog som innehåller fulltextindexet (ALTER FULLTEXT CATALOGcatalog_name REBUILD)

  • Utfärda en FULLSTÄNDIG POPULATION för fulltextindexet (ÄNDRA FULLTEXTINDEXtable_name STARTA FULL POPULATION).

Mer information om ordbrytare finns i Konfigurera och hantera Word Breakers och Stemmers for Search.

Uppgradera brusordsfiler till stopplistor

När en databas uppgraderas från SQL Server 2005 (9.x) används inte längre brusordsfilerna. De gamla brusordsfilerna lagras dock i mappen FTDATA\ FTNoiseThesaurusBak och du kan använda dem senare när du uppdaterar eller skapar motsvarande SQL Server-stopplistor.

Efter uppgradering från SQL Server 2005 (9.x):

  • Om du aldrig har lagt till, ändrat eller tagit bort brusordsfiler i installationen av SQL Server 2005 (9.x) bör systemstopplistan uppfylla dina behov.

  • Om brusordsfilerna ändrades i SQL Server 2005 (9.x) går dessa ändringar förlorade under uppgraderingen. Om du vill återskapa uppdateringarna måste du återskapa ändringarna manuellt i motsvarande stopplista. Mer information finns i ALTER FULLTEXT STOPLIST (Transact-SQL).

  • Om du inte vill använda några stoppord för dina fulltextindex (till exempel om du har tagit bort eller raderat brusordsfilerna i sql Server 2005-installationen (9.x) måste du inaktivera stopplistan för varje uppgraderat fulltextindex. Kör följande Transact-SQL-instruktion (ersätt databas med namnet på den uppgraderade databasen och tabell med namnet på -tabellen):

    Use database;   
    ALTER FULLTEXT INDEX ON table  
       SET STOPLIST OFF;  
    GO  
    

    STOPLIST OFF-satsen tar bort stoppordsfiltrering och utlöser en population av tabellen, utan att filtrera bort brusord.

Säkerhetskopior och importerade fulltextkataloger

För fulltextkataloger som återskapas eller återställs under uppgraderingen (och för nya fulltextkataloger) är fulltextkatalogen ett logiskt begrepp och finns inte i en filgrupp. För att säkerhetskopiera en fulltextkatalog måste du därför identifiera varje filgrupp som innehåller ett fulltextindex för katalogen och säkerhetskopiera var och en av dem, en i taget. För mer information, se Säkerhetskopiera och återställa Full-Text kataloger och index.

För fulltextkataloger som har importerats från SQL Server 2005 (9.x) är fulltextkatalogen fortfarande en databasfil i en egen filgrupp. Säkerhetskopieringsprocessen för SQL Server 2005 (9.x) för fulltextkataloger gäller fortfarande förutom att MSFTESQL-tjänsten inte finns i SQL Server. Information om SQL Server 2005-processen (9.x) finns i Säkerhetskopiering och återställning av Full-Text kataloger i SQL Server 2005 Books Online.

Migrera fulltextindex när du uppgraderar en databas

Databasfiler och fulltextkataloger från en tidigare version av SQL Server kan uppgraderas till en befintlig instans med hjälp av guiden bifoga, återställa eller kopiera databas. SQL Server 2005 (9.x) fulltextindex, om några, importeras, återställs eller återskapas. Egenskapen upgrade_option server styr vilket fulltextuppgraderingsalternativ som serverinstansen använder under dessa databasuppgraderingar.

När du har bifogat, återställt eller kopierat en SQL Server 2005-databas (9.x) blir databasen tillgänglig omedelbart och uppgraderas sedan automatiskt. Beroende på hur mycket data som indexeras kan det ta flera timmar att importera, och återskapande kan ta upp till tio gånger längre tid. Observera också att när uppgraderingsalternativet är inställt på import återskapas de associerade fulltextindexen om en fulltextkatalog inte är tillgänglig.

Så här ändrar du uppgraderingsbeteendet i fulltext på en serverinstans

Överväganden för att återställa en SQL Server 2005 (9.x) Full-Text Catalog

En metod för att uppgradera fulltextdata från en SQL Server 2005-databas (9.x) är att återställa en fullständig databassäkerhetskopia till en nyare instans av SQL Server.

När du importerar en SQL Server 2005-katalog (9.x) i fulltext kan du säkerhetskopiera och återställa databasen och katalogfilen. Beteendet är detsamma som i SQL Server 2005 (9.x):

  • Den fullständiga databassäkerhetskopian innehåller fulltextkatalogen. Om du vill referera till katalogen med fulltext använder du filnamnet för SQL Server 2005 (9.x), sysft_+katalognamn.

  • Om fulltextkatalogen är offline misslyckas säkerhetskopieringen.

Mer information om hur du säkerhetskopierar och återställer SQL Server 2005(9.x) fulltextkataloger finns i Säkerhetskopiering och återställning av Full-Text kataloger och Säkerhetskopiering och återställning av filer och Full-Text katalogeri SQL Server 2005 (9.x) Books Online.

När databasen återställs på en nyare instans av SQL Server skapas en ny databasfil för fulltextkatalogen. Standardnamnet för den här filen är ftrow_katalognamn.ndf. Om ditt katalognamn är cat1, är standardnamnet för SQL Server-databasfilen ftrow_cat1.ndf. Men om standardnamnet redan används i målkatalogen skulle den nya databasfilen namnges ftrow_katalognamn{GUID}.ndf, där GUID är den globalt unika identifieraren för den nya filen.

När katalogerna har importerats uppdateras sys.database_files och sys.master_files för att ta bort katalogposterna och sökväg kolumn i sys.fulltext_catalogs anges till NULL.

Att säkerhetskopiera en databas

Återställa en databassäkerhetskopia

Exempel

I följande exempel används MOVE-satsen i instruktionen RESTORE för att återställa en SQL Server 2005-databas (9.x) med namnet ftdb1. SQL Server 2005-databas-, logg- och katalogfilerna (9.x) flyttas till nya platser på SQL Server-serverinstansen enligt följande:

  • Databasfilen ftdb1.mdfflyttas till C:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf.

  • Loggfilen ftdb1_log.ldfflyttas till en loggkatalog på loggdiskenheten log_drive:\log_directory\ftdb1_log.ldf.

  • Katalogfilerna som motsvarar sysft_cat90 katalogen flyttas till C:\temp. När fulltextindexen har importerats placeras de automatiskt i en databasfil, C:\ftrow_sysft_cat90.ndf, och C:\temp tas bort.

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';  

Ansluta en SQL Server 2005-databas

I SQL Server 2008 (10.0.x) och senare versioner är en fulltextkatalog ett logiskt begrepp som refererar till en grupp fulltextindex. Fulltextkatalogen är ett virtuellt objekt som inte tillhör någon filgrupp. Men när du kopplar en SQL Server 2005-databas (9.x) som innehåller katalogfiler i fulltext till en nyare SQL Server-serverinstans, kopplas katalogfilerna från den tidigare platsen tillsammans med de andra databasfilerna, på samma sätt som i SQL Server 2005 (9.x).

Tillståndet för varje bifogad fulltextkatalog på SQL Server är detsamma som när databasen kopplades från SQL Server 2005 (9.x). Om en fulltextindexpopulation avbröts av frånkopplingsåtgärden, återupptas populationen på SQL Server och fulltextindexet blir tillgängligt för fulltextsökning.

Om SQL Server inte kan hitta en fulltextkatalogfil eller om fulltextfilen flyttades under anslutningsåtgärden utan att ange en ny plats, beror beteendet på det valda alternativet för fullständig textuppgradering. Om alternativet för fullständig textuppgradering är Importera eller Återskapaåterskapas den bifogade fulltextkatalogen. Om alternativet för fullständig textuppgradering är Återställåterställs den bifogade fulltextkatalogen.

Mer information om hur du kopplar från och kopplar en databas finns i Database Detach and Attach (SQL Server), CREATE DATABASE (SQL Server Transact-SQL), sp_attach_dboch sp_detach_db (Transact-SQL).

Se även

Kom igång med Full-Text Search
Konfigurera och hantera ordbrytare och stammare för sökning
Konfigurera och hantera filter för sökning