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

Filestream : Configuration de la base de données

Uncategorized - Par iTPro - Publié le 08 septembre 2014

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.

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 gratuitement cette ressource

Découvrir DevOps, l’essentiel pour tous les métiers

Découvrir DevOps, l’essentiel pour tous les métiers

Vous vous intéressez aux systèmes d’informations innovants ainsi qu’aux notions d’agilité dans le monde de IT ?DevOps est une démarche qui permet aux équipes de développement et d’infrastructure de collaborer plus efficacement face à ces nouvelles exigences du mode logiciel. À l’ère du continuous delivery et du cloud, DevOps s’inscrit dans le prolongement des méthodes agiles et s’inspire d’autres expériences telles que Lean Startup, Scrum… L’originalité de ce livre est d’aborder le sujet sous différents points de vue pour répondre au mieux aux problématiques de tous les métiers concernés qu’il s’agisse des développeurs, des opérationnels, mais aussi du management de la DSI et des acteurs métiers. Cet ouvrage offre ainsi une vision à 360° de la démarche DevOps.

Uncategorized - Par iTPro - Publié le 08 septembre 2014