IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Zipper un backup via une requête sql


Sujet :

Administration SQL Server

  1. #1
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut Zipper un backup via une requête sql
    Bonjour à tous,

    Ma demande est un peu particulière.

    Dans un applicatif (réalisé en vb.net) de préparation de BDD client, en fin de procédure, je réalise un backup de la base pour pouvoir la transférer chez le client. Le backup est volontairement réalisé non compressé car 80% des bases sont installées ensuite sur des édition Express qui ne supportent pas les backups compressés.

    Actuellement, l'utilisateur réalise lui-même manuellement, un zip du backup afin de réduire le transfert chez le client à travers internet. Mon taf actuel est d'intégrer la génération de ce zip en automatique directement dans l'applicatif. J'ai testé quelques librairies mais je trouve la compression un peu longue, d'autant plus que le backup se trouve sur un lecteur réseau (disque local du serveur sql, monté en disque réseau sur les postes utilisateurs), ça fait donc du trafic réseau inutile.

    1. Je pensais me servir du serveur SQL via une requête ou un script pour que ce soit lui-même qui réalise le zip, en local donc pour lui. Est-ce possible ?
    2. Je n'ai pas encore testé, mais il semblerait possible, avec une commande powershell, d'utiliser les fonctions de l'explorateur windows pour compresser le fichier. Est-il possible de demander, via une requête, script, etc, au serveur sql de lancer lui-même, localement chez lui, une commande powershell, par exemple ?


    NOTA : Le zip a réaliser doit être compatible avec les fonctions zip incluses dans l'explorateur Windows, notamment pour pouvoir l'ouvrir directement chez le client sans avoir à installer en plus un quelconque logiciel.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Hello,

    Sauf erreur de ma part, l'édition Express ne supporte pas la compression d'une sauvegarde mais il est tout à fait possible de faire l'inverse, à savoir restaurer sur un SQL Express une sauvegarde qui a été compressée depuis une autre édition.

    La documentation SQL Server le précise également ici.

    Every edition of SQL Server 2008 and later can restore a compressed backup.
    ++

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Alors, pour ce qui est des sauvegardes, on est d'accord.

    Pour les restaurations, il me semblait aussi que c'était incompatible. Il me semblait avoir déjà eu des soucis, que le serveur en édition express voyait un backup vide quand celui-ci était compressé, même phénomène que quand le backup est fait avec une version supérieure.

    Mais effectivement, je ne saurais l'affirmer. Et je n'ai pas de version express sous la main pour tester.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    La magie de Docker .. on peut tester des choses rapidement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    SELECT @@VERSION, SERVERPROPERTY('Edition')
    -- Microsoft SQL Server 2017 (RTM-CU22) (KB4577467) - 14.0.3356.20 (X64)   Aug 20 2020 22:33:27   Copyright (C) 2017 Microsoft Corporation  Express Edition (64-bit) on Linux (Ubuntu 16.04.7 LTS)	Express Edition (64-bit)
     
    RESTORE HEADERONLY FROM DISK = '/var/opt/mssql/data/mybackup.BAK'
    --BackupSize=9516032
    --CompressedBackupSize=2111606
     
    USE [master]
    RESTORE DATABASE [myDB] 
    FROM  DISK = N'/var/opt/mssql/data/myBackup.BAK' 
    WITH  FILE = 1,  
    MOVE N'myDB' TO N'/var/opt/mssql/data/myDB.mdf',  
    MOVE N'myDB_log' TO N'/var/opt/mssql/data/myDB_log.ldf',  
    NOUNLOAD,  STATS = 5
    -- Restoring compressed backup ok
    ++

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Tu peut aussi utiliser la fonction COMPRESS de SQL Server en récupérant le flux du fichier de sauvegarde par un OPENROWSET en mode BULK....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Copie table Access vers PostgreSQL via une requête SQL
    Par V_inSe dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/07/2014, 13h53
  2. [MySQL] correspondance mot et synonyme via une requête SQL
    Par Lekno dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/05/2014, 16h59
  3. [MySQL] afficher une image via une requête sql et phpmyadmin
    Par hotman1313 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/03/2012, 22h27
  4. Génération fichier .csv via une requête SQL
    Par matnys dans le forum Import/Export
    Réponses: 5
    Dernier message: 12/12/2011, 22h03
  5. Récupurer via une requête SQL la valeur la plus proche
    Par yoda_style dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/04/2004, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo