begin process at 2008 08 29 20:38:52
1 233 885 membres
407 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SQL SERVER - RESTAURER UNE BASE DEPUIS UN BACKUP


Information sur la source



Description

Le cadre de cet exemple est de faire en sorte de pouvoir monter sur un serveur de test un backup que l'on aurait récupéré depuis le serveur de production.
Ainsi, dans mon cas il s'agit en un seul script de créer la base de données sur le serveur de test et de lui remonter le backup que l'on a récupéré.

Source

  • USE master
  • GO
  • CREATE DATABASE NotreBase
  • ON
  • ( NAME = NotreBase_dat,
  • FILENAME = 'C:\NotreRépertoireDeStockage\NotreBase.mdf' )
  • GO
  • RESTORE DATABASE NotreBase
  • FROM
  • DISK = 'C:\Temp\NotreBaseProd.bak'
  • WITH
  • MOVE 'NotreBase_dat' TO 'C:\NotreRépertoireDeStockage\NotreBase.mdf',
  • MOVE 'NotreBase_log' TO 'C:\NotreRépertoireDeStockage\NotreBase_log.LDF'
  • GO
USE master
GO
CREATE DATABASE NotreBase
ON 
( NAME = NotreBase_dat,
   FILENAME = 'C:\NotreRépertoireDeStockage\NotreBase.mdf' )
GO


RESTORE DATABASE NotreBase
	FROM 	
		DISK = 'C:\Temp\NotreBaseProd.bak'
	WITH
		MOVE 'NotreBase_dat' TO 'C:\NotreRépertoireDeStockage\NotreBase.mdf',
		MOVE 'NotreBase_log' TO 'C:\NotreRépertoireDeStockage\NotreBase_log.LDF'

GO

Conclusion

Ce script a été testé sur un moteur MSDE pour cible de la base de test et a fonctionné parfaitement.

En vous souhaitant un bon coding.

Romelard Fabrice
  • signaler à un administrateur
    Commentaire de dhardy le 12/03/2007 13:24:19

    Bonjour,

    Est-il possible de restaurer une base de donnée sous un autre nom sans écraser celle qui existe ?
    Exemple :
    Il existe une base de donnée NotreBase et on la sauvegarde sous le nom NotreBaseProd.bak.
    On veut restaurer celle-ci sous le nom AutreBase mais la base de donnée NotreBase existe toujours sur le serveur.

    Merci

  • signaler à un administrateur
    Commentaire de fabrice69 le 12/03/2007 16:23:09 administrateur CS

    Bonjour,
    Normalement cela ne pose aucun problème, il faut surtout modifier le nom de la base et le chemin d'accès aux fichiers :
    --------------------------------------------------
    USE master
    GO
    CREATE DATABASE NotreBaseCopy
    ON
    ( NAME = NotreBase_dat,
       FILENAME = 'C:\NotreRépertoireDeStockage\NotreBaseCopy.mdf' )
    GO


    RESTORE DATABASE NotreBaseCopy
    FROM
    DISK = 'C:\Temp\NotreBaseProd.bak'
    WITH
    MOVE 'NotreBase_dat' TO 'C:\NotreRépertoireDeStockage\NotreBaseCopy.mdf',
    MOVE 'NotreBase_log' TO 'C:\NotreRépertoireDeStockage\NotreBaseCopy_log.LDF'

    GO
    --------------------------------------------------

    Cordialement

    Romelard Fabrice [MVP]

  • signaler à un administrateur
    Commentaire de dhardy le 13/03/2007 09:11:45

    Bonjour,

    J'ai essayé mais malheureusement je n'arrive pas.
    Voici le message signalé par "Analyseur de requête SQL (SQL 2000)" :

    La base de données à restaurer s'appelait 'NotreBase'.
    Relancez l'instruction avec l'option WITH REPLACE pour remplacer la base de données 'NotreBaseCopy'.

    Et voici le scripte complet que j'exécute :

    USE master
    GO

    CREATE DATABASE NotreBase
    ON
    ( NAME = NotreBase_dat,
       FILENAME = 'C:\Data_DH\Database\NotreBase.mdf' )
    GO

    CREATE TABLE clients
    (clt_num CHAR(8) NOT NULL PRIMARY KEY,
    clt_nom VARCHAR(25) NOT NULL,
    clt_pnom VARCHAR(20),
    clt_pays VARCHAR(2) NOT NULL,
    clt_loc VARCHAR(20) NOT NULL,
    clt_ca integer DEFAULT 0,
    clt_type VARCHAR(16) DEFAULT 'Particulier'
         CHECK (clt_type in ('Particulier', 'Administration',
                                         'Grand compte', 'PME'))
    )
    GO

    CREATE TABLE fournisseurs
    ( frs_num CHAR(8) NOT NULL PRIMARY KEY,
      frs_nom VARCHAR(25) NOT NULL UNIQUE)
    GO

    BACKUP DATABASE NotreBase
        TO DISK = 'C:\Data_DH\Backup Database\NotreBase.bak'
    GO

    CREATE DATABASE NotreBaseCopy
    ON
    ( NAME = NotreBase_dat,
       FILENAME = 'C:\Data_DH\Database\NotreBaseCopy.mdf' )
    GO

    RESTORE DATABASE NotreBaseCopy
    FROM
    DISK = 'C:\Data_DH\Backup Database\NotreBase.bak'
    WITH
    MOVE 'NotreBase_dat' TO 'C:\Data_DH\Database\NotreBaseCopy.mdf',
    MOVE 'NotreBase_log' TO 'C:\Data_DH\Database\NotreBaseCopy_log.LDF'
    GO

    Merci de votre aide

    PS : Le but étant de pouvoir restaurer une base de donnée sur le même serveur mais sous un autre nom car celle-ci est utilisé.

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS