Cómo mover, copiar y hacer copia de seguridad las carpetas del catálogo de texto y archivos

Seleccione idioma Seleccione idioma
Id. de artículo: 240867 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Catálogos de texto y los índices no están almacenados en un SQL Server de base de datos. Catálogos de texto y los índices se almacenan en archivos independientes que administra el servicio Microsoft Search. Los archivos de catálogos de texto no se recuperan durante una recuperación de Microsoft SQL Server. Además, no puede utilizar las instrucciones BACKUP y RESTORE de Transact SQL para realizar una copia de seguridad y restaurar el texto completo los archivos de catálogo. Después de las operaciones de recuperación o restauración, se deben volver a, por separado, sincronizar los catálogos de texto completo. Sólo Microsoft Windows NT administrador del sistema y el servicio Búsqueda de Microsoft pueden tener acceso a los archivos de catálogo de texto.

Aunque no puede utilizar bases de datos de SQL Server para copia de los catálogos de texto, puede utilizar búsquedas habilitadas bases de datos con grandes tablas que son de texto completo de producción. Si lo hace, podría tiene que mover, realizar una copia de seguridad o restaurar estos catálogos de texto completo y sus bases de datos de producción. El tiempo de ejecución un catálogo de texto completo en población o resincronización puede ser mayor que la ventana Mantenimiento típica. En este artículo describe un método diferente que puede utilizar para mover o copiar los catálogos sin iniciar un llenado total. Este método evita un considerable tiempo de inactividad.

En este artículo documenta varios métodos que puede utilizar para copiar, mover y realizar una copia de seguridad o restaurar carpetas del catálogo de texto y archivos en ciertas restricciones:
  • Las versiones de SQL Server que está utilizando son los mismos.
  • Carpetas de catálogos de texto y archivos deben estar en una unidad local.
  • Carpetas de catálogos de texto y archivos deben conservar sus nombres originales y el contenido de la carpeta.
  • El identificador de base de datos de texto habilitada y el identificador de tabla deben ser el mismo en ambos servidores al mover o copiar catálogos de texto entre servidores.
Advertencia Estos procedimientos no se admiten en las instancias de clúster de conmutación por error de SQL Server.

Los catálogos de texto se mantienen como una colección de carpetas y archivos. Las ubicaciones predeterminadas de catálogos de texto completo son:

Microsoft SQL Server 7.0 :
\Mssql7\Ftdata

Microsoft SQL Server 2000 :
Instancia predeterminada: Programa\microsoft SQL Server\MSSQL\FTDATA
Instancia con nombre: Programa\microsoft SQL Server\MSSQL $ instancename\FTDATA

Cada catálogo de texto completo y sus archivos asociados se mantienen en una carpeta que utiliza la siguiente convención de nomenclatura donde dbid es el identificador de base de datos asociado y ftcatid es el identificador del catálogo de texto:

"SQLxxxxx (dbid) yyyyy (ftcatid)"

Cada ftcatid es único en la base de datos asociado.

importante Esta sección, el método o la tarea contiene pasos que indican cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por tanto, asegúrese de que siga estos pasos cuidadosamente. Realice una para agregar protección, copia de seguridad del registro antes de modificarlo. A continuación, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo realizar una copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322756Cómo realizar una copia de seguridad y restaurar el registro de Windows

Copia un catálogo de texto completo de seguridad en un equipo independiente o en un clúster

  1. Detenga el servicio Microsoft Search en un equipo independiente. Para una configuración de SQL Server agrupada, deje el recurso de texto en línea. Después de detener el servicio Microsoft Search, puede ejecutar consultas de texto que usan los predicados CONTAINS o FREETEXT, o las funciones con valores de conjunto de filas CONTAINSTABLE o FREETEXTTABLE en la base de datos. Además, consultas de búsqueda de texto completo no funcionan y recibe el mensaje de error siguiente:
    Servidor: Mensaje 7602, nivel 16, estado 1, servicio de texto la línea 2 (Microsoft Search) no está disponible. El administrador del sistema debe iniciarlo.
  2. Use un Microsoft Windows NT archivo sistema de copia de seguridad utilidad, como Backup Exec, y a continuación, volver de los catálogos de texto completo, carpetas y files.The tabla del sistema para catálogos de texto ( sysfulltextcatalogs ) se copia con la base de datos SQL Server.
  3. Hacer copia de seguridad las siguientes entradas del registro si debe realizar una copia de seguridad los 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]
    [Carpeta_catálogo_FT] es el catálogo carpeta nombre "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Para una instancia con nombre de SQL Server, la entrada del registro es \SQLServer$ InstanceName \.
  4. 2. Copia de seguridad las siguientes entradas del registro hacer copia de todos los catálogos: (se copia todos los catálogos de texto completo en el 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 una instancia con nombre de SQL Server, la entrada del registro es \SQLServer$ InstanceName \.

Para restaurar catálogos de texto completo en el mismo servidor a la misma unidad local o ruta de acceso

  1. Detenga el servicio Microsoft Search. Nota Realice el paso 2 sólo si se quitó la base de datos. De lo contrario, vaya al paso 3.
  2. Restaurar o adjuntar la base de datos donde habilitado texto completo. Después de restaurar la base de datos, asegúrese de que el identificador de base de datos (dbid) es igual al que se hizo copia de seguridad.
    Nota Si se ha adjuntado la base de datos mediante el comando sp_attach_db , asegúrese de que ejecute el exec sp_fulltext_database "Habilitar" comando para habilitar la base de datos de texto.
  3. Para determinar el dbid, ejecute el siguiente código:
    Use dbname
    go
    select db_id()
    Nota para restaurar catálogos individuales, siga el paso 4. Para restaurar todos los catálogos, vaya al paso 5.
  4. Restaurar las entradas del registro que hizo copia de seguridad según las instrucciones de copia de seguridad anteriores. Puede que desee hacer copia de seguridad del registro antes de intentar este paso.
    \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]
    [Carpeta_catálogo_FT] es el catálogo carpeta nombre "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Para una instancia con nombre de SQL Server, la entrada del registro es \SQLServer$ InstanceName \.
  5. Para restaurar todos los catálogos en el servidor, restaure las siguientes entradas del registro. Puede que desee hacer copia de seguridad del registro antes de intentar este paso.
    \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 una instancia con nombre de SQL Server, la entrada del registro es \SQLServer$ InstanceName \.
  6. Restaurar los catálogos de copia de seguridad en la ubicación predeterminada que hizo copia de seguridad de.
  7. Reinicie el servicio Microsoft Search.
  8. Confirme que el nuevo texto completo cataloga carpetas y archivos son funcionales mediante una instrucción SELECT de Transact-SQL y usar un predicado CONTAINS o FREETEXT en la cláusula WHERE.

Para mover o copiar catálogos de texto entre las unidades locales o rutas de acceso en el mismo equipo que ejecuta SQL Server

  1. Confirme el nombre de catálogo de texto y la unidad local o la ruta mediante sp_help_fulltext_catalogs 'Nombre_catálogo_FT'. Registrar el catálogo de texto letra de unidad y ruta de acceso completa para utilizarlo más adelante.
  2. Detenga el servicio Microsoft Search. Realizar los pasos 3 y 4 sólo si se quitó la base de datos o si se ha eliminado el catálogo, en caso contrario, vaya al paso 5.
  3. Restaurar o adjuntar la base de datos donde habilitado texto completo. Después de restaurar la base de datos, asegúrese de que el identificador de base de datos (dbid) es igual al que se hizo copia de seguridad.

    Nota Si se ha adjuntado la base de datos mediante el comando sp_attach_db , asegúrese de que ejecute el exec sp_fulltext_database "Habilitar" comando para habilitar la base de datos de texto.

    Para determinar el dbid, ejecute el siguiente código:
    Use dbname
    go
    select db_id()
  4. Restaurar las siguientes entradas del registro. Puede que desee hacer copia de seguridad del registro antes de intentar este paso.
    \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]
    [Carpeta_catálogo_FT] es el catálogo carpeta nombre "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Para una instancia con nombre de SQL Server, la entrada del registro es \SQLServer$ InstanceName \.
  5. Determine la nueva unidad local de catálogo de texto o la ruta de acceso. Copie los catálogos de texto completo a la nueva ubicación.
  6. Permitir actualizaciones de tabla de sistema mediante el sistema almacenado procedimiento sp_configure RECONFIGURE con reemplazar y a continuación, actualice el [database_name]. dbo.sysfulltextcatalogs columna ruta de acceso al nuevo unidad o ruta de acceso destino local para la carpeta predeterminada del catálogo de texto, como d:\FTData.
  7. Use la utilidad de regfind Kit de recursos de Windows NT 4.0 para buscar y reemplazar los siguientes HKLM claves valores del registro para cada carpeta de catálogo de texto (carpeta_catálogo_FT) (por ejemplo, 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]
    Además, asegúrese de utilizar las comillas rectas ("") para encerrar las claves del registro para ambos el -p y -r parámetros. Por ejemplo:
    -m \\server_2 -p "<Key Name>" <Old_FT_Catalog_Path_and_Folder> -r <New_FT_Catalog_Path_and_Folder>

    Nota: < Nombre de Clave > Reemplazar, <Old_FT_Catalog_Path_and_Folder>, <New_FT_Catalog_Path_and_Folder> y con los valores adecuados.
    Por ejemplo: -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 obtener más información sobre la sintaxis para utilizar la herramienta regfind , escriba el siguiente parámetro desde un símbolo del sistema de DOS: regfind /?
  8. Reinicie el servicio Microsoft Search.
  9. Confirme que el nuevo texto completo cataloga carpetas y archivos son funcionales mediante una instrucción SELECT de Transact-SQL y usar un predicado CONTAINS o FREETEXT en la cláusula WHERE.

Para copiar los catálogos de texto entre instancias de SQL Server al misma unidad local o ruta de acceso

Los pasos siguientes demuestran cómo mover o copiar una carpeta de catálogo de texto y archivos de un equipo que ejecuta SQL Server (server_1) a otro equipo que ejecuta SQL Server (server_2). Este artículo se supone que SQL Server tiene la búsqueda de texto instalada y que los mismos identificadores de base de datos y tabla existen en ambos servidores. Para la copia correcta de los catálogos de texto de una instancia de SQL Server, la base de datos ID debe ser el mismo. Por lo tanto, es mejor tener server_2 (al que está copiando el catálogo) sea una réplica exacta (clon) de la server_1.Confirm que dbids en server_1 y server_2 son los mismos. Para ello, ejecute los comandos siguientes en ambos servidores:
Use dbname
go
select db_id()
"intercambiar" dbids para obtener el dbid correcto en server_2, utilice sp_detach_db y sp_attach_db para separar y volver a adjuntar las bases de datos correctos. Por ejemplo, si tiene dos bases de datos, como (dbid = 7) TestDB y PerfDB (dbid = 8), separe ambas bases de datos y vuelva a, a continuación, primer adjuntar la base de datos PerfDB y, a continuación, la base de datos TestDB . Esto intercambia el dbids: el dbid de TestDB se convierte en 8 y el dbid de PerfDB en 7. El dbid menor en el grupo de dbids disponible se utiliza siempre primero.

Precaución Para ello, antes de desconectar las bases de datos, asegúrese de que ambas bases de datos no tienen los catálogos de texto completo y que no son texto habilitado. Consulte la sección "procedimientos de limpieza" en la ? más información ? para que los pasos para quitar catálogos de texto completo y deshabilitar el texto de una base de datos.
  1. Confirme que los valores de dbid de master.dbo.sysdatabases para bases de datos habilitadas de texto completo son los mismos en ambos servidores.
  2. Confirmar que la [database_name]. dbo.sysobjects valores de identificador para las tablas habilitadas de texto completo son los mismos en ambos servidores. Para obtener más información acerca de cómo obtener un valor de ID de tabla, vea el tema "object_id" en los libros de SQL Server.
  3. Confirme que el catálogo de texto nombre y la unidad local o la ruta son los mismos en ambos servidores utilizando sp_help_fulltext_catalogs ' FT_Catalog_Name ' .
  4. Detener el servicio Microsoft Search en server_1 y server_2.
  5. Asignar una letra de unidad en server_1 a la unidad o ruta de acceso en server_2 correspondiente.
  6. Copiar la carpeta de catálogo de texto y los archivos que identificó en el paso 3 de server_1 a server_2 mediante el comando de DOS xcopy . Utilice el nombre de unidad o ruta de acceso y carpeta de catálogo de texto completo como la ubicación de origen y el nombre de unidad o ruta de acceso y carpeta de catálogo de texto asignada como la ubicación de destino. Si las carpetas de destino no existen en server_2, utilice el comando xcopy de los modificadores /I y /E para crear todas las carpetas de destino. Para restaurar todos los catálogos, copie todas las carpetas catálogo a server_2.
  7. Puede utilizar el comando de MS-DOS RMDIR /S /Q [unidad_catálogo_FT/ruta] en server_1 para quitar los archivos de catálogo de texto completo en server_1.

    Nota Para restaurar catálogos individuales, siga el paso 8. Para restaurar todos los catálogos, vaya al paso 9.
  8. Restaurar las entradas del registro que copia según las instrucciones anteriores. Puede que desee hacer copia de seguridad del registro antes de intentar este paso.
    \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]
    [Carpeta_catálogo_FT] es el catálogo carpeta nombre "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Para una instancia con nombre de SQL Server, la entrada del registro es \SQLServer$ InstanceName \.
  9. Para restaurar todos los catálogos en el servidor, restaure las siguientes entradas del registro. Sin embargo, si lo hace, perderá todos los catálogos existentes en server_2 después de realizar este paso. Puede que desee hacer copia de seguridad del registro antes de intentar este paso.
    \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 De forma predeterminada, las ubicaciones de archivos binarios de texto completo son:
    SQL Server 7.0 : \Mssql7\Ftdata
    Microsoft. Instancia predeterminada de SQL Server 2000 : \Archivos de programa\Microsoft SQL Server\MSSQL\FTDATA
    instancia con nombre de SQL Server 2000 : MSSQL $ InstanceName \FTDATA
    Estas ubicaciones y las rutas de carpeta pueden variar en diferentes equipos. En este caso, debe cambiar dos entradas del registro para que las rutas de acceso señalan la ubicación correcta de los binarios de texto completo después de completar la restauración en server_2.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Puede utilizar la herramienta regfind para buscar entradas del registro y cambiar la ubicación de los binarios de texto completo.
  10. Reinicie el servicio Microsoft Search en ambos servidores.
  11. Confirme que el nuevo texto completo cataloga carpetas y archivos son funcionales mediante una instrucción SELECT de Transact-SQL y usar un predicado CONTAINS o FREETEXT en la cláusula WHERE.

Más información

La secuencia de comandos de SQL Server siguiente muestra cómo mover o "migrar" una carpeta de catálogo de texto de SQL Server 7.0 (server_1) a otro equipo que ejecuta SQL Server 7.0 (server_2) a una unidad local diferente o una ubicación de ruta de acceso en server_2. Este artículo se supone que está instalado SQL Server 7.0 con búsqueda de texto completo en un equipo basado en Windows NT 4.0 y que existen los mismos identificadores de base de datos y tabla en ambos servidores.

Los fines de esta ilustración, el pubs (dbid = 5) de base de datos y la tabla pub_info (id = 645577338) son de texto completo habilitada y se rellena en ambos servidores. Sustituya server_2 por su nombre de servidor y reemplace el nombre de carpeta de catálogo de texto y la unidad o la ruta por su nombre de carpeta de catálogo de texto y unidad o ruta de acceso.

Debe inicie sesión como miembro del grupo local de administradores del servidor y ser miembro de la función de servidor sysadmin de SQL Server (o inicie sesión como "sa"). Además, debe ser el propietario de base de datos (DBO) de la base de datos para ejecutar siguiente SQL Server secuencias de comandos.

Ejecute el archivo de comandos siguiente de SQL Server en ambos 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
ejecute la siguiente secuencia de comandos de SQL Server en el servidor de origen (server_1): Ir
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
se debe ejecutar la siguiente secuencia de comandos SQL en el servidor de 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
se puede "Detener" un llenado de texto completo en curso ejecutando el siguiente código de SQL Server:

Precaución Si el número de elementos no es igual al número de filas que índices de texto más adicionales, el tamaño del catálogo de texto puede ser uno que incorrecto!
-- 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)
procedimientos de limpieza

Ejecute la siguiente secuencia de comandos SQL en ambos servidores:

Colocar el índice de texto completo, el catálogo de texto y, a continuación, deshabilitar la búsqueda de texto en la base de datos 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 !

REFERENCIAS

Para obtener más información acerca de cómo obtener el dbid para una base de datos, vea el tema "DB_ID" en los libros en pantalla de SQL Server.

Para determinar si una base de datos es texto habilitado, vea los temas "DATABASEPROPERTY" o "IsFulltextEnabled" en los libros en pantalla de SQL Server.

Para obtener más información acerca de ftcatid, vea la "sp_help_fulltext_catalogs", "OBJECTPROPERTY" o "TableFulltextCatalogId" temas en los libros en pantalla.

Propiedades

Id. de artículo: 240867 - Última revisión: viernes, 30 de noviembre de 2007 - Versión: 6.5
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition sobre las siguientes 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
Palabras clave: 
kbmt kbinfo KB240867 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 240867

Enviar comentarios

 

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