DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 240867 - Última revisão: sexta-feira, 30 de Novembro de 2007 - Revisão: 6.5

 

Nesta página

Sumário

Catálogos de texto completo e índices não são armazenados num SQL Server base de dados. Catálogos de texto completo e os índices são armazenados em ficheiros separados que gere o serviço Microsoft Search. Os ficheiros de catálogo de texto completo não são recuperados durante uma recuperação do Microsoft SQL Server. Além disso, não pode utilizar as instruções de Transact SQL cópia de segurança e de RESTAURO para efectuar uma cópia de segurança e restaurar texto integral ficheiros de catálogo. Depois de operações de recuperação ou de restauro, deve voltar a sincronizar separadamente os catálogos de texto completo. Apenas o Microsoft Windows NT administrador de sistema e o serviço Microsoft Search podem aceder a ficheiros catálogo de texto completo.

Embora não é possível utilizar bases de dados do SQL Server para criar cópias de catálogos de texto completo, pode utilizar produção bases de dados com grandes tabelas que façam texto integral procura-activados. Se o fizer, poderá ter que mover, efectuar uma cópia de segurança ou restaurar estes catálogos de texto completo e bases de dados de produção. O tempo de execução de um catálogo de texto completo população ou nova sincronização pode ser superior a janela de manutenção normais. Este artigo descreve um método diferente que pode utilizar para mover ou copiar os catálogos sem iniciar a uma população total. Este método evita um período de indisponibilidade significativo.

Este artigo documenta vários métodos que podem ser utilizados para copiar, mover e efectuar uma cópia de segurança ou restaurar o catálogo de texto completo pastas e ficheiros em algumas restrições:
  • As versões do SQL Server que está a utilizar são os mesmos.
  • Catálogo de texto completo pastas e ficheiros têm de ser numa unidade local.
  • Catálogo de texto completo pastas e ficheiros tem de guardar os respectivos nomes originais e o conteúdo da pasta.
  • O identificador de base de dados activado texto completo e o identificador do índice tem de ser o mesmo em ambos os servidores quando mover ou copiar texto integral catálogos entre servidores.
aviso Estes procedimentos não são suportados em instâncias do cluster de activação pós-falha do SQL Server.

Texto completo catálogos são mantidos como um conjunto de pastas e ficheiros. As localizações predefinidas dos catálogos de texto completo são:

Microsoft SQL Server 7.0 :
\Mssql7\FTDATA

Microsoft SQL Server 2000 :
Instância predefinida: Program Files\Microsoft SQL Server\MSSQL\FTDATA
Instância nomeada: Program Files\Microsoft SQL Server\MSSQL $ instancename\FTDATA

Cada catálogo de texto completo e respectivos ficheiros associados são mantidos numa pasta que utiliza a seguinte convenção de nomenclatura onde dbid é o identificador da base de dados associada e, em que ftcatid é o identificador de catálogo de texto completo:

"SQLxxxxx (dbid) yyyyy (ftcatid)"

Cada ftcatid é exclusivos na base de dados associada.

importante Esta secção, método ou tarefa contém passos que indicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo de forma incorrecta. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Criar uma para protecção adicional, cópia de segurança do registo antes de o modificar. Em seguida, pode restaurar o registo se ocorrer um problema. Para obter mais informações sobre como efectuar uma cópia de segurança e restaurar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
322756  (http://support.microsoft.com/kb/322756/ ) Como efectuar uma cópia de segurança e restaurar o registo no Windows

Para criar cópias um catálogo de texto completo num computador autónomo ou num cluster

  1. Pare o serviço Microsoft Search num computador autónomo. Para uma configuração de SQL Server em cluster, deixe online o recurso de texto completo. Depois de parar o serviço Microsoft Search, não é possível executar consultas de texto completo que utilizam predicados CONTAINS ou FREETEXT, ou as valor de conjunto de linhas funções CONTAINSTABLE ou FREETEXTTABLE em relação à base de dados. Além disso, as consultas de procura em texto completo não funcionam e receberá a seguinte mensagem de erro:
    Servidor: Erro 7602, 16 de nível 1 de estado, linha 2 O texto completo serviço (Microsoft Search) não está disponível. O administrador do sistema deve iniciar este serviço.
  2. Utilizar um Microsoft Windows NT ficheiro sistema cópia de segurança utilitário, tais como o serviço de cópia de segurança, e, em seguida, cópia de segurança de catálogos de texto completo, pastas e files.The tabela de sistema para catálogos de texto completo ( sysfulltextcatalogs ) é feita com a base de dados do SQL Server.
  3. Cópia de segurança as seguintes entradas de registo se efectuar tem cópia de segurança os catálogos individualmente:
    \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] é o catálogo pasta nome "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Para uma instância nomeada do SQL Server, a entrada de registo é \SQLServer$ InstanceName \.
  4. 2. Cópia as seguintes entradas de registo para criar cópias de todos os catálogos: (efectua uma esta cópia de segurança todos os catálogos de texto completo no servidor.)
    \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 Para uma instância nomeada do SQL Server, a entrada de registo é \SQLServer$ InstanceName \.

Para restaurar catálogos de texto completo no mesmo servidor para a mesma unidade local ou o caminho

  1. Pare o serviço Microsoft Search. Nota Efectue o passo 2 apenas se a base de dados foi ignorado. Caso contrário, avance para o passo 3.
  2. Restaure ou anexar a base de dados onde tiver activado texto completo. Depois de restaurar a base de dados, certifique-se o ID da base de dados (dbid) é a mesma como estava quando efectuou a mesma cópia de segurança.
    Nota Se a base de dados foi ligada utilizando o comando sp_attach_db , assegure-se que a executa exec sp_fulltext_database 'Activar' comando para activar a base de dados de texto completo.
  3. Para determinar o dbid, execute o seguinte código:
    Use dbname
    go
    select db_id()
    o NOTA: para restaurar catálogos individuais, siga o passo 4. Para restaurar todos os catálogos, avance para o passo 5.
  4. Restaure as entradas de registo que efectuou a cópia de segurança com base nas instruções anteriormente cópia de segurança. Poderá pretender uma cópia de segurança do registo antes de tentar este passo.
    \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] é o catálogo pasta nome "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Para uma instância nomeada do SQL Server, a entrada de registo é \SQLServer$ InstanceName \.
  5. Para restaurar todos os catálogos no servidor, restaure as seguintes entradas de registo. Poderá pretender uma cópia de segurança do registo antes de tentar este passo.
    \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\SQLServerPara uma instância nomeada do SQL Server, a entrada de registo é \SQLServer$ InstanceName \.
  6. Restaure os catálogos de cópia de segurança para a localização predefinida que a cópia-a partir do.
  7. Reinicie o serviço Microsoft Search.
  8. Confirme que o novo texto integral cataloga pastas e ficheiros estão a funcionais utilizando uma instrução Transact-SQL SELECT e utilizar um predicado CONTAINS ou FREETEXT na cláusula WHERE.

Para mover ou copiar texto integral catálogos entre unidades locais ou caminhos no mesmo computador que esteja a executar o SQL Server

  1. Confirme o nome do catálogo de texto completo e a unidade local ou o caminho utilizando sp_help_fulltext_catalogs 'FT_Catalog_Name'. Anote o catálogo de texto completo letra de unidade e caminho totalmente qualificado para utilizar mais tarde.
  2. Pare o serviço Microsoft Search. Efectuar o passo 3 e 4 apenas se a base de dados foi eliminada ou se o catálogo foi eliminado, caso contrário, avance para o passo 5.
  3. Restaure ou anexar a base de dados onde tiver activado texto completo. Depois de restaurar a base de dados, certifique-se o ID da base de dados (dbid) é a mesma como estava quando efectuou a mesma cópia de segurança.

    Nota Se a base de dados foi ligada utilizando o comando sp_attach_db , assegure-se que a executa exec sp_fulltext_database 'Activar' comando para activar a base de dados de texto completo.

    Para determinar o dbid, execute o seguinte código:
    Use dbname
    go
    select db_id()
  4. Restaure as seguintes entradas de registo. Poderá pretender uma cópia de segurança do registo antes de tentar este passo.
    \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] é o catálogo pasta nome "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Para uma instância nomeada do SQL Server, a entrada de registo é \SQLServer$ InstanceName \.
  5. Determine a nova unidade local do catálogo de texto completo ou caminho. Copie os catálogos de texto completo para a nova localização.
  6. Permitir actualizações à tabela de sistema utilizando o sistema armazenado procedimento sp_configure RECONFIGURAÇÃO com substituir e, em seguida, actualize o [database_name]. dbo.sysfulltextcatalogs coluna caminho para o novo local unidade ou caminho de destino para a pasta predefinida de catálogo de texto completo, como, por exemplo, d:\FTData.
  7. Utilize o utilitário de regfind Windows NT 4.0 Resource Kit para localizar e substituir os seguintes HKLM chaves valores de registo para cada pasta catálogo de texto completo (FT_Catalog_Folder) (por exemplo, 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]
    Além disso, certifique-se utilizar aspas direitas ("") para incluir as chaves de registo para ambos os -p e -r parâmetros. Por exemplo:
    -m \\server_2 -p "<Key Name>" <Old_FT_Catalog_Path_and_Folder> -r <New_FT_Catalog_Path_and_Folder>

    NOTA: Substituir < Nome da Chave >, <Old_FT_Catalog_Path_and_Folder> e <New_FT_Catalog_Path_and_Folder> com os valores apropriados.
    Por exemplo: -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

    Para mais informações sobre a sintaxe para utilizar o utilitário regfind , escreva o seguinte parâmetro a partir de uma linha de comandos do DOS: regfind /?
  8. Reinicie o serviço Microsoft Search.
  9. Confirme que o novo texto integral cataloga pastas e ficheiros estão a funcionais utilizando uma instrução Transact-SQL SELECT e utilizar um predicado CONTAINS ou FREETEXT na cláusula WHERE.

Para copiar texto integral catálogos entre instâncias do SQL Server para a mesma unidade local ou o caminho

Os seguintes passos demonstram como mover ou copiar uma pasta catálogo de texto completo e ficheiros de um computador que esteja a executar o SQL Server (server_1) para outro computador com o SQL Server (server_2). Este artigo pressupõe que o SQL Server tem procura em texto completo instalada e que os identificadores de base de dados e tabela mesmos existem em ambos os servidores. Para a cópia com êxito dos catálogos de texto completo de uma instância do SQL Server para outro, base de dados ID tem de estar a mesma. Por conseguinte, é melhor ter server_2 (ao qual está a copiar o catálogo) seja uma réplica exacta (clone) de server_1.Confirm dbids tanto server_1 server_2 são os mesmos. Para o fazer, execute os seguintes comandos em ambos os servidores:
Use dbname
go
select db_id()
para "trocar" dbids para obter o dbid correcto no server_2, utilizam sp_detach_db e sp_attach_db para separar e reanexá bases de dados correctos. Por exemplo, se tiver duas bases de dados, como, por exemplo, TestDB (dbid = 7) e PerfDB (dbid = 8), desanexar ambas as bases de dados e, em seguida, primeiro reanexá base de dados PerfDB e, em seguida, a TestDB de dados. Esta troca a dbids: O dbid para TestDB torna-se 8 e o dbid para PerfDB torna-se 7. O dbid mais baixa no conjunto de dbids disponível é sempre utilizado pela primeira vez.

atenção Para tal, antes de desligar as bases de dados, certifique-se que ambas as bases de dados não têm qualquer catálogos de texto completo e que não são activado de texto completo. Consulte a secção "procedimentos de limpar-up" o “ mais informação ” para os passos para eliminar catálogos de texto completo e para desactivar o texto completo para uma base de dados.
  1. Confirme se os valores de dbid master.dbo.sysdatabases para bases de dados texto completo activados são iguais em ambos os servidores.
  2. Confirmar que o [database_name]. dbo.sysobjects valores de ID para as tabelas activadas texto integral são os mesmos nos dois servidores. Para mais informações sobre como obter um valor de ID de tabela, consulte o tópico "object_id" em livros do SQL Server.
  3. Confirme se o nome do catálogo de texto completo e a unidade local ou o caminho são iguais em ambos os servidores utilizando sp_help_fulltext_catalogs ' FT_Catalog_Name ' .
  4. Pare o serviço Microsoft Search no server_1 e server_2.
  5. Mapear uma letra de unidade no server_1 para a unidade ou caminho no server_2 correspondente.
  6. Copie a pasta catálogo de texto completo e ficheiros que identificou no passo 3 do server_1 para server_2 através DOS comando xcopy . Utilize o nome totalmente qualificado catálogo de texto completo de unidade ou caminho e a pasta a localização de origem e o nome de unidade ou caminho e pasta mapeada catálogo de texto completo como a localização de destino. Se as pastas de destino não existem no server_2, utilizar o xcopy muda /I e/e para criar todas as pastas de destino. Para restaurar todos os catálogos, copie todas as pastas de catálogo para server_2.
  7. Pode utilizar o comando DOS RMDIR /S /Q [FT_Catalog_drive/caminho] no server_1 remover os ficheiros de catálogo de texto completo no server_1.

    Nota Para restaurar catálogos individuais, siga o passo 8. Para restaurar todos os catálogos, avance para o passo 9.
  8. Restaure as entradas do registo a cópia com base nas instruções anteriores. Poderá pretender uma cópia de segurança do registo antes de tentar este passo.
    \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] é o catálogo pasta nome "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Para uma instância nomeada do SQL Server, a entrada de registo é \SQLServer$ InstanceName \.
  9. Para restaurar todos os catálogos no servidor, restaure as seguintes entradas de registo. No entanto, se o fizer, perderá todos os catálogos existentes no server_2 depois de efectuar este passo. Poderá pretender uma cópia de segurança do registo antes de tentar este passo.
    \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 Por predefinição, são as localizações dos binários de texto completo:
    SQL Server 7.0 : \Mssql7\FTDATA
    Microsoft. Instância do SQL Server 2000 predefinida : \Programas\Microsoft SQL Server\MSSQL\FTDATA
    instância nomeada do SQL Server 2000 : MSSQL $ InstanceName \FTDATA
    Estas localizações e os caminhos de pasta variam para diferentes computadores. Neste caso, tem de alterar duas entradas de registo modo a que os caminhos aponte para a localização correcta dos binários texto completo depois de concluir o restauro em server_2.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Pode utilizar o utilitário regfind para localizar entradas de registo e alterar a localização dos binários texto completo.
  10. Reinicie o serviço Microsoft Search em ambos os servidores.
  11. Confirme que o novo texto integral cataloga pastas e ficheiros estão a funcionais utilizando uma instrução Transact-SQL SELECT e utilizar um predicado CONTAINS ou FREETEXT na cláusula WHERE.

Mais Informação

O script de SQL Server seguinte demonstra como mover ou "Migrar" uma pasta catálogo de texto completo do SQL Server 7.0 (server_1) para outro computador que está a executar o SQL Server 7.0 (server_2) numa localização de caminho no server_2 ou noutra unidade local. Este artigo pressupõe que SQL Server 7.0 com procura em texto completo é instalado num computador baseado no Windows NT 4.0 e que os identificadores de base de dados e tabela mesmos existem em ambos os servidores.

Para efeitos de nesta ilustração, pubs (dbid = 5) da base de dados e tabela info_edt (id = 645577338) são texto integral activada e preenchidos em ambos os servidores. Substituir server_2 o nome do servidor e substitua o nome da pasta catálogo de texto completo e a unidade ou o caminho com o nome da pasta catálogo de texto completo e a unidade ou caminho.

Deve iniciar sessão como membro do grupo Administradores local do servidor e de ser membro do sysadmin do SQL Server (ou o início de sessão como "sa"). Além disso, tem de ser o proprietário de base de dados (DBO) da base de dados para executar o SQL Server seguinte scripts.

Execute o seguinte script de SQL Server em ambos os servidores:
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
execute o seguinte script do SQL Server no servidor de origem (server_1): vá
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
deve executar o seguinte script de SQL no servidor do destino (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
pode "stop" uma população de texto completo em curso, executando o seguinte código de SQL Server:

atenção Se o número de produto não é igual ao número de linhas que texto integral indexado mais adicional, o tamanho do catálogo de texto completo pode ser um estar incorrectas!
-- 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)
procedimentos de cópia de limpar

Execute o seguinte script SQL em ambos os servidores:

Largar o índice de texto completo, o catálogo de texto completo e, em seguida, desactive procura em texto completo na base de dados 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 !

REFERÊNCIAS

Para mais informações sobre como obter o dbid para uma base de dados, consulte o tópico "DB_ID" no SQL Server Books Online.

Para determinar se uma base de dados é activado de texto completo, consulte os tópicos "DATABASEPROPERTY" ou "IsFulltextEnabled" no SQL Server Books Online.

Para mais informações sobre ftcatid, consulte o "sp_help_fulltext_catalogs", "OBJECTPROPERTY" ou "TableFulltextCatalogId" tópicos no SQL Server Books Online.

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition nas seguintes plataformas
    • 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
Palavras-chave: 
kbmt kbinfo KB240867 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 240867  (http://support.microsoft.com/kb/240867/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft