L'initialisation instantanée des fichiers est activée sur notre serveur SQL, de sorte que la partie «vide» du fichier de base de données n'est pas mise à zéro avant d'être allouée. Je crois comprendre que cela signifie que le fichier pourrait contenir des données «supprimées».
Alors maintenant, je veux envoyer une copie d'une base de données (probablement un fichier de sauvegarde) à l'extérieur de l'entreprise. Mais il y a toutes ces données "supprimées" potentiellement sensibles qui se trouvent à l'intérieur du fichier. Maintenant, je voudrais mettre à zéro la partie inutilisée du fichier.
Est-ce possible? J'imagine que je pourrais créer une nouvelle base de données et tout copier, ou peut-être restaurer une copie de la base de données sur un autre serveur sans l'initialisation instantanée des fichiers activée, puis être agressif avec une commande ShrinkFile pour supprimer la plupart ou la totalité de la partie inutilisée du fichier de base de données , mais existe-t-il une méthode moins manuelle et plus longue? Idéalement, une commande pour indiquer à SQL de mettre le fichier à zéro comme il l'aurait fait si l'initialisation instantanée du fichier n'avait pas été activée.
Réponses:
Une SAUVEGARDE SQL Server sauvegarde uniquement les extensions utilisées pour conserver les données. Les extensions inutilisées sont laissées par la sauvegarde. Lorsqu'une page est utilisée pour des données, elle sera formatée pour être utilisée selon les besoins, afin que cette page soit exempte d'anciennes données.
Par conséquent, tout ce que vous devez faire est de sauvegarder la base de données et de la restaurer ailleurs. Les fichiers restaurés seront de la même taille que la base de données d'origine, mais les extensions inutilisées seront créées à l'aide des capacités du serveur cible. Cela peut être initialisé complètement ou instantanément à l'aide des blocs de disque sur le serveur cible.
Cependant, étant donné que les extensions sont le niveau auquel les sauvegardes se produisent, les pages inutilisées dans l'étendue peuvent encore exposer certaines données lorsqu'elles sont restaurées sur un autre serveur. Pas autant que cela pourrait être exposé sur le serveur source, car les extensions inutilisées ne sont pas restaurées.
la source
Avez-vous envisagé d'en restaurer une copie, d'activer TDE qui le forcera à 0, puis de désactiver à nouveau TDE? Je n'ai pas testé cela mais je pense que cela fonctionnera, nous devrons cependant le tester.
Autre chose aussi, avez-vous envisagé d'en restaurer une copie avec IFI désactivé, de créer un nouveau groupe de fichiers avec de nouveaux fichiers, de le présélectionner, de reconstruire le cluster et d'autres index sur le nouveau groupe de fichiers, puis de supprimer le groupe de fichiers existant (s'il s'agit du groupe de fichiers principal vous devrez le réduire car vous ne pouvez pas supprimer le primaire)
la source