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
Azure SQL Database
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 utiliza su propio conjunto de separadores de palabras, algoritmos de derivación y filtros, en lugar de depender de la versión de estos componentes del sistema operativo. También es más fácil registrar y configurar estos componentes en cada una de las instancias. Para obtener más información, vea Configurar y administrar separadores de palabras y lematizadores para la búsqueda (SQL Server) y Configurar y administrar filtros para la búsqueda.
Anfitrión del demonio de filtro
Los procesos host del daemon de filtro de texto completo son procesos que cargan y ejecutan de forma segura componentes externos extensibles utilizados para la indexación y las consultas, como los divisores de palabras, los lematizadores y los filtros, sin comprometer la integridad del Motor de texto completo. Una instancia del servidor utiliza un proceso multihilo para todos los filtros multihilo y un proceso de un solo hilo para todos los filtros de un solo hilo.
El servicio lanzador de FDHOST (MSSQLFDLauncher) propaga la información de la cuenta de servicio a los procesos host del demonio de filtro de una instancia específica de SQL Server. Para obtener información sobre la configuración de la cuenta de servicio, vea Configurar la cuenta de servicio para el iniciador del demonio 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 actualiza 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
Al actualizar una instancia de SQL Server, la interfaz de usuario le permite elegir una de las siguientes opciones de actualización de 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, cuando se utiliza una sola CPU, la importación se ejecuta 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:
La recompilación se puede ejecutar en modo de varios subprocesos; además, si hay más de 10 CPU disponibles y permite que el proceso de recompilación las use todas, dicho proceso puede resultar más rápido que el de importación.
Si un catálogo de texto completo no está disponible, se vuelven a generar los índices de texto completo asociados.
Para obtener información sobre el efecto de importar el índice de texto completo, consulte Consideraciones para elegir una opción de actualización de texto completo más adelante en este artículo.
Rebuild
Los catálogos de texto completo se vuelven a generar con los separadores de palabras nuevos y mejorados. 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. Al actualizar desde SQL Server 2005 (9.x), se quitan los archivos de catálogo de texto completo, pero se conservan los metadatos de los catálogos de texto completo y los í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 se ejecute manualmente una población completa, una vez completada la actualización.
Consideraciones sobre la elección de una opción de actualización de texto completo
Cuando elija la opción de actualización, tenga en cuenta lo siguiente:
¿Necesita coherencia en los resultados de consulta?
SQL Server instala nuevos separadores de palabras para su uso por la búsqueda 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 ejecuta una consulta de texto completo que busca una frase que el separador de palabras de una versión anterior de SQL Server y el separador de palabras actual dividen de forma diferente, es posible que no se recupere un documento o una fila que contenga la frase. Esto se debe a que las frases indexadas se dividieron con una lógica distinta de la que usa 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. Puede elegir la opción Recompilar para realizar esta acción, o puede recompilar manualmente después de 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 cuya columna de clave de texto completo de la tabla base es de tipo de datos entero, al volver a generarlos se obtiene un rendimiento óptimo de las consultas de texto completo después de la actualización. En este caso, le recomendamos encarecidamente usar la opción Reconstruir.
Nota:
Para los índices de texto completo, se recomienda que la columna que actúa como la clave de texto completo sea un tipo de dato entero. Para obtener más información, vea Mejorar el rendimiento de los índices de 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 la instancia del servidor lo antes posible y si está dispuesto a realizar una población manual después de la actualización, Restablecer es apropiado.
Garantizar resultados de consulta coherentes después de importar un índice de texto completo
Si se importó un catálogo de texto completo al actualizar una base de datos de SQL Server 2005 (9.x), es posible que se produzcan discrepancias entre la consulta y el contenido del índice de texto completo debido a diferencias en el comportamiento de los separadores 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;Ejecute una POBLACIÓN COMPLETA en el índice de texto completo con ALTER FULLTEXT INDEX:
ALTER FULLTEXT INDEX ON <table_name> START FULL POPULATION;
Para obtener más información sobre los separadores de palabras, vea Configurar y administrar separadores de palabras y lematizadores para la búsqueda (SQL Server).
Convertir archivos de palabras vacías en listas de exclusión
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 palabras vacías se almacenan en la carpeta FTDATA\FTNoiseThesaurusBak, y puede utilizarlos más adelante al actualizar o crear las listas de palabras vacías correspondientes de SQL Server.
Después de actualizar desde SQL Server 2005 (9.x):
Si nunca ha añadido, modificado ni eliminado archivos de palabras irrelevantes en su instalación de SQL Server 2005 (9.x), la lista de palabras irrelevantes del sistema debería satisfacer 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 esas actualizaciones, debe volver a crear manualmente esas modificaciones 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 palabras irrelevantes 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; ALTER FULLTEXT INDEX ON table SET STOPLIST OFF; GOLa cláusula STOPLIST OFF quita el filtrado de palabras irrelevantes y desencadena un rellenado de la tabla, sin filtrar las palabras consideradas como ruido.
Copia de seguridad y catálogos de texto completo importados
En el caso de los catálogos de texto completo que se vuelven a generar o restablecer durante la actualización (y para los 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) en una instancia más reciente, la base de datos estará disponible inmediatamente y, a continuación, se actualizará 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) consiste en 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 catalog-name 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 usa en el directorio de destino, el nuevo archivo de base de datos se denominará ftrow_catalog-name{GUID}.ndf, donde GUID es el identificador único global 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 bases de datos (SQL Server)
- Copias de seguridad del registro de transacciones (SQL Server) ( 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
En el ejemplo siguiente se usa la MOVE cláusula de la RESTORE instrucción para restaurar una base de datos de SQL Server 2005 (9.x) denominada 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. Una vez importados los índices de texto completo, se colocan automáticamente en un archivo de base de datos, C:\ftrow_sysft_cat90.ndf y se eliminará C:\temp.
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 obtener más información sobre cómo desasociar y adjuntar una base de datos, consulte Desasociación y asociación de bases de datos (SQL Server), CREATE DATABASE, sp_attach_db y sp_detach_db.