Modalità di spostamento, copia e backup catalogo full-text a cartelle e file

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 240867
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
Cataloghi full-text e gli indici non vengono archiviati in un SQL Server database. Cataloghi full-text e gli indici vengono archiviati in file separati che gestisce il servizio Microsoft Search. I file di catalogo full-text non vengono recuperati durante un ripristino di Microsoft SQL Server. Inoltre, non è possibile utilizzare le istruzioni di Transact SQL BACKUP e ripristino per eseguire il backup e ripristinare full-text i file del catalogo. Dopo le operazioni di ripristino o di ripristino, è necessario risincronizzare separatamente i cataloghi full-text. Solo Microsoft Windows NT amministratore del sistema e il servizio Microsoft Search può accedere ai file catalogo full-text.

Sebbene non è possibile utilizzare database di SQL Server per eseguire il backup dei cataloghi full-text, è possibile utilizzare ricerca abilitati per i database con tabelle di grandi dimensioni sono di testo completo di produzione. Se a tale scopo, si potrebbe dover spostare, eseguire il backup o ripristinare questi cataloghi full-text e i database di produzione. Il tempo di esecuzione per un catalogo full-text popolazione o la risincronizzazione può superare la finestra Manutenzione tipica. In questo articolo viene descritto un metodo diverso che è possibile utilizzare per spostare o copiare i cataloghi senza avviare un popolamento completo. Questo metodo consente di evitare un tempo di inattività significativo.

In questo articolo documenti numerosi metodi che è possibile utilizzare per copiare, spostare ed eseguire il backup o ripristinare il catalogo full-text a cartelle e file in alcune limitazioni:
  • Le versioni di SQL Server si utilizza sono uguali.
  • Catalogo full-text a cartelle e file devono essere su un'unità locale.
  • Catalogo full-text a cartelle e file necessario mantenere i nomi di originali e il contenuto della cartella.
  • Il database abilitato full-text identificatore e identificatore della tabella devono essere identiche su entrambi i server quando si sposta o si copiano i cataloghi full-text tra i server.
avviso Queste procedure non sono supportate su istanze di cluster di Failover di SQL Server.

Cataloghi full-text vengono gestiti come un insieme di cartelle e file. I percorsi predefiniti dei cataloghi full-text sono:

Microsoft SQL Server 7.0 :
\Mssql7\FTDATA

Microsoft SQL Server 2000 :
Istanza predefinita: Programmi\microsoft SQL Server\MSSQL\FTDATA
Istanza denominata: Programmi\microsoft SQL Server\MSSQL $ instancename\FTDATA

Ogni catalogo full-text e i relativi file vengono gestiti in una cartella che viene utilizzata la seguente convenzione di denominazione dove dbid è l'identificatore di database associato, e dove ftcatid è l'identificatore del catalogo full-text:

"SQLxxxxx (dbid) yyyyy (ftcatid)"

Ogni ftcatid è univoco nel database associato.

importante Questa sezione, metodo o l'attività sono contenute procedure viene illustrato come modificare il Registro di sistema. Tuttavia, possono causare seri problemi se si modifica il Registro di sistema in modo errato. Pertanto, assicurarsi che questa procedura con attenzione. Per maggiore protezione, è eseguire il backup del Registro di sistema prima di modificarlo. È quindi possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e ripristino del Registro di sistema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
322756Come eseguire il backup e il ripristino del Registro di sistema in Windows

Eseguire il backup un catalogo full-text su un computer autonomo o in un cluster

  1. Arrestare il servizio di ricerca Microsoft in un computer autonomo. Per una configurazione cluster di SQL Server, lasciare in linea la risorsa full-text. Dopo avere arrestato il servizio Microsoft Search, non è possibile eseguire query full-text che utilizzano i predicati CONTAINS o FREETEXT, o il set di righe con valori funzioni CONTAINSTABLE o FREETEXTTABLE a fronte del database. Inoltre, le query di ricerca full-text non funzionano, e viene visualizzato il seguente messaggio di errore:
    Server: Messaggio 7602, livello 16, stato 1, riga 2 il testo completo servizio (Microsoft Search) non disponibile. L'amministratore di sistema avviare questo servizio.
  2. Utilizzare una Microsoft Windows NT file di sistema utilità di backup, come Backup Exec, e quindi backup di cataloghi full-text, cartelle e files.The tabella di sistema per i cataloghi full-text ( sysfulltextcatalogs ) viene eseguito il backup con il database di SQL Server.
  3. Se si deve backup i cataloghi singolarmente il backup le seguenti voci del Registro di sistema:
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder]\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder]\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    [FT_Catalog_Folder] è il catalogo cartella nome "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Per un'istanza denominata di SQL Server, la voce di registro di sistema è \SQLServer$ InstanceName \.
  4. 2. Backup le seguenti voci del Registro di sistema per eseguire il backup tutti i cataloghi: (questo backup tutti i cataloghi full-text nel server.)
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Per un'istanza denominata di SQL Server, la voce di registro di sistema è \SQLServer$ InstanceName \.

Per ripristinare i cataloghi full-text sullo stesso server la stessa unità locale o il percorso

  1. Arrestare il servizio Microsoft Search. Nota Consente di eseguire il passaggio 2 solo se il database è stato eliminato. In caso contrario, procedere al passaggio 3.
  2. Ripristinare o collegare il database in cui è attivato il testo completo. Dopo aver ripristinato il database, assicurarsi che l'ID del database (dbid) sia lo stesso, come quando eseguito il backup.
    Nota Se il database è stato collegato utilizzando il comando sp_attach_db , assicurarsi di eseguire sp_fulltext_database exec il attivare il comando attivare il database di testo completo.
  3. Per determinare il dbid, eseguire il codice riportato di seguito:
    Use dbnamegoselect db_id()
    Nota per ripristinare singoli cataloghi, seguire il passaggio 4. Per ripristinare tutti i cataloghi, vedere passaggio 5.
  4. Ripristinare le voci del Registro di sistema è stato eseguito il backup, sulla base delle precedenti istruzioni backup. Sarà necessario eseguire il backup del Registro di sistema prima di questo passaggio.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder]\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder]\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    [FT_Catalog_Folder] è il catalogo cartella nome "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Per un'istanza denominata di SQL Server, la voce di registro di sistema è \SQLServer$ InstanceName \.
  5. Per ripristinare tutti i cataloghi sul server, è necessario ripristinare le seguenti voci del Registro di sistema. Sarà necessario eseguire il backup del Registro di sistema prima di questo passaggio.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Per un'istanza denominata di SQL Server, la voce di registro di sistema è \SQLServer$ InstanceName \.
  6. Ripristinare i cataloghi di backup nel percorso predefinito backup dal.
  7. Riavviare il servizio Microsoft Search.
  8. Verificare che il nuovo testo completo cataloghi le cartelle e file sono funzionali utilizzando un'istruzione Transact-SQL SELECT e utilizzare un predicato CONTAINS o FREETEXT nella clausola WHERE.

Per spostare o copiare i cataloghi full-text tra le unità locali o i percorsi nello stesso computer che esegue SQL Server

  1. Verificare il nome del catalogo full-text e l'unità locale o il percorso utilizzando sp_help_fulltext_catalogs 'FT_Catalog_Name'. Prendere nota del catalogo full-text a lettera di unità e il percorso completo da utilizzare in un secondo momento.
  2. Arrestare il servizio Microsoft Search. Eseguire il passaggio 3 e 4 solo se il database è stato eliminato o se è stato eliminato il catalogo, sono in caso contrario, procedere al passaggio 5.
  3. Ripristinare o collegare il database in cui è attivato il testo completo. Dopo aver ripristinato il database, assicurarsi che l'ID del database (dbid) sia lo stesso, come quando eseguito il backup.

    Nota Se il database è stato collegato utilizzando il comando sp_attach_db , assicurarsi di eseguire sp_fulltext_database exec il attivare il comando attivare il database di testo completo.

    Per determinare il dbid, eseguire il codice riportato di seguito:
    Use dbnamegoselect db_id()
  4. Ripristinare le seguenti voci del Registro di sistema. Sarà necessario eseguire il backup del Registro di sistema prima di questo passaggio.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder]\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder]\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    [FT_Catalog_Folder] è il catalogo cartella nome "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Per un'istanza denominata di SQL Server, la voce di registro di sistema è \SQLServer$ InstanceName \.
  5. Determinare l'unità locale di nuovo catalogo full-text o il percorso. Copiare i cataloghi full-text nel nuovo percorso.
  6. Consentire aggiornamenti di tabella di sistema utilizzando il sistema memorizzato procedura sp_configure e RECONFIGURE con eseguire l'override e quindi aggiornare il [database_name]. dbo.sysfulltextcatalogs colonna di percorso per la nuova unità o percorso destinazione locale per la cartella predefinita di catalogo full-text, ad esempio d:\FTData.
  7. Utilizzare l'utilità di regfind di Windows NT 4.0 Resource Kit per trovare e sostituire i seguenti HKLM chiavi valori di registro per ogni cartella catalogo full-text (FT_Catalog_Folder) (ad esempio, SQL0000500005):
    \SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder]\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder]\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    Inoltre, assicurarsi di utilizzare le virgolette semplici ("") per racchiudere le chiavi di registro per entrambi il -p e -r parametri. Ad esempio:
    -m \\server_2 -p "<Key Name>" <Old_FT_Catalog_Path_and_Folder> -r <New_FT_Catalog_Path_and_Folder>

    Nota: < Nome > Sostituisci, <Old_FT_Catalog_Path_and_Folder> e <New_FT_Catalog_Path_and_Folder> con i valori appropriati.
    Ad esempio: -m \\server_2 -p "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\sqlserver$SQL2k\SQL0000500005" d:\programme\Microsoft SQL Server\MSSQL $ SQL2K\FTDATA\SQL0000500005 - r d:\programme\Microsoft SQL Server\MSSQL $ SQL2K\FTDATA\New Location\SQL0000500005

    Per ulteriori informazioni sulla sintassi per utilizzare l'utilità regfind , digitare il seguente parametro dal prompt dei comandi di MS-DOS: regfind /?
  8. Riavviare il servizio Microsoft Search.
  9. Verificare che il nuovo testo completo cataloghi le cartelle e file sono funzionali utilizzando un'istruzione Transact-SQL SELECT e utilizzare un predicato CONTAINS o FREETEXT nella clausola WHERE.

Per copiare i cataloghi full-text tra istanze di SQL Server alla stessa unità locale o al percorso

I passaggi seguenti illustrano come spostare o copiare una cartella del catalogo full-text e file da un computer che esegue SQL Server (server_1) a un altro computer su cui è in esecuzione SQL Server (server_2). In questo articolo prevede che SQL Server disponga di ricerca full-text installato e che gli identificatori di database e la tabella stessi esistano su entrambi i server. Per la copia corretta di cataloghi full-text da un'istanza di SQL Server a un altro, il database ID deve essere lo stesso. Di conseguenza, è preferibile disporre server_2 (a cui si sta copiando il catalogo) sia una replica esatta (clone) del server_1.Confirm che il dbids sia server_1 che server_2 sono gli stessi. A tale scopo, eseguire i seguenti comandi su entrambi i server:
Use dbnamegoselect db_id()
per "scambio" dbids per ottenere il dbid corretto su server_2, utilizzare sp_detach_db e sp_attach_db per scollegare e ricollegare i database corretti. Se si dispone ad esempio due database, ad esempio (dbid = 7) TestDB e PerfDB (dbid = 8), scollegare entrambi i database e quindi prima ricollegare il database PerfDB , quindi il database TestDB . Questo scambia il dbids: il dbid per TestDB diventa 8 e il dbid per PerfDB diventa 7. Il dbid più basso nel pool di dbids disponibili sempre è utilizzato per primo.

attenzione A tale scopo, prima di scollegare i database, assicurarsi che entrambi i database non dispongono di tutti i cataloghi full-text e che non siano full-text attivata. Vedere "procedure Correggi" nel “ informazioni ” sezione per la procedura per eliminare i cataloghi full-text e per disattivare il testo completo per un database.
  1. Verificare che i valori di master.dbo.sysdatabases dbid per i database abilitati full-text siano identiche su entrambi i server.
  2. Verificare che il [database_name]. dbo.sysobjects valori ID per le tabelle attivate full-text sono uguali su entrambi i server. Per ulteriori informazioni su come ottenere un valore di ID di tabella, vedere l'argomento "object_id" nella documentazione SQL Server.
  3. Verificare che il nome del catalogo full-text e l'unità locale o il percorso siano identiche su entrambi i server utilizzando sp_help_fulltext_catalogs ' FT_Catalog_Name ' .
  4. Arrestare il servizio di Microsoft Search sia server_1 che server_2.
  5. Mappare una lettera di unità su server_1 all'unità o percorso su server_2 corrispondente.
  6. Copiare la cartella del catalogo full-text e i file che è stato identificato nel passaggio 3 da server_1 per server_2 utilizzando il comando DOS xcopy . Utilizzare il nome di unità o percorso e la cartella completo catalogo full-text il percorso di origine e il nome di unità o percorso e la cartella catalogo full-text associato come percorso di destinazione. Se le cartelle di destinazione non esistono sul server_2, utilizzare il comando xcopy passa /I e/e creare tutte le cartelle di destinazione. Per ripristinare tutti i cataloghi, copiare tutte le cartelle catalogo server_2.
  7. È possibile utilizzare il comando DOS RMDIR /S /Q [FT_Catalog_drive/percorso] su server_1 rimuovere i file di catalogo full-text nel server_1.

    Nota Per ripristinare singoli cataloghi, attenersi alla seguente passaggio 8. Per ripristinare tutti i cataloghi, vedere il passaggio 9.
  8. Ripristinare le voci del Registro di sistema in cui è eseguito il backup in base alle istruzioni precedenti. Sarà necessario eseguire il backup del Registro di sistema prima di questo passaggio.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder]\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder]\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer [FT_Catalog_Folder]
    [FT_Catalog_Folder] è il catalogo cartella nome "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Per un'istanza denominata di SQL Server, la voce di registro di sistema è \SQLServer$ InstanceName \.
  9. Per ripristinare tutti i cataloghi sul server, è necessario ripristinare le seguenti voci del Registro di sistema. Tuttavia, se a tale scopo, si perderanno tutti i cataloghi esistenti su server_2 dopo aver eseguito questo passaggio. Sarà necessario eseguire il backup del Registro di sistema prima di questo passaggio.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Nota Per impostazione predefinita, i percorsi dei file binari full-text sono:
    SQL Server 7.0 : \Mssql7\FTDATA
    Microsoft. Istanza predefinita di SQL Server 2000 : \Programmi\Microsoft SQL Server\MSSQL\FTDATA
    istanza denominata di SQL Server 2000 : MSSQL $ InstanceName \FTDATA
    Questi percorsi e i percorsi della cartella possono variare per diversi computer. In questo caso, è necessario modificare due voci del Registro di sistema in modo che i percorsi punti al percorso corretto dei file binari full-text dopo aver completato il ripristino su server_2.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    È possibile utilizzare l'utilità regfind per trovare le voci del Registro di sistema e modificare il percorso dei file binari full-text.
  10. Riavviare il servizio Microsoft Search su entrambi i server.
  11. Verificare che il nuovo testo completo cataloghi le cartelle e file sono funzionali utilizzando un'istruzione Transact-SQL SELECT e utilizzare un predicato CONTAINS o FREETEXT nella clausola WHERE.
Informazioni
Lo script di SQL Server riportato di seguito viene illustrato come spostare o "migrazione" una cartella del catalogo full-text da SQL Server 7.0 (server_1) a un altro computer che esegue SQL Server 7.0 (server_2) in una posizione percorso di server_2 o di altra unità locale. Questo articolo si presuppone che SQL Server 7.0 con ricerca full-text è installato in un computer basato su Windows NT 4.0 e che gli identificatori di database e la tabella stessi esistano su entrambi i server.

Ai fini di questa figura, il pubs (dbid = 5) di database e della tabella pub_info (id = 645577338) sono full-text attivata e automaticamente su entrambi i server. Sostituire server_2 con il nome del server e sostituire il nome di cartella del catalogo full-text e l'unità o il percorso con il nome della cartella catalogo full-text e l'unità o il percorso.

È necessario accedere come membro del gruppo Administrators locale del server e far parte il ruolo del server sysadmin di SQL Server (o di accedere come "sa"). Inoltre, deve essere il proprietario del database (DBO) del database per eseguire il seguente server SQL script.

Eseguire lo script di SQL Server seguente su entrambi i server:
use pubsgosp_fulltext_service 'clean_up'gosp_fulltext_database 'enable'go-- Creates and activates the full-text catalog: PubInfo, if it does not exist.-- Drops, re-creates and activates the full-text catalog: PubInfo, if it does-- exist.IF OBJECTPROPERTY ( object_id('pub_info'),                    'TableHasActiveFulltextIndex') = 1BEGIN    print 'Table pub_info is Full-Text Enabled, dropping Full-Text Index& Catalog...'    EXEC sp_fulltext_table 'pub_info', 'drop'    EXEC sp_fulltext_catalog 'PubInfo', 'drop'    print 'Table pub_info is NOT Full-Text Enabled, creating FT Catalog,Index & Activating...'    EXEC sp_fulltext_catalog 'PubInfo', 'create'    EXEC sp_fulltext_table 'pub_info', 'create', 'PubInfo', 'UPKCL_pubinfo'    EXEC sp_fulltext_column 'pub_info', 'pub_id', 'add'    EXEC sp_fulltext_column 'pub_info', 'pr_info', 'add'    EXEC sp_fulltext_table 'pub_info', 'activate'ENDELSE IF OBJECTPROPERTY ( object_id('pub_info'),'TableHasActiveFulltextIndex') = 0BEGIN    print 'Table pub_info is NOT Full-Text Enabled, creating FT Catalog,Index & Activating...'    EXEC sp_fulltext_catalog 'PubInfo', 'create'    EXEC sp_fulltext_table 'pub_info', 'create', 'PubInfo', 'UPKCL_pubinfo'    EXEC sp_fulltext_column 'pub_info', 'pub_id', 'add'    EXEC sp_fulltext_column 'pub_info', 'pr_info', 'add'    EXEC sp_fulltext_table 'pub_info', 'activate'ENDgo -- Confirm Database ID, Object ID, FT Catalog ID and FT folder(default)   -- location.select dbid, name from master.dbo.sysdatabases where dbid = DB_ID('pubs')-- dbid = 5goselect id, name from pubs.dbo.sysobjects where id = object_id('pub_info') gosp_help_fulltext_catalogs 'PubInfo' gosp_help_fulltext_tables 'PubInfo', 'pub_info' gosp_help_fulltext_columns 'pub_info' goexec master..xp_cmdshell 'dir d:\MSSQL70\FTDATA'go--- After full-text is enabled and activated, start full crawl/populationBEGINSET NOCOUNT ONEXEC sp_fulltext_catalog 'PubInfo', 'start_full'----  Wait for crawl to complete--  NOTE: Forlarger tables, increase the WAITFOR DELAY time appropriately--DECLARE @status int, @itemCount int, @keyCount int, @indexSize intSELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')WHILE (@status <> 0)BEGIN  WAITFOR DELAY '00:00:01' -- wait for 1 second before checking FT                           -- Populatestatus...  SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')ENDWAITFOR DELAY '00:00:05' -- wait for 5 seconds to receive correct FT Property                         -- info (add more time for larger tables)...SET @itemCount = FullTextCatalogProperty('PubInfo', 'itemcount')SET @keyCount = FullTextCatalogProperty('PubInfo', 'uniquekeycount')SET @indexSize = FullTextCatalogProperty('PubInfo', 'indexsize')PRINT 'Nbr. of Rows FT Indexed = ' + CAST((CONVERT(varchar(10), @itemCount)- 1) as varchar(12)) + char(09) + 'Nbr. of Unique FT Words = '+  CONVERT(varchar(10), @keyCount) + char(09)SET NOCOUNT OFFENDgo-- Confirm FT population, 1 row should be returned (pub_id = 0736). SELECT pub_id, pr_info FROM pub_info WHERE CONTAINS(pr_info, 'moon')go-- Stop the Microsoft Search service on both serversexec master..xp_cmdshell 'net stop "Microsoft Search"'go
eseguire lo script seguente di SQL Server il server di origine (server_1): pubs utilizzare
use pubsgo-- Map a Drive letter to the destination server.exec master..xp_cmdshell 'NET USE K: \\server_2\[drive]$'go-- Copy the destination server's FT catalog folder and files as a backup.exec master..xp_cmdshell 'ROBOCOPY K:\MSSQL70\FTDATA\SQL0000500005K:\MSSQL70\BACKUP\SQL0000500005 /E /NP'go-- Remove the destination server's full-text catalog folder and files.exec master..xp_cmdshell 'RMDIR /S /Q K:\MSSQL70\FTDATA\SQL0000500005'go-- Copy the SOURCE full-text catalog folder and files to the destination server'sNEW full-text catalog location.exec master..xp_cmdshell 'ROBOCOPY D:\MSSQL70\FTDATA\SQL0000500005K:\FTData\SQL0000500005 /E /NP'go-- Restart the Microsoft Search service.exec master..xp_cmdshell 'net start "Microsoft Search"'go-- Remove the mapped drive letter to the destination server, for example-- K:\.exec master..xp_cmdshell 'NET USE K: /delete'go
è necessario eseguire il seguente script SQL nel server di destinazione (server_2):
use mastergo-- Enable system table updates.sp_configure allow,1goreconfigure with overridegouse pubsgo-- Record full-text catalog information (Note: path = NULL)select * from sysfulltextcatalogsgo-- Update the full-text catalog information with the new full-text catalog locationUPDATE sysfulltextcatalogs set path = 'E:\FTData'   WHERE ftcatid = 5go-- Record full-text catalog info. (Note: path = E:\FTData)select * from sysfulltextcatalogsgouse mastergo-- Disable system table updates.sp_configure allow,0goreconfigure with overridego-- CAUTION: Back up your registry hive before you contine!-- Search and replace HKLM "Gather" registry keys with new full-text catalog-- folder location [10 row(s) affected]:exec master..xp_cmdshell 'REGFIND -m \\server_2 -p\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\SQL0000500005"E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'go-- Search and replace HKLM "Gatherer Manager" registry keys with new FT-- catalog folder location [6 row(s) affected]:exec master..xp_cmdshell 'REGFIND -m \\server_2 -p"\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\GatheringManager\Applications\SQLServer\Projects\SQL0000500005""E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'go-- Search and replace HKLM indexer registry keys with new FT catalog folder-- location [6 row(s) affected]:exec master..xp_cmdshell 'REGFIND -m \\server_2 -p"\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\SQL0000500005""E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'go-- Restart the Microsoft Search serviceexec master..xp_cmdshell 'net start "Microsoft Search"'go-- Confirm FT population, 1 row should be returned (pub_id = 0736). use pubsgoSELECT pub_id, pr_info FROM pub_info WHERE CONTAINS(pr_info, 'moon')go
è possibile "stop" un popolamento full-text in corso eseguendo il seguente codice di SQL Server:

attenzione Se il numero di articolo non è uguale al numero di righe di indicizzazione full-text 1 ulteriori, la dimensione del catalogo full-text potrebbe essere non essere corretto!
-- Run the following code after starting full crawl/population through another connection.use pubsgoBEGINSET NOCOUNT ONEXEC sp_fulltext_catalog 'PubInfo', 'stop'-- Wait for crawl to stop--  NOTE: For larger tables, increase the WAITFOR DELAY time appropriatelyDECLARE @status int, @itemCount int, @keyCount int, @indexSize intSELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')WHILE (@status <> 0)BEGIN  WAITFOR DELAY '00:00:01' -- wait for 1 second before checking FT                           -- Populatestatus...  SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')ENDWAITFOR DELAY '00:00:05' -- wait for 5 seconds to receive correct FT Property                         -- info (add more time for larger tables)...SET @itemCount = FullTextCatalogProperty('PubInfo', 'itemcount')SET @keyCount = FullTextCatalogProperty('PubInfo', 'uniquekeycount')SET @indexSize = FullTextCatalogProperty('PubInfo', 'indexsize')PRINT 'Nbr. of Rows FT Indexed = ' + CAST((CONVERT(varchar(10), @itemCount) - 1)as varchar(12)) + char(09) + 'Nbr. of Unique FT Words = ' +CONVERT(varchar(10), @keyCount) + char(09)SET NOCOUNT OFFENDgo-- Can return: Nbr. of Rows FT Indexed = -1 Nbr. of Unique FT Words = 0 -- (depending upon when the crawl/population stopped)
procedure Correggi

Eseguire lo script SQL riportato di seguito su entrambi i server:

Eliminare l'indice di testo completo, il catalogo full-text e quindi disattivare la ricerca full-text nel database pubs :
use pubsgosp_fulltext_table 'pub_info', 'drop'gosp_fulltext_catalog 'PubInfo', 'drop'gosp_fulltext_database 'disable'gosp_fulltext_service 'clean_up'go-- end SQL Script !

RIFERIMENTI

Per ulteriori informazioni su come ottenere il dbid per un database, vedere l'argomento di "DB_ID" nella documentazione in linea di SQL Server.

Per determinare se un database attivata full-text, vedere gli argomenti di tipo "DATABASEPROPERTY" o "IsFulltextEnabled" "nella documentazione in linea di SQL Server.

Per ulteriori informazioni su ftcatid, vedere "sp_help_fulltext_catalogs", "OBJECTPROPERTY" o "TableFulltextCatalogId" argomenti nella documentazione in linea.
Full-text full-text ricerca per indicizzazione MSSearch di ricerca fuzzy

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 240867 - Ultima revisione: 12/05/2015 15:44:17 - Revisione: 6.5

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition

  • kbnosurvey kbarchive kbmt kbinfo KB240867 KbMtit
Feedback