2008-11-19 7 views
2

Nous recherchons une solution gratuite pour compresser nos sauvegardes SQL Server pour SQL Server 2005. Je suis conscient de l'édition freeware SQL Safe, mais je me demandais ce que les autres pensaient de stocker des fichiers de sauvegarde dans des dossiers compressés à atteindre le résultat souhaité. Cela nous permettrait d'utiliser les tâches de sauvegarde SQL natives et la compression native des fenêtres, éliminant ainsi le besoin de produits tiers.Sauvegardes SQL dans un dossier compressé

Je n'ai pas utilisé les dossiers compressés pour quelque chose dans le passé. Est-ce une idée viable? Y a-t-il des problèmes prévisibles avec l'intégrité des sauvegardes dans un dossier compressé?

Répondre

1

Indice rapide de google: backing-up-to-a-ntfs-compressed-folder. Semble que la taille de la base de données peut créer des problèmes.

Qu'en est-il des solutions freeware alors vous pouvez exécuter 7zip dans un lot planifié après la sauvegarde, devrait gérer correctement les gros fichiers. Vous devez déplacer les sauvegardes hors serveur de production de toute façon :)

0

J'utilise Syncback Freeware pour copier et compresser automatiquement les fichiers dans un autre dossier. Vous économisez des tonnes d'espace de cette façon. Je fais cela depuis plusieurs années et cela a fonctionné parfaitement.

0

Nous avons dans la région de 100 bases de données sur les serveurs de notre fournisseur d'accès Internet

Le fournisseur d'accès a des sauvegardes complètes sur bande, mais ils prennent beaucoup de temps pour quoi que ce soit la restauration ... donc nous avons besoin de garder des sauvegardes « en ligne » pour une période de temps raisonnable afin que nous puissions récupérer d'eux d'abord et avant tout.

Nous produisons des sauvegardes complètes une fois par semaine et des sauvegardes différentielles quotidiennes. Nous conservons les sauvegardes complètes pendant un mois et les sauvegardes différentielles pendant sept jours. Nous produisons des sauvegardes TLog toutes les 10 minutes, mais nous les stockons uniquement (en ligne) pendant deux jours. Donc, nous pouvons récupérer à point-dans-temps pour les 2 jours précédents, à "minuit" pour les 7 derniers jours et à "dimanche avant" pour les 4 dernières semaines.

L'utilisation de sauvegardes différentielles réduit la taille totale de nos sauvegardes et nous a permis de conserver plus de temps écoulé en ligne.

Toutes les sauvegardes sont stockées dans des dossiers compressés NTFS.

Lors de la maintenance de la base de données (Index defrag etc.), nous augmentons la fréquence de nos sauvegardes TLog à tous les niveaux. minute. Nous avons constaté que la maintenance DB était la seule chose qui augmentait la taille de la base de données, ce qui nous a permis de réduire la taille de nos bases de données et de libérer de l'espace disque pour plus de sauvegardes. (Sauvegarde généralement sur des lecteurs différents au format MDF ou LDF, mais les opérations Batch copient des fichiers de sauvegarde anciens et périmés sur des lecteurs contenant du MDF/LDF juste pour que nous puissions les garder en ligne)

P.S. SQL 2008 a intégré la capacité de sauvegarde compressée, au cas où vous envisagez de mettre à niveau

3

Je suis l'auteur d'un projet open source (GPL v3) qui fait ce que vous cherchez. Il s'agit d'un outil de ligne de commande (à programmer dans les tâches planifiées dans Windows) et sauvegardes à gzip, zip (en particulier zip64 en raison de la limitation de 4 Go avec des fichiers zip réguliers), ou des fichiers bzip2. Vous pouvez utiliser l'outil pour restaurer directement à partir des fichiers compressés, ou vous pouvez décompresser les fichiers compressés (qui sont des fichiers * .bak standard), puis utiliser l'interface graphique de SQL Server pour restaurer.

Il est appelé SQL Server compressé de sauvegarde, trouvé ici: http://sourceforge.net/projects/mssqlcompressed/

Un exemple de commande serait:

msbp.exe backup "db(database=model)" "zip64" "local(path=c:\model.full.bak.zip)" 
0

Bien que je ne recommande pas la sauvegarde directement dans un dossier compressé, vous pouvez certainement sauvegarder Dans un dossier normal, utilisez un script PowerShell pour compresser chaque fichier individuellement lorsque le serveur n'est pas trop occupé. Voici un extrait de ce que j'utilise. Il récursivement par le répertoire de sauvegarde, en compressant chaque fichier en utilisant la compression NTFS, jusqu'à une certaine taille. Ce n'est pas la meilleure solution. ma solution préférée consistera à utiliser la compression de sauvegarde SQL 2008/2012 à la place de ma mise à niveau.

$max_compressible_size = 10*1024*1024*1024 #10 gigs 

$files = Get-ChildItem -recurse | where {$_.Extension -match "(trn)|(diff)|(bak)"} 

foreach ($file in $files) {  
    $attr = (Get-ItemProperty $file.fullname).Attributes 

    if ($attr.ToString() -notmatch ".*Compressed.*" -and $file.Length -le $max_compressible_size) { 
     write-output $file.FullName 
     compact /C $file.FullName 
    } 
} 
Questions connexes