Sql server - restaurer une base depuis un backup

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 642 fois - Téléchargée 27 fois

Contenu du snippet

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 / Exemple :


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

A voir également

Ajouter un commentaire

Commentaires

dymsbess
Messages postés
56
Date d'inscription
mercredi 29 septembre 2004
Statut
Membre
Dernière intervention
4 janvier 2010
1 -
Pour une restauration dynamique à partir d'un chemin, voir PS :

http://www.xoowiki.com/Article/SQL/restauration-dynamique-20.aspx
cs_dhardy
Messages postés
45
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
24 février 2009
-
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é.
cs_fabrice69
Messages postés
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
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]
cs_dhardy
Messages postés
45
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
24 février 2009
-
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.