![Free-eBooks.net](/resources/img/logo-nfe.png)
![All New Design](/resources/img/allnew.png)
Le code suivant créer une sauvegarde complète de la base « Papyrus » à un emplacement
que nous lui indiquons. On sauvegarde la base de données sous « Data.bak » et les logs sous
« Log.bak ».
/**** Sauvegarde complète de la base ****/
BACKUP DATABASE [Papyrus] TO DISK = 'C:\Backup Papyrus\Data.bak'
WITH NOFORMAT, NOINIT, NAME = 'Data.bak', SKIP, NOREWIND, NOUNLOAD, STATS
= 10
GO
BACKUP LOG [Papyrus] TO DISK = 'C:\Backup Papyrus\Log.bak'
WITH NOFORMAT, NOINIT, NAME = 'Log.bak', SKIP, NOREWIND, NOUNLOAD, STATS
= 10
GO
Le code suivant créer une sauvegarde complète de la base exactement comme précédemment
sauf que nous formatons les éventuelles sauvegardes précédentes grâce à l’option WITH
FORMAT.
/**** Sauvegarde complète de la base ****/
BACKUP DATABASE [Papyrus] TO DISK = 'C:\Backup Papyrus\Data.bak'
WITH FORMAT, NAME = 'Data.bak', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [Papyrus] TO DISK = 'C:\Backup Papyrus\Log.bak'
WITH FORMAT, NAME = 'Log.bak', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
117
Puisque nous avons précédemment créé des unités de sauvegardes, le plus simple est alors
de les utiliser. Dans ce cas, nous n’avons plus besoin d’indiquer le chemin du répertoire.
/**** Sauvegarde complète de la base ****/
BACKUP DATABASE [Papyrus] TO USDATA
WITH FORMAT, NAME = 'Data.bak', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [Papyrus] TO USLOG
WITH FORMAT, NAME = 'Log.bak', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Sauvegarde différentielle
Les sauvegardes de journaux peuvent vite devenir volumineuses, il existe une alternative
saine pour pallier à ce problème, les sauvegardes différentielles de base de données. En effet,
ce type de sauvegarde va nous permettre de sauvegarder les données non sauvegardées
dans la dernière sauvegarde totale. Cette solution est donc évolutive, rapide et elle permet un
gain de place énorme.
« Créez un script effectuant une sauvegarde différentielle de la base Papyrus »
/**** Sauvegarde Base avec description et différentielle ****/
BACKUP DATABASE [Papyrus] TO USLog
WITH description = 'Sauvegarde de la base différentielle',differential,
NOFORMAT, NOINIT, NAME = 'JT1.bak', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Avec WITH FORMAT on réinitialise le support
/**** Sauvegarde Base avec description et différentielle ****/
BACKUP DATABASE [Papyrus] TO USLog
WITH description = 'Sauvegarde de la base différentielle',differential,
FORMAT, NAME = 'JT1.bak', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Ou en indiquant le répertoire de destination
/**** Sauvegarde Base avec description et différentielle ****/
BACKUP DATABASE [Papyrus] TO DISK = 'C:\Backup Papyrus\JT1.bak'
WITH description = 'Sauvegarde de la base différentielle',differential,
FORMAT, NAME = 'JT1.bak', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Sauvegarde par groupes de fichiers
Les sauvegardes complètes et les sauvegardes différentielles de base de données peuvent
prendre s’étendre sur la durée lorsqu’il s’agit de bases de données à gros volumes. Si
toutefois votre base de données est définie sur plusieurs fichiers de données (.mdf), il est
possible de choisir de sauvegarder la base par groupe de fichiers de données.
Restauration de la base de données
118
Une opération de restauration de base de données correspond à l’opération inverse de la
sauvegarde de base de données. Celle-ci peut être faite de deux manières : grâce à
l’instruction RESTORE ou par l’intermédiaire de l’interface graphique dans SSMS.
Restauration par l’interface
Sur le dossier « Bases de données », cliquez droit et « Restaurer la base de
données… ».
Vous avec alors plusieurs options. Si on restaure à partir de l’unité comme dans le choix
suivant :
On spécifie le support et l’emplacement du fichier « Data.bak » pour notre exemple.
119
Sélectionnez alors le jeu de sauvegarde à restaurer puis cliquez sur « Ok ».
120
Un message de confirmation permet de savoir si la base de données a été restaurée dans son
intégralité.
Vous pouvez ne restaurer qu’une partir des données… Par exemple, si on avait choisi les
options suivantes :
Vous avez alors accès à différentes options :
121
Vous pouvez alors autoriser l’accès à la base à tous les utilisateurs (accès que vous aviez
restreint au démarrage de l’opération de restauration). Pour reverrouiller la base, il vous
faudrait utiliser le code suivant :
/**** Verrouillage de la base ****/
ALTER DATABASE papyrus SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE