SQL Server 2008 – comment compresser les files de sauvegarde et passer au server distant

J'ai l'édition non-entreprise de SQL Server 2008. Je fais des sauvegardes nocturnes, zip manuellement les files, puis manuellement copyr vers un server distant.

J'ai besoin d'automatiser cela en utilisant des files batch. La copy de files d'un server à un autre est facile, mais comment puis-je automatiser le zipping de la sauvegarde en premier?

Le process complet dont j'ai besoin est:

  1. Exécutez la sauvegarde tous les soirs
  2. Zip la sauvegarde pour réduire la taille (avec un nom de file zip unique)
  3. Déplacez le file zip sur un server distant configuré en tant que lecteur réseau sur le server de database

J'avoue que la partie compression m'a rejeté. Tout conseil serait très bien accueilli.

Merci d'avance.

    Vous pouvez sauvegarder des bases de données avec le logiciel SQLBackupAndFTP . C'est un simple outil d'interface user avec la possibilité d'exécuter et de planifier des tâches de sauvegarde (sauvegardes complètes, diff et log tran). Il suffit de compresser les sauvegardes avec l'archiveur embedded ou 7-zip et envoyer vers un dossier local ou vers un lecteur NAS ou FTP ou vers un nuage (Dropbox, Google Drive, Amazon S3). Il y a aussi un forum de support .

    Vous pouvez (et devriez!) Examiner de manière plus approfondie les plans de maintenance SQL Server.

    Ceux-ci vous permettent d'automatiser des choses comme

    • vérifier la cohérence de la database
    • rebuild les index au besoin
    • faire des sauvegardes de bases de données et de journaux (utilisez certainement la compression de sauvegarde de SQL Server 2008 !!)

    Je ne suis pas sûr si elles ont un support embedded pour zipper et copyr sur un server distant, mais vous pouvez certainement automatiser la partie sauvegarde avec un plan de maintenance, et le rest avec un file de command quelconque.

    Si vous êtes juste coincé sur la façon de compresser à partir d'un script batch:

    1. Installer 7-Zip
    2. Exécuter à partir de la command line:
      "C: \ Program Files \ 7-Zip \ 7z.exe" a -t7z MyBackups.7z [Fichiers à zipper]

    Pour get un nom de file unique, j'intègre généralement la date et l'heure: aaaammjjhhMMss-backup.7z

    vous ne spécifiez pas l'utilitaire zip que vous utilisez. Il y en a beaucoup, mais j'ai tendance à utiliser Winzip car c'est l'outil principal de zip utilisé au travail. Winzip a une interface de command line ( http://www.winzip.com/prodpagecl.htm ) qui est un addin gratuit à winzip qui peut être appelé à partir d'une command line.

    Une autre alternative serait d'utiliser cygwin et tar.gz via la command line.

    Vous pouvez ZIP à partir de la command line, par exemple avec RAR . Ajoutez simplement les commands ZIP à l'endroit où vous copyz. Si c'est dans T-SQL, vous pouvez exécuter une command ZIP en utilisant xp_cmdshell .

    Pour une option de luxe, consultez Red Gate Backup , il rend ce process assez indolore.

    Depuis 2008, vous avez installé Powershell. Je suggère de regarder un script psh exécuté après une sauvegarde réussie pour compresser et copyr sur le fil. Ce serait probablement une deuxième étape après votre sauvegarde.

    Vous pouvez aussi aller à l'ancienne et écrire un file batch pour faire la compression et la copy. Appelez ensuite cela en tant qu'étape de travail cmdshell, à nouveau après votre travail / étape de sauvegarde.

    Si vous êtes un programmeur, vous pouvez créer une application qui récupère votre sauvegarde db par SMO et compresser ce file en file .gz par les bibliothèques disponibles.

    essayez ce lien: [http://www.sqlhub.com/2009/05/copy-files-with-sql-server-from-one.html][1]

    en bref:

    1 – vous devez activer "Ole Automation Procedures"

    2 – modifier et exécuter ce script pour tester:

    DECLARE @FsObjId INTEGER DECLARE @Source VARCHAR(4096) DECLARE @Destination VARCHAR(4096) SET @Source = 'C:\ritesh' SET @Destination= 'D:\ritesh' --creare OLE Automation instance EXEC sp_OACreate 'Scripting.FileSystemObject', @FsObjId OUTPUT --call method of OLE Automation EXEC sp_OAMethod @FsObjId, 'CopyFolder', NULL, @Source, @Destination --once you finish copy, destroy object EXEC sp_OADestroy @FsObjId 

    3 – créer un plan de maintenance:

    3.1 – append une "tâche de sauvegarde de database" et assurez-vous de choisir "Set backup compression" = Compresser la sauvegarde. (Cela créera vos sauvegardes dans un format compressé)

    3.2 – append une "tâche d'exécution T-SQL" avec le script ci-dessus qui va déplacer vos files qui seront exécutés après la tâche 3.1 :).

    Essayez SQL Backup Master , qui peut compresser les sauvegardes et les déplacer dans un dossier réseau (ou local). Peut également déplacer des files de sauvegarde compressés vers FTP, Dropbox, Amazon S3 ou Google Drive. L'édition de base est gratuite.

    Zipper le file après la sauvegarde prend beaucoup de time. Les programmes de sauvegarde qui utilisent l'interface de périphérique virtuel de SQL Server résolvent votre tâche et réduisent le time de traitement global. Essayez EMS SQL Backup qui permet également d'envoyer des sauvegardes compressées vers des locations réseau, FTP ou des nuages.