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

Traduzione articoli Traduzione articoli
Identificativo articolo: 240867 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

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 dbname
    go
    select 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 dbname
    go
    select 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 dbname
go
select 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 pubs
go
sp_fulltext_service 'clean_up'
go
sp_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') = 1
BEGIN
    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'
END
ELSE IF OBJECTPROPERTY ( object_id('pub_info'),'TableHasActiveFulltextIndex') = 0
BEGIN
    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'
END
go -- 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 = 5
go
select id, name from pubs.dbo.sysobjects where id = object_id('pub_info') 
go
sp_help_fulltext_catalogs 'PubInfo' 
go
sp_help_fulltext_tables 'PubInfo', 'pub_info' 
go
sp_help_fulltext_columns 'pub_info' 
go
exec master..xp_cmdshell 'dir d:\MSSQL70\FTDATA'
go

--- After full-text is enabled and activated, start full crawl/population
BEGIN
SET NOCOUNT ON
EXEC 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 int
SELECT @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')
END
WAITFOR 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 OFF
END
go

-- 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 servers
exec master..xp_cmdshell 'net stop "Microsoft Search"'
go
eseguire lo script seguente di SQL Server il server di origine (server_1): pubs utilizzare
use pubs
go
-- 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\SQL0000500005
K:\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's
NEW full-text catalog location.
exec master..xp_cmdshell 'ROBOCOPY D:\MSSQL70\FTDATA\SQL0000500005
K:\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 master
go
-- Enable system table updates.
sp_configure allow,1
go
reconfigure with override
go

use pubs
go
-- Record full-text catalog information (Note: path = NULL)
select * from sysfulltextcatalogs
go
-- Update the full-text catalog information with the new full-text catalog location
UPDATE sysfulltextcatalogs set path = 'E:\FTData'
   WHERE ftcatid = 5
go
-- Record full-text catalog info. (Note: path = E:\FTData)
select * from sysfulltextcatalogs
go

use master
go
-- Disable system table updates.
sp_configure allow,0
go
reconfigure with override
go

-- 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\Gathering
Manager\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 service
exec master..xp_cmdshell 'net start "Microsoft Search"'
go

-- Confirm FT population, 1 row should be returned (pub_id = 0736). 
use pubs
go
SELECT 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 pubs
go
BEGIN
SET NOCOUNT ON
EXEC sp_fulltext_catalog 'PubInfo', 'stop'

-- Wait for crawl to stop

--  NOTE: For larger tables, increase the WAITFOR DELAY time appropriately

DECLARE @status int, @itemCount int, @keyCount int, @indexSize int
SELECT @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')
END
WAITFOR 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 OFF
END
go
-- 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 pubs
go
sp_fulltext_table 'pub_info', 'drop'
go
sp_fulltext_catalog 'PubInfo', 'drop'
go
sp_fulltext_database 'disable'
go
sp_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.

ProprietÓ

Identificativo articolo: 240867 - Ultima modifica: venerdý 30 novembre 2007 - Revisione: 6.5
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Standard Editionáalle seguenti piattaforme
    • Microsoft SQL Server 2000 Developer Edition
    • Microsoft SQL Server 2000 Standard Edition
    • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 7.0 Standard Edition
Chiavi:á
kbmt kbinfo KB240867 KbMtit
Traduzione automatica articoli
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
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com