Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l'accès aux données blob en associant sql server 2008 et le système de fichiers ntfs.








télécharger 194.54 Kb.
titreRésumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l'accès aux données blob en associant sql server 2008 et le système de fichiers ntfs.
page7/11
date de publication05.07.2017
taille194.54 Kb.
typeRésumé
ar.21-bal.com > loi > Résumé
1   2   3   4   5   6   7   8   9   10   11

Configuration de SQL Server pour FILESTREAM


Chaque instance SQL Server qui va utiliser la fonctionnalité FILESTREAM doit être configurée séparément, au niveau Windows et au niveau SQL Server. Lorsque FILESTREAM est activé, une base de données doit être configurée pour stocker les données FILESTREAM, et uniquement ensuite des tables comportant des colonnes FILESTREAM peuvent être définies. Cette section explique comment configurer FILESTREAM au niveau SQL Server et comment créer des bases de données et des tables compatibles avec FILESTREAM. Elle explique également comment FILESTREAM interagit avec d'autres fonctionnalités de SQL Server 2008.

Considérations relatives à la sécurité


FILESTREAM requiert l'utilisation de la sécurité intégrée (authentification Windows). Lorsqu'une application utilisant Win32 tente d'accéder aux données FILESTREAM, l'utilisateur Windows est validé par SQL Server. Si l'utilisateur dispose d'un accès Transact-SQL aux données FILESTREAM, l'accès est également accordé au niveau Win32, tant que le jeton de transaction est obtenu dans le contexte de sécurité de l'utilisateur Windows qui exécute l'ouverture de fichier.

La spécification de l'authentification Windows provient de la nature des API d'E/S de fichier Windows.
La seule façon de passer l'identité du client de l'application cliente à SQL Server pendant une opération d'E/S de fichier consiste à utiliser le jeton Windows associé au thread du client.

Lorsque le conteneur de données FILESTREAM est créé, il est automatiquement protégé afin que le compte de service SQL Server et les membres du groupe builtin/Administrators aient accès
à l'arborescence de répertoires du conteneur de données. Vous devez éviter que le contenu du conteneur de données soit modifié, excepté via des méthodes transactionnelles prises en charge,
car les modifications apportées via d'autres méthodes entraîneront la corruption du conteneur.

Activation de FILESTREAM dans SQL Server


La deuxième étape d'activation de FILESTREAM s'effectue dans l'instance SQL Server 2008. Cette opération ne doit pas être effectuée tant que FILESTREAM n'est pas activé au niveau Windows, et le volume NTFS qui va stocker les données FILESTREAM n'a pas été correctement préparé (tel que le décrit la section « Configuration de Windows pour FILESTREAM » plus haut).

L'accès FILESTREAM est contrôlé dans SQL Server à l'aide de sp_configure pour affecter un des trois paramètres à l'option de configuration filestream_access_level. Les valeurs possibles sont :

  • 0 : désactiver la prise en charge de FILESTREAM pour cette instance

  • 1 : activer FILESTREAM pour l'accès Transact-SQL uniquement

  • 2 : activer FILESTREAM pour l'accès en continu Transact-SQL et Win32

L'exemple suivant montre comment activer FILESTREAM pour l'accès en continu Transact-SQL et Win32.

EXEC sp_configure filestream_access_level, 2;

GO

RECONFIGURE;

GO

L'instruction RECONFIGURE est nécessaire pour que la valeur récemment configurée prenne effet. Notez que si FILESTREAM n'a pas été activé au niveau Windows, il n'est pas activé au niveau SQL Server lors de l'exécution du code précédent. Vous trouverez la valeur actuelle configurée à l'aide du code suivant.

EXEC sp_configure filestream_access_level;

GO

Si FILESTREAM n'est pas configuré au niveau Windows, « config_value » dans la sortie de sp_configure est différent (c.-à-d., 0) de « run_value » après exécution de l'instruction RECONFIGURE.

Création d'une base de données compatible avec FILESTREAM


Une fois que FILESTREAM est activé aux niveaux Windows et SQL Server, un conteneur de données FILESTREAM peut être défini. Cette opération s'effectue en définissant un groupe de fichiers FILESTREAM dans une base de données. Il existe un mappage 1:1 entre les groupes de fichiers FILESTREAM et les conteneurs de données FILESTREAM.

Un groupe de fichiers FILESTREAM peut être défini lorsqu'une base de données est créée, ou il peut être créé séparément à l'aide d'une instruction ALTER DATABASE. L'exemple suivant crée un groupe de fichiers FILESTREAM dans une base de données existante.

ALTER DATABASE Production ADD

FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM;

GO

La clause CONTAINS FILESTREAM est nécessaire pour différencier le nouveau groupe de fichiers des groupes de fichiers ordinaires de base de données. Si la fonctionnalité FILESTREAM est désactivée, cette instruction échoue avec l'erreur suivante.

Msg 5591, Niveau 16, État 3, Ligne 1

La fonctionnalité FILESTREAM est désactivée.

En supposant que FILESTREAM est activé aux niveaux Windows et SQL Server, le groupe de fichiers est créé. À ce stade, le conteneur de données FILESTREAM est défini en ajoutant un seul fichier au groupe de fichiers. Le chemin d'accès spécifié est le chemin d'accès du répertoire qui va être créé en tant que racine du conteneur de données. Le chemin d'accès complet jusqu'au nom du répertoire final, mais qui ne le comprend pas, doit déjà exister. L'exemple suivant définit le conteneur de données pour le groupe de fichiers FileStreamGroup1 créé précédemment.

ALTER DATABASE Production ADD FILE (

NAME = FSGroup1File,

FILENAME = 'F:\Production\FSDATA')

TO FILEGROUP FileStreamGroup1;

GO

À ce stade, le répertoire FSDATA va être créé. Il est vide en dehors de deux éléments :

  • Le fichier filestream.hdr. Il s'agit des métadonnées FILESTREAM du conteneur de données.

  • Le répertoire $FSLOG. Il s'agit de l'équivalent FILESTREAM du journal des transactions d'une base de données.

Notez qu'une base de données peut contenir plusieurs groupes de fichiers FILESTREAM. Cela peut être utile pour distinguer le stockage d'objets blob de plusieurs tables de la base de données.

Création d'une table pour le stockage de données FILESTREAM


Une fois que la base de données possède un groupe de fichiers FILESTREAM, il est possible de créer des tables qui contiennent des colonnes FILESTREAM. Comme indiqué précédemment, une colonne FILESTREAM est définie comme colonne varbinary (max) qui a l'attribut FILESTREAM. Le code suivant crée une table avec une seule colonne FILESTREAM.

USE Production;

GO

CREATE TABLE DocumentStore (

DocumentID INT IDENTITY PRIMARY KEY,

Document VARBINARY (MAX) FILESTREAM NULL,

DocGUID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL

UNIQUE DEFAULT NEWID ())

FILESTREAM_ON FileStreamGroup1;

GO

Une table peut avoir plusieurs colonnes FILESTREAM, mais les données de toutes les colonnes FILESTREAM d'une table doivent être stockées dans le même groupe de fichiers FILESTREAM. Si la clause FILESTREAM_ON n'est pas spécifiée, le groupe de fichiers FILESTREAM défini comme étant le groupe de fichiers par défaut est utilisé. Cela peut ne pas être la configuration voulue et peut provoquer des problèmes de performances.

Une fois la table créée, le conteneur de données FILESTREAM doit contenir un autre répertoire, correspondant à la table, avec un sous-répertoire qui correspond à la colonne FILESTREAM dans la table. Ce sous-répertoire contiendra les fichiers de données une fois les données entrées dans la table. La structure du répertoire varie en fonction du nombre de colonnes FILESTREAM dont dispose une table et selon que la table est partitionnée ou non.

Notez que pour qu'une table possède plusieurs colonnes FILESTREAM, elle doit également avoir une colonne avec le type de données uniqueidentifier qui a l'attribut ROWGUIDCOL. Cette colonne ne doit pas autoriser les valeurs Null et doit avoir une contrainte de colonne unique de type UNIQUE ou PRIMARY KEY . La valeur du GUID de la colonne doit être fournie par une application lors de l'insertion de données ou par une contrainte DEFAULT qui utilise la fonction NEWID() (ou NEWSEQUENTIALID() si la réplication de fusion est configurée, comme indiqué dans la section « Combinaisons de fonctionnalités et restrictions » plus loin dans ce document).

Pour plus d'informations sur les détails et les restrictions sur le schéma de table et les options nécessaires, consultez la rubrique « CREATE TABLE (Transact-SQL) » de la documentation en ligne de SQL Server 2008 (http://msdn.microsoft.com/fr-fr/library/ms174979.aspx).

Configuration du garbage collection FILESTREAM


Les fichiers de données FILESTREAM dans le conteneur de données FILESTREAM ne peuvent pas être partiellement mis à jour. Cela signifie que toute modification apportée aux données BLOB de la colonne FILESTREAM crée un nouveau fichier de données FILESTREAM. L'ancien fichier doit être conservé jusqu'à ce qu'il ne soit plus nécessaire à des fins de récupération. Les fichiers qui représentent les données FILESTREAM supprimées, les insertions restaurées de données FILESTREAM, sont conservés.

Les fichiers qui ne sont plus nécessaires sont supprimés par le processus de garbage collection. Ce processus est automatique, contrairement aux services Windows SharePoint®, où le garbage collection doit être implémenté manuellement sur le magasin d'objets blob externe.

Toutes les opérations de fichier FILESTREAM sont mappées à un numéro séquentiel dans le journal
des transactions de la base de données. Tant que le journal des transactions est tronqué après le LSN d'opération FILESTREAM, le fichier n'est plus nécessaire et ne peut pas être récupéré par le garbage collector. Par conséquent, tout ce qui peut empêcher la troncation du journal des transactions peut également empêcher la suppression physique d'un fichier FILESTREAM. Exemples :

  • Les sauvegardes de journal n'ont pas été effectuées, en mode de récupération FULL ou BULK_LOGGED.

  • Il existe une transaction active de longue durée.

  • Le travail du lecteur du journal de réplication n'a pas été exécuté.

Le garbage collection FILESTREAM est une tâche en arrière-plan qui est déclenchée par le processus de point de contrôle de base de données. Un point de contrôle est automatiquement exécuté lorsque le journal des transactions a été généré. Pour plus d'informations, consultez la rubrique « CHECKPOINT et la partie active du journal » dans la documentation en ligne de SQL Server 2008 (http://msdn.microsoft.com/fr-fr/library/ms189573.aspx). Étant donné que les opérations de fichier FILESTREAM font l'objet d'une journalisation minimale dans le journal des transactions de la base de données, quelques instants peuvent s'écouler avant que le nombre d'enregistrements générés dans le journal des transactions déclenche un processus de point de contrôle et qu'une opération de garbage collection se produise. Si cela devient un problème, forcez le garbage collection à l'aide de l'instruction CHECKPOINT.
1   2   3   4   5   6   7   8   9   10   11

similaire:

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Résumé : le clustering de basculement sql server, qui inclut la prise...

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Installation du driver Microsoft sql server pour php
«Framework php sous iis : Copix Framework» pour l’installation de sql server Express 2008

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\2011 Certification sql server 2008: ts database Development 2010

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Lieu du stage
«Système de gestion de base de données relationnelles» dont le moteur de base de données est sql server

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Avertissement
«Framework php sous iis : Copix Framework» pour l’installation de sql server Express 2008

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Éléments fondamentaux de l'architecture de sql server

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Dbms : Oracle, Mysql, sqlite,sql server cm tools

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Résumé : les groupes de disponibilité sql server 2012 AlwaysOn offrent...

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Résumé : Les instances de cluster de basculement (fci) sql server...

Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql server 2008, qui permet le stockage et l\Performance Tuning Guidelines for Windows Server 2008 R2








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com