Habilitar los requisitos previos de FileTables
Describe cómo habilitar los requisitos previos para crear y usar FileTables.
En este tema
Deseo…
Habilitar los requisitos previos de FileTable
Habilitar FILESTREAM en el nivel de instancia
Habilitar FILESTREAM en el nivel de instancia
Habilitar FILESTREAM a través del firewall
Proporcionar un grupo de archivos de FILESTREAM
Habilitar el acceso no transaccional en el nivel de base de datos
Comprobar si el acceso no transaccional está habilitado en las bases de datos
Cómo: habilitar el acceso no transaccional en el nivel de base de datos
Especificar un directorio para FileTables en el nivel de base de datos
Especificar un directorio para FileTables en el nivel de base de datos
Cómo: ver los nombres de directorio existentes para la instancia
Requisitos y restricciones para el directorio de base de datos
Habilitar los requisitos previos para FileTable
Para habilitar los requisitos previos para crear y usar FileTables, habilite los siguientes elementos:
En el nivel de instancia:
- Habilitar FILESTREAM en el nivel de instancia
En el nivel de base de datos:
Proporcionar un grupo de archivos de FILESTREAM en el nivel de base de datos
Habilitar el acceso no transaccional en el nivel de base de datos
Especificar un directorio para FileTables en el nivel de base de datos
[ARRIBA]
Habilitar FILESTREAM en el nivel de instancia
Las FileTables amplían las capacidades de la característica FILESTREAM de SQL Server. Por lo tanto, debe habilitar FILESTREAM para el acceso de E/S de archivos en el nivel de Windows y en la instancia de SQL Server antes de poder crear y usar FileTables.
Cómo: habilitar FILESTREAM en el nivel de instancia
Para obtener información acerca de cómo habilitar FILESTREAM, vea Habilitar y configurar FILESTREAM.
Cuando se llama a sp_configure para habilitar FILESTREAM en el nivel de instancia, tiene que establecer la opción filestream_access_level en 2. Para obtener más información, vea filestream access level (opción de configuración del servidor).
[ARRIBA]
Habilitar FILESTREAM a través del firewall
Para obtener información acerca de cómo habilitar FILESTREAM a través del firewall, vea Configurar un Firewall para el acceso de FILESTREAM.
[ARRIBA]
Proporcionar un grupo de archivos de FILESTREAM en el nivel de base de datos
Para poder crear tablas FileTable en una base de datos, esta debe tener un grupo de archivos FILESTREAM. Para obtener más información acerca de este requisito previo, vea crear una base de datos habilitada para FILESTREAM.
[ARRIBA]
Habilitar el acceso no transaccional en el nivel de base de datos
Las FileTables permiten que las aplicaciones Windows obtengan un identificador de archivo de Windows en los datos FILESTREAM sin que sea necesaria ninguna transacción. Para permitir este acceso no transaccional a los archivos almacenados en SQL Server, debe especificar el nivel deseado de acceso no transaccional en el nivel de base de datos para cada base de datos que contenga FileTables.
Cómo: comprobar si el acceso no transaccional está habilitado en las bases de datos
Consulte la vista de catálogo sys.database_filestream_options (Transact-SQL) y compruebe las columnas non_transacted_access y non_transacted_access_desc.
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;
GO
[ARRIBA]
Cómo: habilitar el acceso no transaccional en el nivel de base de datos
Los niveles disponibles de acceso no transaccional son FULL, READ_ONLY y OFF.
Especificar el nivel de acceso no transaccional mediante Transact-SQL
Cuando cree una nueva base de datos, llame a la instrucción CREATE DATABASE (Transact-SQL) con la opción FILESTREAM de NON_TRANSACTED_ACCESS.
CREATE DATABASE database_name WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' )
Cuando modifique una base de datos existente, llame a la instrucción ALTER DATABASE (Transact-SQL) con la opción FILESTREAM de NON_TRANSACTED_ACCESS.
ALTER DATABASE database_name SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' )
Especificar el nivel de acceso no transaccional mediante SQL Server Management Studio
Puede especificar el nivel de acceso no transaccional en el campo Acceso sin transacciones de FILESTREAM de la página Opciones del cuadro de diálogo Propiedades de la base de datos. Para obtener más información sobre este cuadro de diálogo, vea Propiedades de la base de datos (página Opciones).
[ARRIBA]
Especificar un directorio para FileTables en el nivel de base de datos
Cuando habilite el acceso no transaccional a archivos en el nivel de base de datos, puede proporcionar el nombre de un directorio opcionalmente al mismo tiempo mediante la opción DIRECTORY_NAME. Si no proporciona ningún directorio cuando habilite el acceso no transaccional, debe proporcionarlo posteriormente antes de que pueda crear FileTables en la base de datos.
En la jerarquía de carpetas de FileTable, este directorio de nivel de base de datos se convierte en el secundario del nombre del recurso compartido especificado para FILESTREAM en el nivel de instancia y en el primario de las FileTables creadas en la base de datos. Para obtener más información, vea Trabajar con directorios y rutas de acceso de FileTables.
Especificar un directorio para FileTables en el nivel de base de datos
El nombre que especifique debe ser único en toda la instancia para los directorios de base de datos.
Especificar un directorio para FileTables mediante Transact-SQL
Cuando cree una nueva base de datos, llame a la instrucción CREATE DATABASE (Transact-SQL) con la opción FILESTREAM de DIRECTORY_NAME.
CREATE DATABASE database_name WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' ); GO
Cuando modifique una base de datos existente, llame a la instrucción ALTER DATABASE (Transact-SQL) con la opción FILESTREAM de DIRECTORY_NAME. Cuando use estas opciones para cambiar el nombre del directorio, la base de datos se debe bloquear de forma exclusiva y sin identificadores de archivo abiertos.
ALTER DATABASE database_name SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' ); GO
Cuando adjunte una base de datos, llame a la instrucción CREATE DATABASE (Transact-SQL) con la opción FOR ATTACH y con la opción FILESTREAM de DIRECTORY_NAME.
CREATE DATABASE database_name FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' ); GO
Cuando restaure una base de datos, llame a la instrucción RESTORE (Transact-SQL) con la opción FILESTREAM de DIRECTORY_NAME.
RESTORE DATABASE database_name WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' ); GO
Especificar un directorio para las FileTables mediante SQL Server Management Studio
Puede especificar el nombre de un directorio en el campo Nombre de directorio de FILESTREAM de la página Opciones del cuadro de diálogo Propiedades de la base de datos. Para obtener más información sobre este cuadro de diálogo, vea Propiedades de la base de datos (página Opciones).
[ARRIBA]
Cómo: ver los nombres de directorio existentes para la instancia
Para ver la lista de nombres de directorio existentes de la instancia, consulte la vista de catálogo sys.database_filestream_options (Transact-SQL) y compruebe la columna filestream_database_directory_name.
SELECT DB_NAME ( database_id ), directory_name
FROM sys.database_filestream_options;
GO
[ARRIBA]
Requisitos y restricciones para el directorio de base de datos
Establecer el valor de DIRECTORY_NAME es opcional cuando llame a CREATE DATABASE o a ALTER DATABASE. Si no especifica ningún valor para DIRECTORY_NAME, el nombre del directorio continúa siendo NULL. Sin embargo, no puede crear FileTables en la base de datos hasta que especifique un valor para DIRECTORY_NAME en el nivel de base de datos.
El nombre de directorio que proporcione debe cumplir los requisitos del sistema de archivos de un nombre de directorio válido.
Cuando la base de datos contenga FileTables, no puede volver a establecer el valor de DIRECTORY_NAME en NULL.
Cuando adjunte o restaure una base de datos, se produce un error en la operación si la nueva base de datos tiene un valor para DIRECTORY_NAME que ya exista en la instancia de destino. Especifique un valor único para DIRECTORY_NAME cuando llame a CREATE DATABASE FOR ATTACH o a RESTORE DATABASE.
Cuando actualice una base de datos existente a SQL Server 2012, el valor de DIRECTORY_NAME es NULL.
Cuando habilite o deshabilite el acceso no transaccional en el nivel de base de datos, la operación no comprueba si se ha especificado el nombre del directorio o si es único.
Cuando quite una base de datos habilitada para FileTables, se quitan el directorio de nivel de base de datos y todas las estructuras de directorio de todas las FileTables contenidas en él.
[ARRIBA]