Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
SQL Server actualiza la búsqueda de texto completo durante la instalación, o al adjuntar, restaurar o copiar archivos de base de datos y catálogos de texto completo de SQL Server 2005 (9.x) y versiones anteriores.
Actualizar una instancia de servidor
Para una actualización local, una instancia de SQL Server se configura en paralelo con la versión anterior de SQL Server y se migran los datos. Si la versión anterior de SQL Server tenía instalada la búsqueda de texto completo, se instala automáticamente una nueva versión de búsqueda de texto completo. La instalación en paralelo significa que cada uno de los siguientes componentes existe en el nivel de instancia de SQL Server.
Separadores de palabras, lematizadores y filtros
Ahora, cada instancia usa su propio conjunto de separadores de palabras, lematizadores y filtros en lugar de depender de la versión de estos componentes existente en el sistema operativo. También es más fácil registrar y configurar estos componentes en cada una de las instancias. Para más información, consulte Configurar y gestionar los desglosadores de palabras y los stemmers y Configurar y gestionar filtros.
Host de demonio de filtro
Los hosts de demonio de filtro de texto completo son procesos que cargan y controlan de forma segura los componentes extensibles externos que se usan en los índices y en las consultas, como por ejemplo, los separadores de palabras, los lematizadores y los filtros, sin poner en peligro la integridad del motor de búsqueda de texto completo. Una instancia del servidor utiliza un proceso multiproceso para todos los filtros multiproceso y un proceso de un solo subproceso para todos los filtros de un solo subproceso.
El servicio FDHOST Launcher (MSSQLFDLauncher) propaga la información de la cuenta de servicio a los procesos anfitriones del daemon de filtro de una instancia específica del Motor de base de datos. Para información sobre cómo configurar la cuenta de servicio, consulte Establecer la cuenta de servicio para el Lanzador de Daemons de Filtro de texto completo.
Compatibilidad de actualización de SQL Server 2005
Un catálogo de texto completo es un objeto lógico o virtual que contiene un grupo de índices de texto completo. Por lo tanto, un nuevo catálogo de texto completo no se trata como un archivo de base de datos con una ruta de acceso física. Sin embargo, si actualizas desde SQL Server 2005 (9.x), se crea un nuevo grupo de archivos en el mismo disco para cualquier catálogo de texto completo que contenga archivos de datos.
Este procedimiento mantiene el comportamiento de E/S de disco anterior después de la actualización. Si la ruta de acceso raíz existe, todos los índices de texto completo del catálogo se situarán en el nuevo grupo de archivos. Si la ruta de acceso al catálogo de texto completo anterior no es válida, la actualización mantiene el índice de texto completo en el mismo grupo de archivos que la tabla base o, si se trata de una tabla con particiones, en el grupo de archivos principal.
Opciones de actualización de texto completo
Cuando actualizas una instancia de SQL Server, la interfaz de usuario te permite elegir una de las siguientes opciones de actualización en texto completo. Estas opciones solo están disponibles para bases de datos de SQL Server 2005 (9.x).
Import
Se importan los catálogos de texto completo. Normalmente, el proceso de importación es significativamente más rápido que el de regeneración. Por ejemplo, con un solo núcleo de CPU, la importación funciona unas 10 veces más rápido que la reconstrucción. Sin embargo, un catálogo de texto completo importado no usa los nuevos separadores de palabras instalados con la versión más reciente de SQL Server. Para garantizar la coherencia de los resultados de consulta, los catálogos de texto completo se tienen que recompilar.
Nota:
Rebuild puede ejecutarse en modo multihilo, y si hay más de 10 núcleos de CPU disponibles, Rebuild podría ir más rápido que importar si permites que Rebuild use todos los núcleos.
Si un catálogo de texto completo no está disponible, se vuelven a generar los índices de texto completo asociados.
Para información sobre el efecto de importar un índice de texto completo, véase Consideraciones para elegir una opción de actualización de texto completo más adelante en este artículo.
Rebuild
Los catálogos en texto completo se reconstruyen usando los desglosadores de palabras de la versión actual. El proceso de recompilación de los índices puede llevar cierto tiempo y podría ser necesaria una cantidad significativa de CPU y de memoria después de la actualización.
Reiniciar
Los catálogos de texto completo se restablecen. Cuando actualizas desde SQL Server 2005 (9.x), se eliminan los archivos de catálogo en texto completo, pero se conservan los metadatos de los catálogos y índices de texto completo. Después de actualizarse, todos los índices de texto completo están deshabilitados para el seguimiento de cambios y los rastreos no se inician automáticamente. El catálogo permanecerá vacío hasta que emita manualmente un rellenado completo, una vez completada la actualización.
Consideraciones sobre la elección de una opción de actualización de texto completo
Cuando elijas la opción de mejora, considera lo siguiente:
¿Necesita coherencia en los resultados de consulta?
El Motor de base de datos instala nuevos separadores de palabras para su uso en las búsquedas de texto completo y la Búsqueda semántica. Los separadores de palabras se usan en el momento de la indización y en el momento de la consulta. Si no vuelve a generar los catálogos de texto completo, tus resultados de búsqueda podrían ser inconsistentes. Si emite una consulta de texto completo que busca una frase que el divisor de palabras divide de forma distinta en una versión anterior del Motor de base de datos y en el divisor de palabras actual, es posible que no se recupere un documento o una fila que contenga la frase. Esto se debe a que las frases indizadas se separaron mediante una lógica diferente de la que está usando la consulta. La solución es volver a rellenar (volver a generar) los catálogos de texto completo con los nuevos separadores de palabras de modo que los comportamientos en el momento de la indización y en el momento de la consulta sean idénticos. Puedes elegir la opción Reconstruir para lograr esto, o puedes reconstruir manualmente tras elegir la opción Importar .
¿Se han generado índices de texto completo en columnas de clave de texto completo cuyo tipo de datos es Integer?
La regeneración realiza optimizaciones internas que, en algunos casos, mejoran el rendimiento de las consultas del índice de texto completo actualizado. En concreto, si tiene catálogos de texto completo que contienen índices de texto completo para los que la columna de clave de texto completo de la tabla base es un tipo de datos Integer, al volver a generarlos, se logra un rendimiento ideal de las consultas de texto completo después de la actualización. En este caso, deberías usar la opción Reconstruir .
Nota:
Para índices de texto completo, la columna que sirve como clave de texto completo debe ser un tipo de dato entero. Para más información, véase Mejorar el rendimiento de índices en texto completo.
¿Cuál es la prioridad para poner en línea la instancia del servidor?
El proceso de importación o regeneración durante la actualización consume muchos recursos de la CPU, lo que retrasa la actualización y puesta en línea del resto de la instancia del servidor. Si es importante poner en línea lo antes posible la instancia del servidor y desea ejecutar manualmente el rellenado después de la actualización, la opción Restablecer resulta adecuada.
Garantizar resultados de consulta coherentes después de importar un índice de texto completo
Si se importa un catálogo de texto completo al actualizar una base de datos de SQL Server 2005 (9.x), pueden aparecer desajustes entre la consulta y el contenido del índice de texto completo debido a diferencias en el comportamiento de los descifradores de palabras antiguos y nuevos. En este caso, para garantizar una coincidencia total entre las consultas y el contenido del índice de texto completo, elija una de las opciones siguientes:
Recompile el catálogo de texto completo que contiene el índice de texto completo con ALTER FULLTEXT CATALOG:
ALTER FULLTEXT CATALOG <catalog_name> REBUILD;Emitir un
FULL POPULATIONen el índice de texto completo con ALTER FULLTEXT INDEX:ALTER FULLTEXT INDEX ON <table_name> START FULL POPULATION;
Para más información sobre los separadores de palabras, consulte Configurar y administrar separadores de palabras y lematizadores.
Actualizar archivos de palabras irrelevantes a listas de palabras irrelevantes
Cuando se actualiza una base de datos desde SQL Server 2005 (9.x), los archivos de palabras irrelevantes dejan de usarse. Sin embargo, los archivos antiguos de palabra irrelevante se almacenan en la carpeta FTDATA\FTNoiseThesaurusBak y puede usarlos más adelante al actualizar o compilar las listas de palabras irrelevantes SQL Server correspondientes.
Después de actualizar desde SQL Server 2005 (9.x):
Si nunca agregó, modificó ni eliminó archivos de palabras irrelevantes de la instalación de SQL Server 2005 (9.x), la lista de palabras irrelevantes del sistema será suficiente para cubrir sus necesidades.
Si los archivos de palabras irrelevantes se modificaron en SQL Server 2005 (9.x), esas modificaciones se perderán durante la actualización. Para volver a crear las modificaciones, debe hacerlo de forma manual en la lista de palabras irrelevantes correspondiente. Para obtener más información, consulte ALTER FULLTEXT STOPLIST.
Si no desea aplicar palabras irrelevantes a los índices de texto completo (por ejemplo, si ha eliminado o borrado los archivos de palabra irrelevante en la instalación de SQL Server 2005 (9.x), debe desactivar la lista de palabras irrelevantes para cada índice de texto completo actualizado. Ejecute la siguiente instrucción Transact-SQL (reemplazando la base de datos por el nombre de la base de datos actualizada y la tabla por el nombre de la tabla):
USE [database]; GO ALTER FULLTEXT INDEX ON [table] SET STOPLIST OFF; GOLa
STOPLIST OFFcláusula elimina el filtrado de palabras cerradas y activa una población de la tabla, sin filtrar ninguna palabra considerada ruido.
Copia de seguridad y catálogos de texto completo importados
Para catálogos de texto completo que se reconstruyen o reinician durante la actualización (y para nuevos catálogos de texto completo), el catálogo de texto completo es un concepto lógico y no reside en un grupo de archivos. Por consiguiente, para hacer una copia de seguridad de un catálogo de texto completo, debe identificar cada grupo de archivos que contenga un índice de texto completo del catálogo y hacer una copia de seguridad de cada uno de ellos, uno por uno. Para obtener más información, consulte Copia de seguridad y restauración de catálogos e índices de texto completo.
En el caso de los catálogos de texto completo importados desde SQL Server 2005 (9.x), el catálogo de texto completo sigue siendo un archivo de base de datos en su propio grupo de archivos. El proceso de copia de seguridad de SQL Server 2005 (9.x) para los catálogos de texto completo todavía se aplica, salvo que el servicio MSFTESQL no existe en SQL Server. Para obtener información sobre el proceso de SQL Server 2005 (9.x), consulte Copias de seguridad y restauración de catálogos de texto completo en libros digitales de SQL Server 2005.
Migración de índices de texto completo al actualizar una base de datos
Los archivos de base de datos y los catálogos de texto completo de una versión anterior de SQL Server se pueden actualizar a una instancia existente mediante el asistente para adjuntar, restaurar o copiar base de datos. Los índices de texto completo de SQL Server de 2005 (9.x), si los hay, se importan, restablecen o se vuelven a generar. La upgrade_option propiedad server especifica qué opción de actualización de texto completo usa la instancia del servidor durante estas actualizaciones de base de datos.
Después de adjuntar, restaurar o copiar cualquier base de datos de SQL Server 2005 (9.x) a una instancia más reciente, la base de datos queda disponible de inmediato y se actualiza automáticamente. Dependiendo de la cantidad de datos que se indexen, la importación puede tardar varias horas y la reconstrucción puede tardar hasta 10 veces más. Cuando se establece la opción de actualización para importar, si un catálogo de texto completo no está disponible, se vuelven a generar los índices de texto completo asociados.
Cambio del comportamiento de actualización de texto completo en una instancia de servidor
Transact-SQL: usar la
upgrade_optionacción de sp_fulltext_serviceSQL Server Management Studio: use la Opción de actualización de texto completo del cuadro de diálogo Propiedades del servidor. Para obtener más información, vea Administrar y supervisar la búsqueda de texto completo para una instancia de servidor.
Consideraciones para restaurar un catálogo de texto completo de SQL Server 2005 (9.x)
Un método para actualizar datos de texto completo desde una base de datos de SQL Server 2005 (9.x) es restaurar una copia de seguridad completa de la base de datos en una instancia más reciente de SQL Server.
Al importar un catálogo de texto completo de SQL Server 2005 (9.x), puede realizar copias de seguridad y restaurar la base de datos y el archivo de catálogo. El comportamiento es el mismo que en SQL Server 2005 (9.x):
La copia de seguridad completa de la base de datos incluye el catálogo de texto completo. Para hacer referencia al catálogo de texto completo, use su nombre de archivo SQL Server 2005 (9.x), sysft_+catalog-name.
Si el catálogo de texto completo está sin conexión, se produce un error en la copia de seguridad.
Para obtener más información sobre la copia de seguridad y restauración de catálogos de texto completo de SQL Server 2005 (9.x), consulte Copias de seguridad y restauración de índices y catálogos de texto completo y copias de seguridad y restauración de archivos y catálogos de texto completo en SQL Server 2005 (9.x) Books Online.
Cuando la base de datos se restaura en una instancia más reciente de SQL Server, se crea un nuevo archivo de base de datos para el catálogo de texto completo. El nombre predeterminado de este archivo es ftrow_catalog-name.ndf. Por ejemplo, si el nombre de tu catálogo es cat1, el nombre predeterminado del archivo de base de datos de SQL Server sería ftrow_cat1.ndf. Pero si el nombre predeterminado ya se está usando en el directorio de destino, el nuevo archivo de base de datos se llamaría ftrow_GUID-nombre{}.ndf de catálogo, donde GUID es el identificador global único del nuevo archivo.
Una vez importados los catálogos, sys.database_files y sys.master_files se actualizan para quitar las entradas del catálogo, y la columna path en sys.fulltext_catalogs se establece en NULL.
Realizar una copia de seguridad de una base de datos
- Copias de seguridad completas de la base de datos
- Copias de seguridad de registros de transacciones (solo modelo de recuperación completa)
Restauración de una copia de seguridad de base de datos
- Restauraciones de base de datos completas (modelo de recuperación simple)
- Restauraciones de base de datos completas (modelo de recuperación completa)
Ejemplo
El siguiente ejemplo utiliza la MOVE cláusula en la RESTORE sentencia para restaurar una base de datos de SQL Server 2005 (9.x) llamada ftdb1. Los archivos de base de datos, registro y catálogo de SQL Server 2005 (9.x) se mueven a nuevas ubicaciones de la instancia del servidor SQL Server, como se indica a continuación:
El archivo de base de datos,
ftdb1.mdf, se mueve aC:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf.El archivo de registro,
ftdb1_log.ldf, se mueve a un directorio de registro de la unidad de disco de registro, log_drive:\log_directory\ftdb1_log.ldf.Los archivos de catálogo que corresponden al catálogo de
sysft_cat90se mueven aC:\temp. Tras importar los índices de texto completo, se colocan automáticamente en un archivo de base de datos,C:\ftrow_sysft_cat90.ndfyC:\tempse eliminarán.
RESTORE DATABASE [ftdb1] FROM DISK = N'C:\temp\ftdb1.bak'
WITH FILE = 1,
MOVE N'ftdb1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf',
MOVE N'ftdb1_log' TO N'log_drive:\log_directory\ftdb1_log.ldf',
MOVE N'sysft_cat90' TO N'C:\temp';
Adjuntar una base de datos de SQL Server 2005
En SQL Server 2008 (10.0.x) y versiones posteriores, un catálogo de texto completo es un concepto lógico que hace referencia a un grupo de índices de texto completo. El catálogo de texto completo es un objeto virtual que no pertenece a ningún grupo de archivos. Sin embargo, al adjuntar una base de datos de SQL Server 2005 (9.x) que contiene archivos de catálogo de texto completo en una instancia de servidor de SQL Server más reciente, los archivos de catálogo se adjuntan desde su ubicación anterior junto con los demás archivos de base de datos, igual que en SQL Server 2005 (9.x).
El estado de cada catálogo de texto completo adjunto en SQL Server es el mismo que cuando la base de datos se desasoció de SQL Server 2005 (9.x). Si la operación de desasociación suspendió la población de algún índice de texto completo, la población se reanuda en SQL Server y el índice de texto completo queda disponible para la búsqueda de texto completo.
Si SQL Server no encuentra un archivo de catálogo de texto completo o si el archivo de texto completo se movió durante la operación de asociación sin especificar una nueva ubicación, el comportamiento depende de la opción de actualización de texto completo seleccionada. Si la opción de actualización de texto completo es Importar o Volver a generar, se vuelve a generar el catálogo de texto completo adjunto. Si la opción de actualización de texto completo es Restablecer, se restablece el catálogo de texto completo adjunto.
Para más información sobre cómo desacoplar y adjuntar una base de datos, consulte Separar y adjuntar bases de datos, CREATE DATABASE, sp_attach_db y sp_detach_db.