web-dev-qa-db-fra.com

SQL Server Filetable est-il approprié pour stocker des fichiers volumineux (plus de 10 Go)?

Il y a un projet de laboratoire. L'obligation de sauvegarder les données de laboratoire (données brutes et Infomation associée) pour la recherche depuis des années.

Donc, les données doivent être sauvegardées pendant des années, mais les données sont si grosses, toutes les données brutes sont supérieures à 10 Go. Si nous stockons les données brutes dans les informations FILETABLE et stockez des informations associées dans un Table SQL Server Standard, après des mois ou des années, la taille de la base de données sera si grosse que nous devons déplacer certaines données d'historique de la base de données.

Peut-être pourrions-nous utiliser l'ajout de fichiers (sur un disque dur différent) au groupe de fichiers FILESTREAM pour la filetable (pour stocker des données brutes), mais je pense que cela ne convient pas à la maintenance du serveur SQL. Nous devons conserver les données brutes et la cohérence des informations connexes.

Nous avons envisagé d'utiliser de la bande pour enregistrer les données brutes historiques. Nous voulons utiliser du disque dur pour enregistrer les dernières données brutes et utiliser du ruban adhésif pour enregistrer les données brutes historiques. Lorsque nous déplacons les données d'historique sur bande, nous enregistrons le déplacement dans une table de journaux, nous pouvons donc savoir où les données d'historique sont déplacées et la récupérent dès que possible.

Y a-t-il un bon conseil pour:

  1. Comment stocker les données brutes et les informations connexes?
  2. Est filetable approprié pour ce scénario?
  3. Y a-t-il une meilleure solution pour ce scénario?
6
huoxudong125

FILETABLE Données est construite sur la fonctionnalité FILESTREAM de SQL Server et utilise le système de fichiers Windows Server pour stocker VARBINARY(MAX) Données dans des fichiers NTFS discrets sur le système de fichiers du serveur lui-même. Ces données ne sont pas stockées dans la base de données, la taille du fichier de base de données n'inclut pas ces fichiers 10 Go +. Les sauvegardes de base de données vont, par défaut, incluent les données. Vous pouvez empêcher les sauvegardes SQL Server des données FILESTREAM à l'aide de sauvegardes partielles pour exclure les groupes de fichiers FileStream. Les données de filtreams ne sont pas cachées à l'aide de tampons SQL Server, le cache de fichier de systèmes d'exploitation est utilisé à la place.

Microsoft recommande d'utiliser FILESTREAM pour stocker des fichiers de moins de 1 Mo en moyenne, car cela annule l'efficacité gagnée à l'aide de l'AIP de fichier Win32 pour modifier les données impliquées. La taille maximale du fichier pour un fichier FILESTREAM est uniquement limitée par la taille de fichier maximale du système d'exploitation, qui pour les versions actuelles de NTFS est à toutes fins pratiques illimitées (16 exabytes). Il y a, par conception, aucune limitation placée sur la taille d'un objet FILESTREAM par SQL Server.

Si les métadonnées que vous avez l'intention de stocker dans SQL Server doivent être compatibles transactionnellement avec les données d'objet stockées dans le FILESTREAM vous devez utiliser FILETABLE/FILESTREAM. Si les données d'objet stockées dans ces fichiers de 10 Go + ne sont pas logiquement liées à des métadonnées stockées sur SQL Server, je vous attendrais à utiliser FILESTREAM pourrait être contre-productif.

En bref, cela dépend de votre cas d'utilisation exacte. Ajoutez plus de détails à votre question sur Pourquoi Vous voulez utiliser un FILETABLE.

FileStream Docs chez Microsoft: http://technet.microsoft.com/en-us/library/gg471497.aspx

[Éditer]

À la lumière de vos besoins pour stocker des données de rayons X binaires ainsi que des paramètres de la machine utilisées pour capturer les données de rayons X, il ressemble à l'utilisation précise pour un FILESTREAM. Cependant, au lieu d'archiver sur bande, j'envisagerais d'utiliser Datacore Sansymphony-v logiciel SAN avec plusieurs niveaux de stockage. Sansymphony-V vous permet d'étendre facilement et de manière fiable votre SAN avec des serveurs Windows à base de matières métiers peu coûteux à l'aide de 15k RPM Enterprise Drives (avec un niveau SSD, éventuellement) pour la base de données principale avec un niveau configuré avec des disques SATA standard 7200 RPM pour le stockage de la Données radiographiques. Sansymphony-V est certifié SQL Server et fournirait un moyen relativement peu coûteux de maintenir l'accès aux nouvelles données et les données plus ancienes sans système de gestion de données compliquée. Si la récupération après sinistre et la haute disponibilité est une préoccupation, la Tout entier Sansymphony-V SAN peut être reflété, sur site ou hors site sur des distances allant jusqu'à environ 100 km.

Juste pour la clarté, je ne suis en aucune manière associé à DataCore - j'aime simplement leur conception.

9
Max Vernon

Je dirais non. Vous enlevez dans des tonnes de problèmes et vous rencontrez beaucoup de coûts au fil du temps (licences).

Je suis tout-à-propos de stocker des données de biorité dans SQL quand c'est logique, mais les fichiers 10G seraient bien plus grands que ce que je suis à l'aise.

1
TomTom

Non, vous devez mettre les fichiers bruts dans un système optimisé pour stocker de grandes quantités de données: le système de fichiers. Seules les métadonnées devraient résider dans la base de données. Assurez-vous que votre application (en plus de l'administrateur système) peut accéder aux fichiers pour assurer l'intégrité.

0
Twinkles