> Tech > Filestream : Configuration de la base de données

Filestream : Configuration de la base de données

Tech - Par Renaud ROSSET - Publié le 08 septembre 2014
email

La base de données qui va recevoir les données FILESTREAM doit être configurée en conséquence.

Filestream : Configuration de la base de données

Tout d’abord, elle doit contenir au moins un Filegroup défini comme pouvant héberger les données FILESTREAM. Ce Filegroup est créé de la même manière que les Filegroups classiques, mais avec l’ajout de la clause CONTAINS FILESTREAM.

Filstream

En revanche, à l’inverse des autres Filegroups, celui-ci ne contiendra pas de fichiers de données (type NDF) mais plutôt un chemin vers l’emplacement du FileSystem qui hébergera les documents. Les notions de taille de fichier, pas de croissance de fichier, etc… n’ont donc pas lieu d’être dans ce cas. Lors de la définition de cet emplacement, tous les répertoires, sauf le dernier mentionné, doivent avoir été préalablement créés. A noter que depuis SQL Server 2012, il est possible de définir la MAXSIZE du data container et de définir plusieurs emplacements FILESTREAM dans un seul Filegroup.

Par ailleurs, le dossier cible doit se trouver sur un système de fichier de type NTFS, FILESTREAM n’étant pas supporté sur les autres types de système de fichiers (FAT, FAT32, et même ReFS, nouveau FileSystem Windows 2012 qui n’est aujourd’hui pas pris en charge par SQL Server 2012).

J’ajouterai enfin qu’il est tout à fait possible d’activer la compression NTFS sur le système de fichier hébergeant les fichiers FILESTREAM, permettant ainsi des gains de places substantiels.

Exemple :

CREATE DATABASE DB_FILESTREAM
ON
PRIMARY (NAME = DB_FILESTREAM_Data01,
FILENAME = ‘D:\MSSQL\Data\DB_FILESTREAM_Data01.
mdf’),
FILEGROUP FG1_FILESTREAM CONTAINS FILESTREAM DEFAULT(NAME =
FS1_DB_FILESTREAM,
FILENAME = ‘D:\MSSQL\FILESTREAM1’),
FILEGROUP FG2_FILESTREAM CONTAINS FILESTREAM (NAME = FS2_
DB_FILESTREAM,
FILENAME = ‘D:\MSSQL\FILESTREAM2’)
LOG ON (NAME = DB_FILESTREAM_Tlog,
FILENAME = ‘D:\MSSQL\Tlog\DB_FILESTREAM_Tlog01.
ldf’);

Dans l’exemple ci-dessus, le chemin D:\MSSQL doit exister mais les dossiers finaux FILESTREAM1 et FILESTREAM2 seront créés par le moteur lui-même.

Un coup d’oeil sur la vue système sys.database_files nous montre le type de chaque fichier (voir tableau ci-dessous).

name type type_desc physical_name
DB_FILESTREAM_Data01 0 ROWS D:\MSSQL\Data\DB_
FILESTREAM_Data01.mdf
DB_FILESTREAM_Tlog 1 LOG D:\MSSQL\Tlog\DB_
FILESTREAM_Tlog01.ldf
FS1_DB_FILESTREAM 2 FILESTREAM OD:\MSSQL\FILESTREAM1
FS2_DB_FILESTREAM 2 FILESTREAM D:\MSSQL\FILESTREAM2

select name, type, type_desc, physical_name from sys.database_files

Nous avons maintenant une base prête à accueillir des données FILESTREAM, voyons maintenant comment créer les tables qui contiendront les données à proprement parler.

Téléchargez cette ressource

Livre blanc Sécurité et Stockage des documents

Livre blanc Sécurité et Stockage des documents

Découvrez dans ce livre blanc Kyocera les outils logiciels qui permettent une approche holistique et efficace de la collecte, du stockage, de la gestion et de la sécurisation des documents en entreprise.

Tech - Par Renaud ROSSET - Publié le 08 septembre 2014