Sauvegarder et restaurer la base de données du serveur SQL avec le groupe de fichiers FILESTREAM

8

J'utilise SQL Server et j'ai une énorme base de données avec deux groupes de fichiers:

  • Primaire : qui contient toutes les données sauf les gros fichiers (1 Mo +)
  • FILESTREAM (lecture / écriture) : qui contient les gros fichiers

Maintenant, le scénario de sauvegarde est:

  • Chaque vendredi, obtenez une sauvegarde complète (2 h)
  • Chaque jour de la semaine, sauf le vendredi, bénéficiez d'une sauvegarde différentielle (2 h)

Étant donné que la base de données est volumineuse et qu'elle est en production sur un serveur distant, chaque fois que je souhaite amener la base de données dans mon environnement local pour créer une base de données de test (chaque semaine), je dois apporter à la fois le flux principal et le flux de fichiers.

Je voudrais pouvoir changer la façon dont les sauvegardes et les restaurations sont effectuées, de telle manière qu'il ne restait plus qu'à amener le groupe de fichiers principal, en ignorant le flux de fichiers. De cette façon, chaque semaine, je n'apportais que le groupe de fichiers principal, et pas toutes les informations qui supposent le flux de fichiers.

Je pense qu'il peut y avoir beaucoup de problèmes, et toutes les références de filestream peuvent être perdues lors de l'accès aux fichiers. Je voudrais savoir s'il est possible de modifier le contenu de toutes les colonnes filestream lors d'une sauvegarde, ou d'utiliser un autre filestream hébergé dans l'environnement de test. De plus, j'ai entendu parler de la restauration fragmentaire de seulement certains groupes de fichiers, mais j'ai de nombreux doutes sur la façon de l'exécuter.

Question 1: puis-je avoir ce scénario?

Question 2: est-ce une bonne idée de n'avoir qu'une seule sauvegarde complète et d'apporter des sauvegardes différentielles / journaux de transactions à l'environnement de test?

Question 3: puis-je avoir un meilleur scénario pour sauvegarder et restaurer?

Je suis à l'écoute des recommandations. Si vous avez un exemple, veuillez me montrer avec une requête T-SQL.

Mario Navarro Claras
la source
Présentation de Filestream nous dit explicitement que vous pouvez exclure des groupes FILESTREAM de vos sauvegardes. L'implémentation TSQL serait génial à voir, cependant
clifton_h
Oui, vous pouvez exclure FILESTREAM de votre sauvegarde, mais dans le processus de restauration, vous devrez le fournir. Je pense que c'est toujours un besoin lorsque votre groupe de flux de fichiers est en lecture-écriture. Cela signifie que vous pouvez effectuer une sauvegarde partielle uniquement de vos données et une autre sauvegarde comprenant des groupes de fichiers en lecture-écriture (qui contient les fichiers)
Mario Navarro Claras

Réponses:

1

Je voudrais savoir s'il est possible de modifier le contenu de toutes les colonnes filestream lors d'une sauvegarde

Non.

Je créerais ma base de données de test avec le même schéma que la base de données de production, puis j'écrirais un script personnalisé pour synchroniser les données dans le groupe de fichiers principal (c'est assez facile car votre système de production est la source, donc la synchronisation n'est que dans un seul sens ).

Ensuite, avec les données de filestream, je stub les fichiers, ce qui pourrait être fait de plusieurs façons. Du haut de ma tête, je générerais en quelque sorte des fichiers à zéro octet du côté test.

Randolph West
la source