Uppgradera Full-Text Search (SQL Server-sökning)

Gäller för:SQL Server

SQL Server uppgraderar fulltextsökning under installationen, eller när du kopplar, återställer eller kopierar databasfiler och fulltextkataloger från SQL Server 2005 (9.x) och tidigare versioner.

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. För mer information, se Konfigurera och hantera ordbrytare och röstare samt Konfigurera och hantera filter.

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.

Tjänsten FDHOST Launcher (MSSQLFDLauncher) vidarebefordrar information om tjänstkontot till värdprocesserna för filterdemonen för en viss instans av databasmotorn. För information om hur du sätter tjänstekontot, se Sätt tjänstekontot för fulltext-Filter Daemon-launchern.

SQL Server 2005-uppgraderingskompatibilitet

En fulltextkatalog är 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 om du uppgraderar från SQL Server 2005 (9.x) skapas en ny filgrupp på samma disk för alla fulltextkataloger som innehåller datafiler.

Den här proceduren 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 tillåter användargränssnittet dig att välja ett av följande fulltextuppgraderingsalternativ. Dessa alternativ finns endast för SQL Server 2005 (9.x)-databaser.

Import

Fulltextkataloger importeras. Normalt är import betydligt snabbare än återuppbyggnad. Till exempel, med bara en CPU-kärna körs import ungefär tio gånger snabbare än rebuild. 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

Rebuild kan köras i multitrådat läge, och om fler än 10 CPU-kärnor finns tillgängliga kan rebuild gå snabbare än import om du låter rebuild använda alla kärnor.

Om en fulltextkatalog inte är tillgänglig återskapas de associerade fulltextindexen.

För information om effekten av att importera ett fulltextindex, se Överväganden för att välja ett fulltextuppgraderingsalternativ senare i denna artikel.

Rebuild

Fulltextkataloger byggs om med hjälp av den aktuella versionens ordbrytare. 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 fulltextkatalogfiler 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

När du väljer uppgraderingsalternativet, överväg följande:

  • Behöver du konsekvens i frågeresultat?

    Database Engine installerar nya ordbrytare för användning av Full-Text och Semantic Search. Ordbrytarna används både vid indexeringstid och vid frågetid. Om du inte återskapar fulltextkatalogerna kan sökresultaten vara inkonsekventa. Om du gör en fulltextfråga som letar efter en fras som bryts olika av ordbrytaren i en tidigare version av Database Engine och den nuvarande ordbrytaren, kanske ett dokument eller rad som innehåller frasen inte kan 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 Bygg om för att göra detta, eller så kan du bygga om manuellt efter att ha valt 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 bör du använda alternativet Återuppbyggnad .

    Not

    För fulltextindex bör kolumnen som fungerar som fulltextnyckel vara en heltalsdatatyp. För mer information, se Förbättra prestandan hos fulltextindex.

  • 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ällning lämpligt.

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

Om en fulltextkatalog importeras när du uppgraderar en SQL Server 2005 (9.x)-databas kan det uppstå avvikelser mellan frågan och fulltextindexets innehåll på grund av skillnader i beteendet hos 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 med ALTER FULLTEXT CATALOG:

    ALTER FULLTEXT CATALOG <catalog_name> REBUILD;
    
  • Utfärda ett FULL POPULATION på fulltextindexet med ALTER FULLTEXT INDEX:

    ALTER FULLTEXT INDEX ON <table_name> START FULL POPULATION;
    

För mer information om ordbrytare, se Konfigurera och hantera ordbrytare och röstbrytare.

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.

  • Om du inte vill använda några stoppord för dina fulltextindex (till exempel om du har tagit bort eller raderat brusordsfilerna i installationen av SQL Server 2005 (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];
    GO
    
    ALTER FULLTEXT INDEX ON [table]
    SET STOPLIST OFF;
    GO
    

    Klausulen STOPLIST OFF tar bort stoppordsfiltrering och utlöser en population av tabellen utan att filtrera några ord som anses vara brus.

Säkerhetskopior och importerade fulltextkataloger

För fulltextkataloger som byggs om eller återställs under uppgradering (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. Mer information finns i Säkerhetskopiera och återställa kataloger och index i fulltext.

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. Serveregenskapen upgrade_option anger vilket uppgraderingsalternativ i fulltext som serverinstansen använder under dessa databasuppgraderingar.

Efter att du har kopplat, återställt eller kopierat någon SQL Server 2005 (9.x)-databas till en nyare instans 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 10 gånger längre tid. När uppgraderingsalternativet är inställt på import återskapas de associerade fulltextindexen om en fulltextkatalog inte är tillgänglig.

Ändra uppgraderingsbeteendet i fulltext på en serverinstans

Överväganden för att återställa en SQL Server 2005-katalog (9.x) i fulltext

En metod för att uppgradera fulltextdata från en SQL Server 2005 (9.x)-databas är att återställa en fullständig databasbackup 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äkerhetskopiera och återställa fulltextkataloger och index samtSäkerhetskopiering och återställning av filer och Full-Text kataloger i 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. Till exempel, om ditt katalognamn är cat1, skulle standardnamnet på SQL Server-databasfilen vara ftrow_cat1.ndf. Men om standardnamnet redan används i målkatalogen, skulle den nya databasfilen heta ftrow_katalognamnet{GUID,}.ndf där GUID är den globalt unika identifieraren för den nya filen.

När katalogerna har importerats uppdateras både sys.database_files och sys.master_files för att ta bort katalogposterna, och den path kolumnen i sys.fulltext_catalogs ställs in på NULL.

Göra en säkerhetskopia av en databas

Återställa en databassäkerhetskopia

Exempel

Följande exempel använder klausulen MOVE i satsen RESTORE för att återställa en SQL Server 2005 (9.x)-databas 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. Efter att fulltextindexen har importerats placeras de automatiskt i en databasfil, C:\ftrow_sysft_cat90.ndf, och C:\temp kommer att raderas.

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

Bifoga 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 katalogfil i fulltext, 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.

För mer information om att koppla bort och koppla en databas, se Database detach and attach, CREATE DATABASE, sp_attach_db och sp_detach_db.