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

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Points : 119
    Points
    119
    Par défaut
    La connexion au serveur fonctionne très bien avec sqlcmd.
    Tellement bien que j'ai réussi à faire fonctionner le script .sql lancer par le .bat suivant :
    restore.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sqlcmd -U sa -P TMS -STLWTMA01\TMSNG -i "D:\ADMINAPP\SQLServer\bin\Restore_TMS.sql" -o "D:\ADMINAPP\SQLServer\bin\Restore_TMS.log"
    Donc ... %!§#!

    Et je me connecte très bien sur l'instance TLWTMA01\TMSNG à SQL Server Studio avec le user 'sa' ...

    Que se passe - t il pour PowerShell ! minceeuh

  2. #22
    Membre émérite

    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
    Points : 2 856
    Points
    2 856
    Par défaut
    Juste une précision :

    Le besoin initial est : "Batch .bat ou .vbs de full restoration (.bkp) d'une bdd"

    Si l'exécution du .bat est OK alors on a donc une solution au besoin initial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sqlcmd -U sa -P TMS -STLWTMA01\TMSNG -i "D:\ADMINAPP\SQLServer\bin\Restore_TMS.sql" -o "D:\ADMINAPP\SQLServer\bin\Restore_TMS.log"
    Ceci dit la solution Powershell m'interesse... et devrait marcher en principe.

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Points : 119
    Points
    119
    Par défaut
    En effet mais bon... c'est pas terrible comme soluce.

    Et voici le fichier powerscript qui marche bien pour ma part [merci mosieur Donabel Santos] (Win server 2003, XP SP2, .NET 3.5, PowerShell 2.0) :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    #============================================================
    # Restore a Database using PowerShell and SQL Server SMO
    # Restore to the a new database name, specifying new mdf and ldf
    # Donabel Santos
    #============================================================
    #clear screen
    cls
     
    #load assemblies
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
    #Need SmoExtended for backup
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
    [Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | Out-Null
    [Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoEnum") | Out-Null
     
    #$backupFile = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test_db_20090531153233.bak'
    $backupFile = 'D:\Transfert_Dumps\FullBackup_TMS.BAK'
     
    #we will query the database name from the backup header later
    $server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") "TLWTMA01\TMSNG"
    #Write-Host SERVEUR $server
    $backupDevice = New-Object("Microsoft.SqlServer.Management.Smo.BackupDeviceItem") ($backupFile, "File")
    #Write-Host SERVEUR $backupDevice
    $smoRestore = new-object("Microsoft.SqlServer.Management.Smo.Restore")
    #Write-Host SERVEUR $smoRestore
     
    #restore settings
    $smoRestore.NoRecovery = $false;
    $smoRestore.ReplaceDatabase = $true;
    $smoRestore.Action = "Database"
    $smoRestorePercentCompleteNotification = 10;
    $smoRestore.Devices.Add($backupDevice)
     
    #get database name from backup file
    $smoRestoreDetails = $smoRestore.ReadBackupHeader($server)
     
    #display database name
    "Database Name from Backup Header : " +$smoRestoreDetails.Rows[0]["DatabaseName"]
    #Write-Host SERVEUR $smoRestoreDetails.Rows[0]["DatabaseName"]
     
    #give a new database name
    #$smoRestore.Database =$smoRestoreDetails.Rows[0]["DatabaseName"] + "_Copy"
    $smoRestore.Database = "tmsng"
     
    #specify new data and log files (mdf and ldf)
    $smoRestoreFile = New-Object("Microsoft.SqlServer.Management.Smo.RelocateFile")
    $smoRestoreLog = New-Object("Microsoft.SqlServer.Management.Smo.RelocateFile")
     
    #the logical file names should be the logical filename stored in the backup media
    #$smoRestoreFile.LogicalFileName = $smoRestoreDetails.Rows[0]["DatabaseName"]
    #$smoRestoreFile.PhysicalFileName = $server.Information.MasterDBPath + "\" + $smoRestore.Database + "_Data.mdf"
    #$smoRestoreLog.LogicalFileName = $smoRestoreDetails.Rows[0]["DatabaseName"] + "_Log"
    #$smoRestoreLog.PhysicalFileName = $server.Information.MasterDBLogPath + "\" + $smoRestore.Database + "_Log.ldf"
    $smoRestoreFile.LogicalFileName = "tmsng"
    $smoRestoreFile.PhysicalFileName = "D:\PRODUCT\SQLServer\MSSQL.1\MSSQL\tmsng.mdf"
    $smoRestoreLog.LogicalFileName = "tmsng_log"
    $smoRestoreLog.PhysicalFileName = "D:\PRODUCT\SQLServer\MSSQL.1\MSSQL\tmsng_1.ldf"
    $smoRestore.RelocateFiles.Add($smoRestoreFile)
    $smoRestore.RelocateFiles.Add($smoRestoreLog)
     
    #restore database
    $smoRestore.SqlRestore($server)



    Merci à vous deux (Mark & zinzin pour votre participation active ! )
    A la revoyure derrière un écran

  4. #24
    Membre émérite

    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
    Points : 2 856
    Points
    2 856
    Par défaut
    Rapidement une petite remarque :

    dans ton script qui marche tu as mis comme nom d'instance "TLWTMA01\TMSNG" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") "TLWTMA01\TMSNG"
    Et dans le script que te propose mikedavem, tu as mis comme nom d'instance :

    "TLWTMA01"

    Si tu as le temps vérifie ça ...

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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