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 :

Batch .bat ou .vbs de full restoration (.bkp) d'une bdd


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Par défaut Batch .bat ou .vbs de full restoration (.bkp) d'une bdd
    Bonjour;

    Je suis débutant en MS SQL-Server mais je me posais une question : au lieu de passer manuellement par l'outil d'administration Management Studio afin de recréer une base de données à partir d'une sauvegarde, n'y aurait-il pas un moyen de créer un .bat ou .vbs ou .cmd (ou autre ?) afin de lancer un script SQL contenant les commandes de recréation ?

    Il ne me suffirait plus alors qu'à cliquer sur le .bat ou . vbs ou .cmd et zou ! la base de données est montée active et restaurée.

    Est-ce faisable ?
    Si oui pourriez-vous me fournir les scripts (.bat) et SQL s'il-vous-plaît ?

    Bien à vous, merci pour vos aides.

  2. #2
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Bonjour,

    Ta demande n'est pas claire. J'imagine que tu veux scripter la restauration d'une base.

    Hormis les problèmes de droits d'accès aux répertoires (qu'il faut régler avant) tu peux :

    1.) créer un fichier .sql qui contient la commande sql pour effectuer la restauration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    USE master 
    GO 
    ALTER DATABASE MA_BASE
       SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
    GO
    RESTORE DATABASE [MA_BASE]
    FROM DISK = '\Emplacement_du_backup\MA_BASE.bak' 
    WITH 
    MOVE 'MA_BASE_MDF' TO '\EmplacementDuFichierMDF\MA_BASE.mdf',
    MOVE 'MA_BASE_LDF' TO '\EmplacementDuFichierMDF\MA_BASE.ldf', 
    REPLACE;
    ALTER DATABASE MA_BASE SET MULTI_USER
    GO
    2) Créer un fichier .bat qui va lancer le fichier .sql via sqlcmd.
    le fichier .bat peut contenir la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -i "\Emplacement_du_fichier_sql\fichier.sql" -o "\Emplacement_du_fichier_sorti\sortie.txt"

    Pour plus dinfo sur l'utilitaire sqlcmd

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Expert confirmé
    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 : 46
    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
    Par défaut
    Bonjour,

    Aller pour le fun cela faisait un moment que je n'avais pas fait de powershell. J'ai fait simple pour le moment .. restauration avec les path par défaut et sans restauration d'un éventuel mappage login-user :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #Power shell script restauration database
    #chargement assemblies
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | Out-Null
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoEnum") | Out-Null
     
    # Serveur cible
    $server = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")
     
    # Emplacement backup et base de données à sauvegarder
    $backupdir = "E:\BACKUP\test.bak"
    $dbname = "TEST"
     
    # Objet Restore et paramètre
    $dbres = New-Object Microsoft.SqlServer.Management.Smo.Restore
    $dbres.Database = $dbname
    $dbres.Action = [Microsoft.SqlServer.Management.Smo.RestoreActionType]::Database
    $dbres.ReplaceDatabase = $TRUE
    $dbres.NoRecovery = $FALSE
     
    # Récuperation fichier sauvegarde
    $dbres.Devices.AddDevice($backupdir, [Microsoft.SqlServer.Management.Smo.DeviceType]::File)
     
    #Restauration database
    $dbres.SqlRestore($server)
    ++

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Par défaut
    Merci mikedave pour ces scripts !

    Mais j'obtiens une erreur :
    HResult 0x2, Level 16, State 1
    Named Pipes Provider: Could not open a connection to SQL Server [2].
    Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..
    Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.

    Je suis pourtant connecter avec un compte admin sous Windows.

    Kézako ?

    Il y aurait possibilité de forcer la connexion en tant que sa ?

    Merci d'avance pour vos solutions

  5. #5
    Expert confirmé
    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 : 46
    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
    Par défaut
    Curieux ..

    Quel est le résultat de la commande suivante (dans une invite de commande)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -E -S<nomserveur>
    ++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Par défaut
    J'obtiens la même erreur en lançant la cmde ds un Run...

    Bis avec sqlcmd -E -S localhost ...

  7. #7
    Expert confirmé
    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 : 46
    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
    Par défaut
    Ok donc il faut vérifier sur votre serveur de bases de données si les accès distants sont autorisés dans un premier temps.

    Lancerz le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EXEC sp_configure 'show advanced options', 1
    GO
    RECONFIGURE
    GO
    EXEC sp_configure 'remote access'
    GO
    La valeur de colonne run_value doit ête égale à 1.

    Si ce n'est pas le cas exécutez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EXEC sp_configure 'remote access', 1
    GO
    RECONFIGURE
    GO
    ++

  8. #8
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Quelle est la version de ton SQL SERVER ?

    Précision :

    --> Avec SQL SERVER 2008 powershell v1.0 est installé par défaut.

    --> Avec SQL SERVER 2005 il faut installer Powershell (la V2.0 permet plus de

    possibilités)

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WS 2003] executer un script "bat" ou "vbs" sur tous les pc d'une UO
    Par devlopassion dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 23/03/2010, 14h39
  2. [Batch] transformer un batch .bat en script VBS
    Par claf60 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 20/11/2009, 22h07
  3. Language de script Batch (*.bat)
    Par secretman dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 20/08/2008, 13h43
  4. Batch (.bat) qui refuse de s'exécuter via le "Scheduler"
    Par camboui dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 28/07/2006, 18h26
  5. Recupérer une erreur d'un batch dans un vbs
    Par Pitbull7 dans le forum Windows
    Réponses: 1
    Dernier message: 06/10/2005, 21h10

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