Conception Et Réalisation (SQL Server) by Grare Stéphane - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

Sauvegarder par le code

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

index-119_1.png

index-119_2.jpg

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

index-120_1.jpg

index-120_2.jpg

Sélectionnez alors le jeu de sauvegarde à restaurer puis cliquez sur « Ok ».

120

index-121_1.jpg

index-121_2.jpg

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

index-122_1.jpg

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