Vous êtes sur la page 1sur 46

Module 7 : Restauration

de bases de données

Table des matières


Vue d'ensemble 1
Processus de récupération de SQL Server 2
Préparation de la restauration d'une base
de données 5
Restauration de sauvegardes 9
Restauration de bases de données à partir
de différents types de sauvegardes 15
Restauration de bases de données
système endommagées 26
Conseils pratiques 29
Atelier A : Restauration de bases
de données 30
Contrôle des acquis 42
Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis.
Sauf mention contraire, les sociétés, les noms et les données utilisés dans les exemples sont fictifs.
L'utilisateur est tenu d'observer la réglementation relative aux droits d'auteur applicable dans son
pays. Aucune partie de ce manuel ne peut être reproduite ou transmise à quelque fin ou par
quelque moyen que ce soit, électronique ou mécanique, sans l'autorisation expresse et écrite de
Microsoft Corporation. Si toutefois, votre seul moyen d'accès est électronique, le présent
document vous autorise une et une seule copie.

Les produits mentionnés dans ce document peuvent faire l'objet de brevets, de dépôts de brevets en
cours, de marques, de droits d'auteur ou d'autres droits de propriété intellectuelle et industrielle de
Microsoft. Sauf stipulation expresse contraire d'un contrat de licence écrit de Microsoft, la
fourniture de ce document n'a pas pour effet de vous concéder une licence sur ces brevets,
marques, droits d'auteur ou autres droits de propriété intellectuelle.

 2000 Microsoft Corporation. Tous droits réservés.

Microsoft, Active Directory, ActiveX, BackOffice, FrontPage, Jscript, Outlook, PowerPoint,


Visual Basic, Visual Studio, Windows, Windows Media et Windows NT sont soit des marques
déposées de Microsoft Corporation, soit des marques de Microsoft Corporation aux États-Unis
d'Amérique et/ou dans d'autres pays.

Les autres noms de produit et de société mentionnés dans ce document sont des marques de leurs
propriétaires respectifs.

Responsable du développement : Xandria Eykel


Responsable technique : Rick Byham
Concepteurs pédagogiques : Cheryl Hoople, Lin Joyner (Content Master Ltd),
Marilyn McGill (indépendante), Gordon Ritchie (Content Master Ltd.)
Experts techniques : Karl Dehmer, Mike Galos, Graeme Malcolm (Content Master),
Mary Neville (Content Master Ltd), Carl Rabeler (Shadow Mountain Computers)
Automatisation de la classe : Lorrin Smith-Bates
Graphiste : Kimberly Jackson (indépendante)
Responsable d'édition : Lynette Skinner
Éditrice : Wendy Cleary
Correcteur : Bill Jones (S&T Consulting)
Responsable de production : Miracle Davis
Coordinatrice de production : Jenny Boe
Assistance à la production : Ed Casper (S&T Consulting), Theano Petersen (S&T Consulting)
Responsable des tests : Sid Benavente
Test du cours : Testing Testing 123
Responsable de la création, Services des médias/simulations : David Mahlmann
Responsable du développement Web : Lisa Pease
Spécialiste des compilations sur CD-ROM : Julie Challenger
Assistance en ligne : David Myka (S&T Consulting)
Responsable de l'adaptation linguistique : Rick Terek
Coordinateur des opérations : John Williams
Assistance à la fabrication : Laura King, Kathy Hershey
Responsable produit, Gestion des versions : Bo Galford
Responsable produit, Gestion des bases de données : Margo Crandall
Directeur de groupe, Structure des cours : David Bramble
Directeur de l'unité produit, Élaboration du contenu : Dean Murray
Directeur général : Robert Stewart
Module 7 : Restauration de bases de données 1

Vue d'ensemble

! Processus de récupération de SQL Server


! Préparation de la restauration d'une base de
données
! Restauration de sauvegardes
! Restauration de bases de données à partir de
différents types de sauvegardes
! Restauration de bases de données système
endommagées

Ce module vous fournit les connaissances et les compétences nécessaires à la


restauration de bases de données, de journaux de transactions, de fichiers ou de
groupes de fichiers et de bases de données système endommagés. Vous allez
prendre connaissance du processus de récupération de Microsoft®
SQL Server™ 2000 et apprendre à utiliser l'instruction RESTORE pour collecter
des informations et effectuer des opérations de récupération ; vous serez ainsi
capable d'effectuer des opérations de restauration en fonction d'une méthode de
sauvegarde particulière.
À la fin de ce module, vous serez à même d'effectuer les tâches suivantes :
!" décrire le processus de récupération de SQL Server 2000 ;
!" vérifier des sauvegardes et effectuer les tâches permettant d'activer le
processus de restauration ;
!" utiliser l'instruction RESTORE pour collecter des informations sur un
fichier de sauvegarde avant de restaurer une base de données, un fichier ou
un journal des transactions ;
!" restaurer des sauvegardes à partir de différents types de sauvegardes et
utiliser les options appropriées ;
!" restaurer des bases de données système endommagées.
2 Module 7 : Restauration de bases de données

# Processus de récupération de SQL Server


BEGIN
BEGIN
COMMIT
BEGIN
CHECKPOINT
BEGIN BEGIN
COMMIT

COMMIT
BEGIN COMMIT COMMIT

Les
Lestransactions
transactionsvalidées
validéessont
sonttransmises
transmises
ààla
labase
basedededonnées,
données,puis
puisconsignées
consignées
Les
Lestransactions
transactionsnon
nonvalidées
validéessont
sont
annulées
annuléeset
etne
nesont
sontpas
pasécrites
écritesdans
dansla
la
base
basedededonnées
données

Le processus de récupération de SQL Server est un mécanisme interne qui


garantit la cohérence de votre base de données en examinant le journal des
transactions et en prenant les mesures décrites ci-dessous.
!" SQL Server examine le journal des transactions depuis le dernier point de
contrôle jusqu'au moment où SQL Server est tombé en panne ou a été arrêté.
Un point de contrôle est semblable à un signet ; il indique à quel moment
toutes les modifications ont été écrites dans la base de données.
!" Si le journal des transactions contient des transactions validées qui n'ont pas
encore été écrites dans la base de données, SQL Server les transmet en
appliquant les modifications dans la base de données.
!" Si le journal des transactions contient des transactions non validées,
SQL Server les annule. Les transactions non validées ne sont pas écrites
dans la base de données.

Récupération automatique
Lorsque votre système est redémarré après une panne ou un arrêt, SQL Server
lance le processus de récupération automatique pour garantir la cohérence des
données. Vous n'avez pas besoin de démarrer ce processus manuellement ; il se
produit automatiquement.

Récupération manuelle
Vous pouvez lancer manuellement le processus de récupération lorsque vous
effectuez des opérations de restauration. Ce processus est semblable au
processus de récupération automatique lancé au redémarrage de SQL Server.
Module 7 : Restauration de bases de données 3

Activités exécutées par SQL Server pendant le processus de


restauration

! Contrôle de sécurité
$ La base de données existe déjà
$ Les fichiers de base de données sont différents
$ Les fichiers de base de données sont incomplets

! Reconstitution de la base de données et de tous


les fichiers associés

Lorsque vous restaurez des bases de données, SQL Server exécute


automatiquement certaines opérations afin d'accélérer le processus et de réduire
l'impact sur les activités de production.

Contrôle de sécurité
SQL Server effectue un contrôle de sécurité lorsque vous exécutez l'instruction
RESTORE DATABASE. Ce mécanisme interne permet d'éviter l'écrasement
accidentel d'une base de données par la sauvegarde d'une autre base de données
ou par des informations incomplètes.
SQL Server ne restaure pas la base de données dans les cas ci-dessous.
!" La base de données désignée dans l'instruction RESTORE DATABASE
existe déjà sur le serveur et le nom de base de données enregistré dans le
fichier de sauvegarde est différent de celui indiqué dans l'instruction
RESTORE DATABASE.
!" Le jeu de fichiers de base de données figurant sur le serveur est différent de
celui contenu dans le jeu de sauvegardes.
!" Tous les fichiers requis pour restaurer une base de données ou un groupe de
fichiers ne sont pas fournis. SQL Server génère un message d'erreur
indiquant les fichiers à restaurer conjointement (en une seule opération de
restauration).

Par exemple, si vous essayez de restaurer une sauvegarde de la base de données


Northwind dans une base de données appelée Accounting (comptabilité) et
que cette dernière est déjà créée sur le serveur, SQL Server empêche la
restauration. Si vous voulez restaurer une sauvegarde de la base de données
Northwind en écrasant les données de la base de données Accounting, vous
devez passer outre le contrôle de sécurité.
4 Module 7 : Restauration de bases de données

Reconstitution de la base de données et de tous les


fichiers associés
Lorsque vous restaurez une base de données à partir d'une sauvegarde complète
de base de données, SQL Server recrée les fichiers de base de données d'origine
et les place là où ils étaient enregistrés lors de la sauvegarde. Tous les objets de
base de données sont recréés automatiquement. Vous n'avez pas besoin de
reconstruire le schéma de la base de données avant de la restaurer.
Module 7 : Restauration de bases de données 5

# Préparation de la restauration d'une base de données

! Vérification des sauvegardes

! Exécution de tâches spécifiques avant la


restauration de sauvegardes

Vous devez vérifier les sauvegardes afin de vous assurer que vous restaurez les
données et les objets voulus, et que la sauvegarde contient des informations
valides.
Avant de restaurer une sauvegarde, vous devez effectuer certaines tâches
nécessaires au lancement du processus de restauration.
6 Module 7 : Restauration de bases de données

Vérification des sauvegardes

! Instruction RESTORE HEADERONLY


$ Renvoie les informations d'en-tête d'un fichier de
sauvegarde ou d'un jeu de sauvegardes
! Instruction RESTORE FILELISTONLY
$ Renvoie des informations sur les fichiers de base
de données ou de journal des transactions
d'origine
! Instruction RESTORE LABELONLY
$ Renvoie des informations sur le support de
sauvegarde
! Instruction RESTORE VERIFYONLY
$ Vérifie que les fichiers individuels sont complets
et lisibles

Avant de restaurer un fichier de sauvegarde, vous devez vous assurer qu'il est
valide et qu'il contient les sauvegardes attendues. Vous pouvez utiliser
SQL Server Enterprise Manager pour afficher les propriétés correspondant à
chaque unité de sauvegarde. Pour plus d'informations sur les sauvegardes,
exécutez les instructions Transact-SQL décrites ci-dessous.

Instruction RESTORE HEADERONLY


Utilisez cette instruction pour obtenir les informations d'en-tête d'un fichier de
sauvegarde ou d'un jeu de sauvegardes particulier. Si plusieurs sauvegardes
figurent dans le fichier de sauvegarde, SQL Server renvoie les informations
d'en-tête de toutes les sauvegardes contenues dans ce fichier.
Lorsque vous exécutez l'instruction RESTORE HEADERONLY, SQL Server
renvoie les informations suivantes :
!" nom et description du fichier de sauvegarde ou du jeu de sauvegardes ;
!" type de support de sauvegarde utilisé (bande ou disque dur) ;
!" méthode de sauvegarde (sauvegarde de base de données complète,
différentielle, du journal des transactions ou sauvegarde de fichier) ;
!" date et heure de la sauvegarde ;
!" taille de la sauvegarde ;
!" numéro séquentiel d'une sauvegarde particulière dans une chaîne de fichiers
de sauvegarde.
Module 7 : Restauration de bases de données 7

Instruction RESTORE FILELISTONLY


Utilisez cette instruction afin d'obtenir des informations sur les fichiers de base
de données ou de journal des transactions d'origine contenus dans un fichier de
sauvegarde. Elle permet d'éviter de restaurer les mauvais fichiers.
Lorsque vous exécutez l'instruction RESTORE FILELISTONLY, SQL Server
renvoie les informations suivantes :
!" noms logiques des fichiers de base de données et de journal des
transactions ;
!" noms physiques des fichiers de base de données et de journal des
transactions ;
!" type de fichier (de base de données ou de journal des transactions) ;
!" appartenance à un groupe de fichiers ;
!" taille du jeu de sauvegardes en mégaoctets (Mo) ;
!" taille de fichier maximale autorisée en Mo.

Instruction RESTORE LABELONLY


Utilisez cette instruction afin d'obtenir des informations sur le support de
sauvegarde contenant un fichier de sauvegarde.

Instruction RESTORE VERIFYONLY


Utilisez cette instruction pour vous assurer que les différents fichiers constituant
le jeu de sauvegardes sont complets et que toutes les sauvegardes sont lisibles.
SQL Server ne vérifie pas la structure des données contenues dans la
sauvegarde.
8 Module 7 : Restauration de bases de données

Exécution de tâches spécifiques avant la restauration de


sauvegardes

! Restriction de l'accès à la base de données


$ Limitez l'accès aux membres du rôle db_owner,
dbcreator ou sysadmin
! Sauvegarde du journal des transactions
$ Assure la cohérence de la base de données
$ Capture les modifications effectuées entre la
dernière sauvegarde du journal des transactions
et le moment auquel la base de données a été
déconnectée

Avant de restaurer des sauvegardes, vous devez limiter l'accès à la base de


données et sauvegarder le journal des transactions.

Restriction de l'accès à la base de données


Il est essentiel de limiter l'accès à une base de données avant de la restaurer.
Pour ce faire, sélectionnez l'option de base de données Membres de db_owner,
dbcreator, ou de sysadmin.

Sauvegarde du journal des transactions


Vous pouvez garantir la cohérence de la base de données en sauvegardant le
journal des transactions avant d'exécuter les opérations de restauration.
!" La sauvegarde du journal des transactions est utilisée pour récupérer la base
de données en tant qu'étape ultime du processus de restauration.
!" Si vous ne sauvegardez pas le journal des transactions avant de restaurer des
sauvegardes, vous perdez les modifications apportées aux données entre la
dernière sauvegarde du journal des transactions et le moment où la base de
données a été déconnectée.

Remarque Si vous utilisez l'Analyseur de requêtes SQL Server ou si vous


exécutez un script à partir de l'invite pour restaurer des sauvegardes, vous devez
utiliser la base de données master.
Module 7 : Restauration de bases de données 9

# Restauration de sauvegardes

! Utilisation de l'instruction RESTORE


! Lancement du processus de récupération
! Définition des options de restauration

Vous pouvez utiliser SQL Server Enterprise Manager ou l'instruction


RESTORE et spécifier les options propres au type de sauvegarde que vous
souhaitez restaurer. Vous pouvez également décider si vous désirez lancer le
processus de récupération après chaque opération de restauration.
10 Module 7 : Restauration de bases de données

Utilisation de l'instruction RESTORE

USE
USE master
master
RESTORE
RESTORE DATABASE
DATABASE Northwind
Northwind
FROM
FROM NwindBac
NwindBac

! Restauration de bases de données utilisateur


endommagées
$ Vous n'avez pas besoin de supprimer la base de
données endommagée
$ SQL Server recrée automatiquement les fichiers
et les objets de base de données

Vous pouvez utiliser l'instruction RESTORE ou SQL Server Enterprise


Manager pour effectuer des opérations de restauration.
Les options de restauration vous permettent de détailler la façon de restaurer les
sauvegardes.
Syntaxe partielle RESTORE DATABASE {base_données | @variable_nom_base_données}
[FROM <unité_sauvegarde> [, ... n]]
[WITH
[FILE = numéro_fichier]
[[,] MOVE 'nom_fichier_logique' TO 'nom_fichier_système_exploitation']
[[,] REPLACE]
[[,] {NORECOVERY | RECOVERY | STANDBY =
nom_fichier_annulation }]]
[[.] RESTART]
]
où <unité_sauvegarde> représente
{{unité_sauvegarde | @variable_nom_unité_sauvegarde} |
{DISK | TAPE | PIPE} = {'unité_sauvegarde_temporaire' |
@variable_unité_sauvegarde_temporaire}
}
Module 7 : Restauration de bases de données 11

Exemple Cet exemple restaure la base de données Northwind à partir d'un fichier de
sauvegarde permanent.
USE master
RESTORE DATABASE Northwind
FROM NwindBac

Restauration de bases de données utilisateur


endommagées
Si une base de données est endommagée, utilisez l'instruction RESTORE ou
SQL Server Enterprise Manager pour la restaurer. Lorsque vous restaurez une
base de données en écrasant une base existante tenez compte des indications
ci-dessous.
!" Vous n'avez pas besoin de supprimer la base de données endommagée.
!" SQL Server recrée automatiquement les fichiers et les objets de base de
données.
12 Module 7 : Restauration de bases de données

Lancement du processus de récupération

! Utilisation de l'option RECOVERY


$ À utiliser avec la dernière sauvegarde à restaurer
$ Permet d'accéder à la base de données
! Utilisation de l'option NORECOVERY
$ À utiliser avec toutes les sauvegardes à l'exception
de la dernière à restaurer
$ Interdit l'accès à la base de données

Vous devez toujours spécifier l'option RECOVERY ou NORECOVERY pour


empêcher toute erreur administrative au cours de la restauration, et faciliter la
lecture de l'instruction. L'option RECOVERY est utilisée par défaut par
SQL Server.

Utilisation de l'option RECOVERY


Utilisez cette option lors de la restauration du dernier journal des transactions
ou dans le cadre d'une restauration complète de base de données pour rétablir la
cohérence de la base de données.
!" SQL Server annule les transactions non validées dans le journal des
transactions et transmet les transactions validées.
!" La base de données peut être utilisée au terme du processus de récupération.

Remarque N'utilisez pas cette option si d'autres journaux de transactions ou


d'autres sauvegardes différentielles doivent être restaurés.

Utilisation de l'option NORECOVERY


Utilisez cette option pour restaurer plusieurs sauvegardes. Lors de l'utilisation
de l'option NORECOVERY, tenez compte des points décrits ci-dessous.
!" Spécifiez l'option NORECOVERY pour toutes les sauvegardes à l'exception
de la dernière.
!" SQL Server n'annule pas les transactions non validées dans le journal des
transactions et ne transmet pas les transactions validées.
!" La base de données ne peut pas être utilisée tant qu'elle n'est pas récupérée.
Module 7 : Restauration de bases de données 13

Définition des options de restauration

Option
OptionRESTORE
RESTORE Description
Description
Restaure
Restaureune
unesauvegarde
sauvegardeparticulière
particulière
FILE
FILE
Vous
Vousdevez
devezindiquer
indiquerun
unnuméro
numérode
defichier
fichier

RESTART
RESTART Reprend
Reprendune
uneopération
opérationde
derécupération
récupérationinterrompue
interrompue

Indique
Indiqueununemplacement
emplacementde derestauration
restaurationdes
desfichiers
fichiers
de
desauvegarde
sauvegarde
MOVE…TO
MOVE…TO ÀÀutiliser
utiliserpour
poureffectuer
effectuerune
unerestauration
restaurationsur
surun
unautre
autre
disque,
disque,serveur
serveuror
orordinateur
ordinateurSQL
SQLServer
Serverdedesecours
secours
Remplace
Remplaceune
unebase
basede
dedonnées
donnéesexistante
existante
REPLACE
REPLACE
SQL
SQLServer
Servern'effectue
n'effectuepas
pasde
decontrôle
contrôlede
desécurité
sécurité

Lorsque vous utilisez l'instruction RESTORE, définissez la méthode de


restauration à l'aide des options.

Utilisation de l'option FILE


Utilisez cette option pour sélectionner des sauvegardes spécifiques dans un
fichier de sauvegarde contenant plusieurs sauvegardes. Vous devez spécifier le
numéro de fichier correspondant à l'ordre dans lequel la sauvegarde est classée
dans le fichier.

Utilisation de l'option RESTART


Utilisez cette option pour reprendre une opération de restauration interrompue.
La restauration reprend à l'endroit où la tentative précédente a été interrompue.

Utilisation de l'option MOVE…TO


Utilisez cette option pour indiquer un emplacement différent pour la
restauration des fichiers de sauvegarde (comme un autre disque, un autre
serveur ou un ordinateur SQL Server de secours).

Remarque Vous pouvez également utiliser la procédure stockée système


sp_attach_db ou sp_attach_single_file_db pour déplacer une base de données
d'un serveur vers un autre en copiant les fichiers de base de données et en les
rattachant à la base de données master.
14 Module 7 : Restauration de bases de données

Utilisation de l'option REPLACE


Utilisez cette option uniquement si vous voulez remplacer une base de données
existante par les données d'une sauvegarde d'une autre base de données. Si vous
utilisez l'option REPLACE, SQL n'effectue pas de contrôle de sécurité.
Par défaut, SQL Server effectue un contrôle de sécurité pour vérifier qu'une
base de données existante n'est pas remplacée dans les circonstances décrites
ci-dessous.
!" La base de données existe déjà sur le serveur cible et son nom est différent
de celui enregistré dans le jeu de sauvegardes.
!" Le jeu de fichiers dans la base de données est différent de celui contenu
dans le jeu de sauvegardes. SQL Server ne tient pas compte des différences
entre les tailles de fichiers.
Module 7 : Restauration de bases de données 15

# Restauration de bases de données à partir de


différents types de sauvegardes

! Restauration à partir d'une sauvegarde complète


de base de données
! Restauration à partir d'une sauvegarde
différentielle
! Restauration à partir d'une sauvegarde du journal
des transactions
! Restauration à partir d'une sauvegarde de fichier
ou de groupe de fichiers

Pour restaurer une base de données, vous devez connaître la méthode de


sauvegarde utilisée et savoir si la sauvegarde existe. Vérifiez que vos fichiers de
sauvegarde contiennent bien les sauvegardes que vous souhaitez restaurer.
Assurez-vous que les sauvegardes sont valides et que vous disposez de tous les
fichiers ou bandes contenant le jeu de sauvegardes.
16 Module 7 : Restauration de bases de données

Restauration à partir d'une sauvegarde complète de base de


données
! Circonstances d'utilisation
$ Le disque physique est endommagé

$ Toute la base de données est endommagée,


détériorée ou supprimée
$ Pour conserver une copie identique de la base de
données sur un autre ordinateur SQL Server
! Options de récupération
$ Démarrez le processus de récupération avec l'option
RECOVERY
$ Retardez le processus de récupération avec l'option
NORECOVERY
USE
USE master
master
RESTORE
RESTORE DATABASE
DATABASE Northwind
Northwind
FROM
FROM NwindBac
NwindBac
WITH
WITH FILE
FILE == 2,
2, RECOVERY
RECOVERY

Lorsque vous restaurez une base de données à partir d'une sauvegarde complète
de base de données, SQL Server recrée la base de données et tous les fichiers
associés, puis les copie à leur emplacement d'origine. Tous les objets de base de
données sont recréés automatiquement. Vous n'avez pas besoin de reconstruire
le schéma de la base de données avant de la restaurer.

Circonstances d'utilisation
En principe, la restauration d'une base de données à partir d'une sauvegarde
complète de base de données est effectuée dans les circonstances décrites
ci-dessous.
!" Le disque physique de la base de données est endommagé.
!" Toute la base de données est endommagée, détériorée ou supprimée.
!" Une copie identique de la base de données doit être restaurée sur un
ordinateur SQL Server différent.

Options de récupération
L'option RECOVERY démarre le processus de récupération pour rétablir la
cohérence de votre base de données.
!" Si vous implémentez une stratégie de sauvegarde complète de base de
données et que vous ne disposez d'aucun journal des transactions ni
d'aucune sauvegarde différentielle, spécifiez l'option RECOVERY.
!" Si vous disposez de sauvegardes de journal des transactions ou
différentielles, spécifiez l'option NORECOVERY pour retarder le processus
de récupération jusqu'à ce que la dernière sauvegarde soit restaurée.
Module 7 : Restauration de bases de données 17

Exemple Dans cet exemple, une sauvegarde complète de base de données a été stockée
dans le fichier de sauvegarde permanent NwindBac, et deux sauvegardes sont
ajoutées à ce fichier. La base de données Northwind est entièrement remplacée
par la deuxième sauvegarde figurant sur l'unité de sauvegarde NwindBac.
Enfin, le processus de récupération rétablit la cohérence de la base de données
(transmet les modifications validées et annule celles non validées).
USE master
RESTORE DATABASE Northwind
FROM NwindBac
WITH FILE = 2, RECOVERY
18 Module 7 : Restauration de bases de données

Restauration à partir d'une sauvegarde différentielle


! Restaure uniquement les parties de la base de
données qui ont été modifiées depuis la dernière
sauvegarde complète de base de données
! Rétablit la base de données à son état initial au
moment où la sauvegarde différentielle a été
effectuée
! Dure moins longtemps que l'application d'une série
de journaux de transactions
Utilisez
Utilisez la
la même
même syntaxe
syntaxe que
que
lorsque
lorsque vous
vous restaurez
restaurez une
une base
base de
de
données
données complète
complète

Indiquez
USE
USE master
master
Indiquez lele fichier
fichier
de
de sauvegarde
sauvegarde qui qui RESTORE
RESTORE DATABASE
DATABASE Northwind
Northwind
contient
contient la
la sauvegarde
sauvegarde FROM
FROM NwindBacDiff
NwindBacDiff
différentielle WITH
différentielle WITH NORECOVERY
NORECOVERY

Lorsque vous restaurez une base de données à partir d'une sauvegarde


différentielle, SQL Server effectue les tâches décrites ci-dessous.
!" Il ne restaure que les parties de la base de données ayant été modifiées
depuis la dernière sauvegarde complète de base de données.
!" Il rétablit la base de données à son état initial, au moment où la sauvegarde
différentielle a été effectuée.
!" Il met en général moins de temps à restaurer des sauvegardes différentielles
qu'à appliquer une série de journaux de transactions représentant la même
activité de base de données.

Éléments à prendre en compte pour la restauration de


sauvegardes différentielles
Lorsque vous restaurez une base de données à partir d'une sauvegarde
différentielle, tenez compte des instructions et points décrits ci-dessous.
!" Restaurez la sauvegarde complète de base de données avant la sauvegarde
différentielle.
!" La syntaxe de restauration d'une sauvegarde différentielle est identique à
celle d'une sauvegarde complète de base de données. Plutôt que de spécifier
la sauvegarde complète de base de données dans la clause FROM, spécifiez
le fichier de sauvegarde contenant la sauvegarde différentielle.
!" Spécifiez l'option NORECOVERY si d'autres journaux de transactions
doivent être restaurés ; sinon, utilisez l'option RECOVERY.
Module 7 : Restauration de bases de données 19

Exemple L'exemple ci-dessous restaure une sauvegarde différentielle sans récupérer la


base de données. Le fichier NwindBacDiff contient une sauvegarde
différentielle. SQL Server vous permet de restaurer des journaux de
transactions avant de rétablir la cohérence de la base de données Northwind en
spécifiant l'option NORECOVERY.
USE master
RESTORE DATABASE Northwind
FROM NwindBacDiff
WITH NORECOVERY
20 Module 7 : Restauration de bases de données

# Restauration à partir d'une sauvegarde du journal des


transactions
Sauvegardes
Sauvegardes de
de la
la base
base de
de données
données Northwind
Northwind
Base de données complète Différentielle Différentielle

Données
Journal
Journal Journal Journal
∆ Journal Journal Journal


Base
Basede
dedonnées
donnéesendommagée
endommagée

USE
USE master
master
RESTORE
RESTORE LOG
LOG Northwind
Northwind
FROM
FROM NwindBacLog
NwindBacLog
Restauration de la base de données Northwind
Restauration de la base de données Northwind WITH FILE = 2, RECOVERY
WITH FILE = 2, RECOVERY
Base de données complète Différentielle

Données
Journal
∆ Journal Journal

Lorsque vous restaurez une base de données à partir d'une sauvegarde du


journal des transactions, SQL Server restaure les modifications apportées à la
base de données et qui sont enregistrées dans le journal des transactions.
La restauration du journal des transactions est généralement utilisée pour
permettre l'application des modifications apportées à la base de données depuis
la dernière sauvegarde complète ou différentielle. Elle joue également un rôle
essentiel lorsqu'il s'agit de récupérer une base de données jusqu'à un certain
point dans le temps.

Éléments à prendre en compte pour la restauration de


journaux de transactions
Bien que la restauration d'une sauvegarde différentielle soit plus rapide, il vous
faudra sans doute, pour préserver la cohérence des données, restaurer d'autres
sauvegardes de journal des transactions créées après une sauvegarde
différentielle.
Avant de restaurer des journaux de transactions, vous devez commencer par
restaurer la sauvegarde complète de base de données. Lorsque vous disposez de
plusieurs journaux de transactions, spécifiez l'option NORECOVERY pour tous
les journaux, à l'exception du dernier. SQL Server interrompt le processus de
récupération jusqu'à ce que le dernier journal soit restauré.
Module 7 : Restauration de bases de données 21

Syntaxe partielle RESTORE LOG {base_données | @variable_nom_base_données}


[FROM <unité_sauvegarde> [, …n]]
[WITH
[{NORECOVERY | RECOVERY | STANDBY =
nom_fichier_annulation}]]
[[,] STOPAT = {date_heure | @variable_date_heure}]
[[,] STOPBEFOREMARK = marque [AFTER date_heure]
[[,] STOPATMARK = marque [AFTER date_heure]

Si vous prévoyez une opération risquée, vous pouvez ajouter une marque dans
le journal afin que la base de données soit restaurée à un point antérieur au
début de l'opération. Pour restaurer une base de données jusqu'à une marque
spécifiée, exécutez la procédure ci-dessous.
!" Utilisez la clause WITH STOPATMARK='marque' pour effectuer la
restauration en remontant jusqu'à la marque et inclure la transaction
contenant la marque.
!" Utilisez la clause WITH STOPBEFOREMARK='marque' pour effectuer la
restauration en remontant jusqu'à la marque et exclure la transaction
contenant la marque.

Exemple Dans cet exemple, une sauvegarde complète de base de données a été effectuée
et enregistrée dans un fichier de sauvegarde et deux sauvegardes du journal des
transactions ont été créées dans un autre fichier de sauvegarde. Trois opérations
de restauration distinctes sont effectuées pour garantir la cohérence de la base
de données.
1. La première étape restaure la base de données à partir d'une sauvegarde
complète de base de données, sans récupérer la base de données.
USE master
RESTORE DATABASE Northwind
FROM NwindBac
WITH NORECOVERY

2. La deuxième étape restaure le premier journal des transactions sans


récupérer la base de données. La progression du processus de restauration
est affichée.
USE master
RESTORE LOG Northwind
FROM NwindBacLog
WITH FILE = 1,
STATS,
NORECOVERY

3. La troisième étape restaure le deuxième journal des transactions, transmet


les transactions validées et annule les transactions non validées. L'option
RECOVERY permet de rétablir la cohérence de la base de données
Northwind.
USE master
RESTORE LOG Northwind
FROM NwindBacLog
WITH FILE = 2,
RECOVERY
22 Module 7 : Restauration de bases de données

Spécification d'un point dans le temps


Sauvegardes
Sauvegardes de
de la
la base
base de
de données
données Northwind
Northwind
Base de données complète Différentielle Differentielle

USE master
Données
Journal USE Journal
Journal
RESTORE
master
RESTORE LOG
Journal
LOG Northwind
Northwind ∆ Journal Journal Journal


FROM NwindBacLog
FROM NwindBacLog
WITH Base
Base de
de données
données endommagée
endommagée
WITH FILE
FILE == 2,
2, RECOVERY,
RECOVERY,
STOPAT
STOPAT == '3
'3 janvier
janvier 2000
2000 01:00'
01:00'
Restauration
Restauration de
de la
la base
base de
de données
données Northwind
Northwind
Base de données complète Différentielle

Données
Journal
∆ Journal Journal Journal

Lorsque vous restaurez des journaux de transactions en utilisant l'option


STOPAT, vous pouvez remonter jusqu'à un point défini dans le temps.
!" Utilisez l'option STOPAT pour récupérer une base de données dans l'état où
elle se trouvait avant que les données aient été endommagées ou que
certains événements aient eu lieu.
Par exemple, si vous savez que la base de données a été mise à jour de façon
malintentionnée à 11:00, vous pouvez restaurer les modifications apportées
au journal des transactions jusqu'à 10:59 et ne pas appliquer les
modifications apportées après cette heure.
!" Vous devez spécifier la date et l'heure auxquelles arrêter le chargement
d'une sauvegarde dans la base de données.
SQL Server restaure tous les enregistrements du journal des transactions
écrits dans la base de données avant un certain moment défini.

Remarque Vous ne pouvez pas utiliser l'option STOPAT avec l'option


STANDBY ou NORECOVERY.
Module 7 : Restauration de bases de données 23

Exemple Dans cet exemple, une sauvegarde complète de base de données et deux
sauvegardes du journal des transactions ont été enregistrées dans un même
fichier de sauvegarde. Toutefois, seules les modifications apportées avant le
03.01.00 à 1:00 sont restaurées. Trois opérations de restauration distinctes sont
effectuées pour garantir la cohérence de la base de données.
1. La première étape restaure une base de données à partir d'une sauvegarde
complète de base de données sans récupérer la base de données.
USE master
RESTORE DATABASE Northwind
FROM NwindBac
WITH NORECOVERY

2. La deuxième étape restaure un journal des transactions sans récupérer la


base de données.
USE master
RESTORE LOG Northwind
FROM NwindBacLog
WITH FILE = 1,
NORECOVERY

3. La troisième étape restaure le deuxième journal des transactions, applique


les modifications apportées avant le 3 janvier 2000 à 01:00 et récupère la
base de données.
USE master
RESTORE LOG Northwind
FROM NwindBacLog
WITH FILE = 2,
RECOVERY,
STOPAT = '3 janvier 2000, 01:00'
24 Module 7 : Restauration de bases de données

Restauration à partir d'une sauvegarde de fichier ou de groupe de


fichiers

! Appliquez tous les journaux de transactions


depuis la sauvegarde de fichier

! Restaurez les sauvegardes de groupes de fichiers


contenant des index et des tables sous forme
d'une unité

USE
USE master
master
RESTORE
RESTORE DATABASE
DATABASE Northwind
Northwind
FILE
FILE == Nwind2
Nwind2
FROM
FROM Nwind2Bac
Nwind2Bac WITH
WITH NORECOVERY
NORECOVERY

SQL Server vous permet de restaurer un fichier de base de données à partir


d'une sauvegarde complète de base de données ou d'une sauvegarde de fichier
individuel. Si vous avez des sauvegardes de fichier et de groupes de fichiers,
vous pouvez les restaurer afin de :
!" réduire le temps nécessaire pour restaurer une base de données très
volumineuse (VLDB, Very Large DataBase) ;
!" récupérer des données lorsqu'un fichier particulier a été endommagé ou
supprimé accidentellement.

Éléments à prendre en compte pour la restauration de


sauvegardes de fichier ou de groupes de fichiers
Quand vous effectuez une restauration à partir d'un fichier ou d'un groupe de
fichiers, tenez compte des recommandations ci-dessous.
!" Appliquez tous les journaux de transactions créés depuis la sauvegarde du
fichier pour rétablir la cohérence du fichier ou du groupe de fichiers restauré
par rapport au reste de la base de données.
SQL Server n'applique que les transactions des sauvegardes des journaux
qui modifient le fichier restauré.
!" Restaurez les sauvegardes de groupes de fichiers conjointement si une table
et ses index associés sont sur deux groupes de fichiers différents.

Syntaxe partielle RESTORE DATABASE {base_données | @variable_nom_base_données}


<fichier_ou_groupe_fichiers> [, ...m]
[FROM <unité_sauvegarde> [, …n]]
où <fichier_ou_groupe_fichiers> représente {FILE = nom_fichier_logique |
FILEGROUP = nom_groupe_fichiers_logique}
Module 7 : Restauration de bases de données 25

Exemple Dans cet exemple, la base de données utilise trois fichiers distincts : Nwind1,
Nwind2 et Nwind3. Le fichier de base de données Nwind2 contient une seule
table et ses index associés. Ce fichier a été sauvegardé sur le fichier de
sauvegarde Nwind2bac. Une sauvegarde du journal des transactions a été
effectuée depuis la dernière sauvegarde de Nwind2. Toutefois, le fichier
Nwind2 doit être restauré car le support physique est endommagé. Dans cet
exemple, deux étapes doivent être effectuées pour garantir la cohérence de la
base de données.
1. La première étape restaure la sauvegarde du fichier de base de données
Nwind2 sans transmettre les transactions validées ni annuler celles non
validées.
USE master
RESTORE DATABASE Northwind
FILE = Nwind2
FROM Nwind2Bac
WITH NORECOVERY

2. La deuxième étape restaure la sauvegarde du journal des transactions,


transmet les transactions validées et annule celles non validées.
USE master
RESTORE LOG Northwind
FROM NwindBacLog
WITH RECOVERY
26 Module 7 : Restauration de bases de données

Restauration de bases de données système


endommagées

! Restauration de bases de données système à partir


d'une sauvegarde
! Reconstruction de bases de données système
! Rattachement ou restauration de bases de données
utilisateur
$ Restaurez à partir d'une sauvegarde
$ Rattachez les fichiers en utilisant la procédure
stockée système sp_attach_db ou
sp_attach_single_file_db

Si le support contenant les bases de données système est endommagé, vous


serez peut-être obligé de recréer les bases de données système.

Restauration de bases de données système à partir d'une


sauvegarde
Si le service SQL Server peut être démarré, vous pouvez utiliser l'instruction
RESTORE DATABASE ou SQL Server Enterprise Manager pour restaurer les
bases de données système à partir d'une sauvegarde valide.

Reconstruction de bases de données système


Si la base de données master est endommagée et que vous ne pouvez pas
démarrer SQL Server, exécutez la procédure décrite ci-dessous.
1. Reconstruisez les bases de données système à l'aide de l'utilitaire de ligne de
commande Rebuildm.exe situé dans le dossier 80/Tools/Binn.
2. Redémarrez le service SQL Server.
3. Restaurez les sauvegardes des bases de données système.

Remarque Lorsque vous reconstruisez les bases de données système, les bases
de données master, model et msdb existantes sont écrasées.
Module 7 : Restauration de bases de données 27

Restauration de bases de données système


Une fois les bases de données système reconstruites et SQL Server redémarré,
exécutez la procédure décrite ci-dessous.
1. Restaurez la base de données master à partir d'une sauvegarde (le cas
échéant).
Si vous ne disposez pas d'une sauvegarde valide de la base de données
master, vous devez recréer manuellement les informations enregistrées dans
la base de données master à l'aide de l'un des outils ci-dessous.
• SQL Server Enterprise Manager.
• Les scripts utilisés à l'origine pour créer la base de données master qui
contient des références aux éléments suivants :
• bases de données utilisateur ;
• fichiers de base de données ;
• unités de sauvegarde ;
• comptes de connexion SQL Server et rôles de sécurité à l'échelle du
serveur.
2. Restaurez la base de données msdb à partir d'une sauvegarde (le cas
échéant).
Vous devez restaurer la base de données msdb lorsque vous reconstruisez la
base de données master. Lorsque vous exécutez l'utilitaire rebuildm, la
base de données msdb est supprimée puis recréée. Par conséquent, toutes
les informations de planification sont perdues.
3. Restaurez la base de données model à partir d'une sauvegarde (le cas
échéant).
28 Module 7 : Restauration de bases de données

Rattachement ou restauration de bases de données


utilisateur
Vous rattachez ou bien restaurez des bases de données utilisateur selon que la
base de données master a été ou non reconstruite.
!" Si la base de données master a été restaurée à partir d'une sauvegarde
valide, elle contient des références à chaque base de données utilisateur.
Aucune autre action n'est requise.
!" Si la base de données master a été reconstruite et qu'aucune sauvegarde
valide n'a été appliquée, exécutez l'une des opérations décrites ci-dessous.
• Restaurez les bases de données utilisateur à partir d'une sauvegarde.
• Rattachez les fichiers de base de données utilisateur existants à la
nouvelle base de données master.
Si les fichiers de base de données utilisateur ne sont pas endommagés,
rattachez-les à la nouvelle base de données master en utilisant la
procédure stockée système sp_attach_db ou sp_attach_single_file_db.
Le rattachement de fichiers de base de données existants informe la base
de données master de l'existence d'une base de données utilisateur.
Vous n'avez pas besoin d'une sauvegarde de la base de données pour la
rattacher à la base de données master.

Remarque Il est plus efficace de rattacher une base de données utilisateur


que d'effectuer une restauration à partir d'une sauvegarde.

Exemple Cet exemple rattache la base de données Northwind à la base de données


master.
USE master
EXEC sp_attach_single_file_db @dbname = 'Northwind',
@physname = 'Mssql\Data\Northwind.mdf'
Module 7 : Restauration de bases de données 29

Conseils pratiques

Rassemblez
Rassemblez des
des informations
informations sur
sur les
les sauvegardes
sauvegardes que
que vous
vous
envisagez
envisagez de
de restaurer
restaurer

Utilisez
Utilisez l'option
l'option NORECOVERY
NORECOVERY si
si vous
vous avez
avez d'autres
d'autres
sauvegardes
sauvegardes àà restaurer
restaurer

Utilisez
Utilisez l'option
l'option RECOVERY
RECOVERY sur sur la
la dernière
dernière sauvegarde
sauvegarde pour
pour
rétablir
rétablir la
la cohérence
cohérence de
de la
la base
base de
de données
données

Ajouter
Ajouter une
une marque
marque dans
dans le
le journal
journal afin
afin que
que la
la base
base de
de données
données
soit
soit restaurée
restaurée jusqu'à
jusqu'à un
un point
point antérieur
antérieur au
au début
début de
de l'opération
l'opération

Testez
Testez régulièrement
régulièrement vos
vos fichiers
fichiers de
de sauvegarde
sauvegarde àà l'aide
l'aide
de
de l'instruction
l'instruction RESTORE
RESTORE VERIFYONLY
VERIFYONLY

Les conseils pratiques décrits ci-dessous sont destinés à vous aider lors de la
restauration des bases de données, des journaux de transactions ou des fichiers.
!" Rassemblez des informations sur les sauvegardes que vous envisagez de
restaurer. Assurez-vous que les fichiers sont valides et contiennent toutes les
sauvegardes requises pour restaurer la base de données dans un état
cohérent.
!" Utilisez l'option NORECOVERY si vous avez d'autres sauvegardes à
restaurer.
!" Utilisez systématiquement l'option RECOVERY sur la dernière sauvegarde
pour rétablir la cohérence de la base de données.
!" Si vous prévoyez une opération risquée, vous pouvez ajouter une marque
dans le journal afin que la base de données soit restaurée jusqu'à un point
antérieur au début de l'opération.
!" Testez régulièrement vos fichiers de sauvegarde à l'aide de l'instruction
RESTORE VERIFYONLY.

Des informations supplémentaires sur les rubriques suivantes sont disponibles


dans la documentation en ligne de SQL Server :
Rubrique Rechercher
Utilisation de l'instruction RESTORE pour « RESTORE HEADERONLY »
obtenir des informations de sauvegarde « RESTORE FILELISTONLY »
« RESTORE LABELONLY »
« RESTORE VERIFYONLY »
Restauration de bases de données à partir des « restauration d'une base de données »
différents types de sauvegardes
Attachement de bases de données sp_attach_db
30 Module 7 : Restauration de bases de données

Atelier A : Restauration de bases de données

Objectifs
À la fin de cet atelier, vous serez à même d'effectuer les tâches suivantes :
!" restaurer une base de données à partir d'une sauvegarde complète de base de
données ;
!" extraire des informations relatives aux jeux de sauvegardes ;
!" restaurer des sauvegardes différentielles et des sauvegardes du journal des
transactions.

Conditions préalables
Avant de poursuivre, vous devez disposer des fichiers script de cet atelier,
situés dans le dossier C:\MOC\2321A\Labfiles\L07.

Pour plus d'informations


Si vous avez besoin d'aide pour exécuter les fichiers, recherchez la chaîne
« Exécution d'une requête » dans l'aide de l'Analyseur de requêtes SQL Server.
Vous pouvez également utiliser les ressources suivantes :
!" le schéma de la base de données Northwind ;
!" la documentation en ligne de SQL Server.
Module 7 : Restauration de bases de données 31

Scénario
La classe est structurée de façon à simuler une société internationale nommée
Northwind Traders. Son nom de domaine fictif est nwtraders.msft. Le serveur
DNS (Domain Name System) principal de nwtraders.msft est l'ordinateur de
l'instructeur, dont l'adresse IP (Internet Protocol) est 192.168.x.200 (où x
représente le numéro de la classe). L'ordinateur de l'instructeur est nommé
London.
Le tableau ci-dessous indique le nom d'utilisateur, le nom d'ordinateur et
l'adresse IP attribués à chacun des ordinateurs de stagiaire appartenant au
domaine fictif nwtraders.msft. Recherchez le nom d'utilisateur correspondant à
votre ordinateur et notez-le.
Nom d'utilisateur Nom d'ordinateur Adresse IP
SQLAdmin1 Vancouver 192.168.x.1
SQLAdmin2 Denver 192.168.x.2
SQLAdmin3 Perth 192.168.x.3
SQLAdmin4 Brisbane 192.168.x.4
SQLAdmin5 Lisbon 192.168.x.5
SQLAdmin6 Bonn 192.168.x.6
SQLAdmin7 Lima 192.168.x.7
SQLAdmin8 Santiago 192.168.x.8
SQLAdmin9 Bangalore 192.168.x.9
SQLAdmin10 Singapore 192.168.x.10
SQLAdmin11 Casablanca 192.168.x.11
SQLAdmin12 Tunis 192.168.x.12
SQLAdmin13 Acapulco 192.168.x.13
SQLAdmin14 Miami 192.168.x.14
SQLAdmin15 Auckland 192.168.x.15
SQLAdmin16 Suva 192.168.x.16
SQLAdmin17 Stockholm 192.168.x.17
SQLAdmin18 Moscow 192.168.x.18
SQLAdmin19 Caracas 192.168.x.19
SQLAdmin20 Montevideo 192.168.x.20
SQLAdmin21 Manila 192.168.x.21
SQLAdmin22 Tokyo 192.168.x.22
SQLAdmin23 Khartoum 192.168.x.23
SQLAdmin24 Nairobi 192.168.x.24

Durée approximative de cet atelier : 45 minutes


32 Module 7 : Restauration de bases de données

Exercice 1
Exécution d'une restauration à partir d'une sauvegarde complète de
base de données
Dans cet exercice, vous allez examiner et exécuter plusieurs scripts qui
modifient, sauvegardent et endommagent intentionnellement la base de données
NWCOPY. Vous allez utiliser SQL Server Enterprise Manager pour restaurer
la base de données NWCOPY à partir d'une sauvegarde complète de base de
données et confirmer que les données ont été restaurées.

!"
Pour créer la base de données NWCOPY
1. Ouvrez une session sur le domaine de la classe NWTraders en utilisant les
informations contenues dans le tableau suivant :
Option Valeur
Utilisateur SQLAdminx (où x représente le nom de
votre ordinateur dans le domaine
nwtraders.msft de la classe)
Mot de passe password

2. Copiez le fichier Labfiles\L07\NWC1.bak dans le dossier C:\Backup sur


votre disque dur local.
3. Ouvrez l'Analyseur de requêtes SQL Server et connectez-vous si nécessaire
au serveur (local) en utilisant l'authentification Windows.
Vous êtes autorisé à vous connecter à SQL Server et à l'administrer car vous
avez ouvert une session en tant que SQLAdminx, qui est membre du groupe
local Administrateurs de Windows 2000. Le rôle sysadmin est
automatiquement attribué à tous les membres de ce groupe.
4. Exécutez le fichier Labfiles\L07\SetupNWC.sql.
Ce script restaure la base de données NWCOPY utilisée dans cet atelier.

!"
Pour modifier la base de données NWCOPY
Au cours de cette procédure, vous allez exécuter un script qui ajoute une ligne à
la table Products (produits). Vous allez ensuite écrire et exécuter une requête
qui renvoie la nouvelle ligne.
1. Ouvrez une fenêtre de requête, puis ouvrez le fichier Labfiles\L07\
AddProd.sql. Examinez son contenu, et exécutez-le.
Ce script ajoute le nouveau produit Maple Flavor Pancake Mix (préparation
pour crêpe goût érable) à la table Products.
2. Examinez les résultats pour confirmer que la nouvelle ligne a été ajoutée.
Module 7 : Restauration de bases de données 33

!"
Pour sauvegarder la base de données NWCOPY
Au cours de cette procédure, vous allez exécuter un script qui sauvegarde la
base de données NWCOPY dans un fichier de sauvegarde unique.
• Ouvrez le fichier Labfiles\L07\MakeBack.sql. Examinez son contenu, et
exécutez-le.
Ce script sauvegarde la base de données NWCOPY dans un fichier de
sauvegarde unique. Le nom logique de ce fichier de sauvegarde est NWC2
et son nom physique C:\Backup\NWC2.bak.

!"
Pour simuler une modification accidentelle des données
Au cours de cette procédure, vous allez exécuter un script qui endommage la
base de données en mettant à jour toutes les lignes de la table Products. Vous
allez ensuite écrire et exécuter une requête pour confirmer que le produit Maple
Flavor Pancake Mix a été supprimé de la table Products.
1. Ouvrez une fenêtre de requête, puis ouvrez le fichier Labfiles\L07\
DataLoss.sql. Examinez son contenu, et exécutez-le.
Ce script endommage la base de données en mettant à jour toutes les lignes
de la table Products.
2. Examinez les résultats pour confirmer que le produit Maple Flavor Pancake
Mix a été supprimé de la table Products.
3. Fermez la fenêtre de requête.

Important Vous devez fermer la fenêtre de requête et mettre fin à la connexion


à la base de données NWCOPY pour pouvoir exécuter la procédure ci-dessous.
Pour que l'opération de restauration réussisse, aucun utilisateur ne doit être
connecté à la base de données.

!"
Pour restaurer la base de données NWCOPY à partir d'une sauvegarde
complète de base de données
Au cours de cette procédure, vous allez utiliser SQL Server Enterprise Manager
pour restreindre l'accès à la base de données NWCOPY, réaliser la restauration
à partir d'une sauvegarde complète de base de données, puis autoriser l'accès à
la base de données une fois le processus de restauration terminé.
1. Ouvrez SQL Server Enterprise Manager.
2. Dans l'arborescence de la console, développez Serveurs Microsoft SQL,
puis Groupe SQL Server.
3. Développez votre serveur, Bases de données, cliquez avec le bouton droit
sur NWCOPY, puis cliquez sur Propriétés.
4. Dans l'onglet Option, sélectionnez Limiter l'accès, puis l'option Membres
de db_owner, dbcreator, ou de sysadmin pour restreindre l'accès à la base
de données au cours du processus de restauration. Cliquez sur OK pour
continuer.
5. Dans l'arborescence de la console, cliquez avec le bouton droit sur
NWCOPY, pointez sur Toutes les tâches, puis cliquez sur Restaurer une
base de données.
6. Dans l'onglet Général, dans le champ Restaurer en tant que base de
données, tapez le nom de la base de données à restaurer.
34 Module 7 : Restauration de bases de données

7. Dans l'onglet Général, sélectionnez Base de données.


8. Dans la liste Première sauvegarde à restaurer, sélectionnez
<date heure> - NWCOPY-Full.
9. Dans la liste Restaurer, sélectionnez la base de données à restaurer.
10. Dans l'onglet Options, sélectionnez Laisser la base opérationnelle. Aucun
autre journal de transactions ne peut être restauré.
11. Cliquez sur OK pour fermer la boîte de dialogue et restaurer la base de
données NWCOPY.

!"
Pour confirmer que les données ont été récupérées
Au cours de cette procédure, vous allez écrire et exécuter une requête qui
renvoie une liste de tous les produits de la table Products, notamment le
nouveau produit Maple Flavor Pancake Mix.
• Ouvrez une fenêtre de requête. Écrivez et exécutez la requête suivante pour
confirmer que tous les produits, notamment Maple Flavor Pancake Mix,
sont inclus dans la liste :
USE NWCOPY
SELECT *
FROM Products
Module 7 : Restauration de bases de données 35

Exercice 2
Simulation et capture de l'activité d'une base de données
Dans cet exercice, vous allez examiner et exécuter plusieurs fichiers qui
ajoutent des données à la base de données NWCOPY et effectuent des
sauvegardes complètes de base de données, différentielles et de journaux de
transactions. Vous allez simuler l'endommagement de l'unité qui contient la
base de données NWCOPY et étudier le message d'erreur dans le journal
applications Microsoft Windows 2000.

!"
Pour effectuer une sauvegarde complète de la base de données
NWCOPY
Au cours de cette procédure, vous allez exécuter un script qui sauvegarde la
base de données NWCOPY sur l'unité de sauvegarde sur disque NWC3.
• Ouvrez une fenêtre de requête, puis ouvrez le fichier Labfiles\L07\
FullBack.sql. Examinez son contenu, et exécutez-le. Ce script sauvegarde la
base de données NWCOPY sur l'unité de sauvegarde sur disque NWC3.

!"
Pour modifier la base de données NWCOPY et sauvegarder le journal
des transactions
Au cours de cette procédure, vous allez exécuter un script qui ajoute un client à
la table Customers (clients) et confirme que le client a été ajouté. Vous allez
ensuite exécuter un autre script qui sauvegarde le journal des transactions sur
l'unité de sauvegarde sur disque NWCHANGE.
1. Ouvrez une fenêtre de requête, puis ouvrez le fichier Labfiles\L07\
AddCust1.sql. Examinez son contenu, et exécutez-le.
Ce script ajoute le client Health Food Store à la table Customers et
interroge la table afin de renvoyer le nouveau client.
2. Ouvrez une fenêtre de requête, puis ouvrez le fichier Labfiles\L07\
LogBack1.sql. Examinez son contenu, et exécutez-le.
Ce script sauvegarde le journal des transactions de la base de données
NWCOPY sur l'unité de sauvegarde sur disque NWCHANGE.
36 Module 7 : Restauration de bases de données

!"
Pour modifier la base de données NWCOPY et effectuer une
sauvegarde différentielle
Au cours de cette procédure, vous allez exécuter un script qui ajoute un autre
client à la table Customers et renvoie ce client pour confirmer qu'il a été ajouté.
Vous allez ensuite exécuter un autre script qui effectue une sauvegarde
différentielle et l'ajoute sur l'unité de sauvegarde sur disque NWCHANGE.
1. Ouvrez une fenêtre de requête, puis le fichier Labfiles\L07\AddCust2.sql.
Examinez son contenu, et exécutez-le.
Ce script ajoute le client Volcano Coffee Company à la table Customers et
interroge la table afin de renvoyer le nouveau client.
2. Ouvrez une fenêtre de requête, puis le fichier Labfiles\L07\DiffBack.sql.
Examinez son contenu, et exécutez-le.
Ce script effectue une sauvegarde différentielle afin de capturer toutes les
modifications apportées depuis la dernière sauvegarde complète de base de
données. La sauvegarde différentielle est ajoutée sur l'unité de sauvegarde
sur disque NWCHANGE.

!"
Pour modifier la base de données NWCOPY et effectuer une autre
sauvegarde du journal des transactions
Au cours de cette procédure, vous allez exécuter un script qui ajoute un autre
client à la base de données NWCOPY et confirme que le client a été ajouté.
Vous allez ensuite exécuter un autre script qui effectue une seconde sauvegarde
du journal des transactions et l'ajoute à l'unité de sauvegarde sur disque
NWCHANGE.
1. Ouvrez une fenêtre de requête, puis le fichier Labfiles\L07\AddCust3.sql.
Examinez son contenu, et exécutez-le.
Ce script ajoute le client The Wine Cellar à la table Customers et interroge
la table pour renvoyer le nouveau client.
2. Ouvrez une fenêtre de requête, puis le fichier Labfiles\L07\LogBack2.sql.
Examinez son contenu, et exécutez-le.
Ce script sauvegarde le journal des transactions de la base de données
NWCOPY et l'ajoute à l'unité de sauvegarde sur disque NWCHANGE.

!"
Pour simuler l'endommagement de la base de données
Au cours de cette procédure, vous allez simuler l'endommagement de l'unité qui
stocke la base de données NWCOPY.
1. Ouvrez le Gestionnaire de services SQL Server et arrêtez le service
SQL Server.
2. Basculez vers SQL Server Enterprise Manager, et fermez-le.
3. Renommez le fichier de données Mssql\Data\Nwcopy_data.mdf de la base
de données NWCOPY en Nwcopy_data.bad.
4. Redémarrez le service SQL Server.
Module 7 : Restauration de bases de données 37

5. Ouvrez SQL Server Enterprise Manager.


6. Dans l'arborescence de la console, développez votre serveur, puis cliquez
sur Bases de données.
SQL Server indique que la base de données NWCOPY est suspecte.
7. Ouvrez l'Observateur d'événements et examinez le contenu du journal
applications.
Des messages d'erreur doivent indiquer que le fichier NWCopy_Data.mdf
est introuvable et que l'unité n'a pu être ouverte.
Que devez-vous faire pour restaurer et récupérer la base de données
NWCOPY ?
____________________________________________________________

____________________________________________________________

____________________________________________________________

____________________________________________________________
38 Module 7 : Restauration de bases de données

Exercice 3
Restauration de sauvegardes complètes de base de données,
différentielles et de journaux de transactions
Dans cet exercice, vous allez utiliser SQL Server Enterprise Manager pour
examiner toutes les unités de sauvegarde qui contiennent des sauvegardes de la
base de données NWCOPY, et déterminer si la stratégie de sauvegarde
sélectionnée est appropriée. Vous allez effectuer plusieurs opérations de
restauration et examiner le contenu de la base de données après chaque
processus de restauration.

!"
Pour examiner les sauvegardes disponibles
Au cours de cette procédure, vous allez utiliser SQL Server Enterprise Manager
pour examiner le contenu et la date de création de toutes les sauvegardes de la
base de données NWCOPY.
1. Basculez vers SQL Server Enterprise Manager.
2. Développez votre serveur, puis Gestion et cliquez sur Sauvegarde.
3. Dans le volet de détails, cliquez avec le bouton droit sur l'unité NWC3, puis
cliquez sur Propriétés.
4. Cliquez sur Afficher le contenu pour examiner le contenu de l'unité NWC3.
Notez le type, la description ainsi que la date et l'heure de chaque
sauvegarde effectuée sur l'unité.
Que contient l'unité NWC3 ?
____________________________________________________________

____________________________________________________________

5. Examinez le contenu de l'unité de sauvegarde NWCHANGE. Notez le type,


la description ainsi que la date et l'heure de chaque sauvegarde effectuée sur
l'unité.
Que contient l'unité NWCHANGE ?
____________________________________________________________

____________________________________________________________
Module 7 : Restauration de bases de données 39

!"
Pour examiner la stratégie de restauration sélectionnée
Au cours de cette procédure, vous allez examiner la stratégie de restauration
que SQL Server Enterprise Manager propose automatiquement et déterminer si
elle est appropriée.
1. Dans l'arborescence de la console, cliquez avec le bouton droit sur
NWCOPY, pointez sur Toutes les tâches, puis cliquez sur Restaurer une
base de données.
2. La boîte de dialogue Restaurer la base de données s'affiche. Vérifiez que
la base de données NWCOPY est sélectionnée.
Notez que quatre sauvegardes sont répertoriées. SQL Server sélectionne
automatiquement celles devant être restaurées afin de rétablir la cohérence
de la base de données. Trois des quatre sauvegardes sont sélectionnées
(sauvegarde de base de données complète, différentielle et une sauvegarde
du journal des transactions).
Estimez-vous que les sauvegardes sélectionnées doivent être restaurées ?
____________________________________________________________

____________________________________________________________

Pourquoi la première sauvegarde du journal des transactions n'est-elle pas


sélectionnée ?
____________________________________________________________

____________________________________________________________

3. Cliquez sur Annuler pour fermer la boîte de dialogue Restaurer la base de


données.

!"
Pour restaurer des sauvegardes de base de données complètes et
différentielles
Au cours de cette procédure, vous allez utiliser SQL Server Enterprise Manager
pour restaurer uniquement les sauvegardes de base de données complètes et
différentielles, puis autoriser un accès en lecture seule à la base de données une
fois le processus de restauration terminé.
1. Dans l'arborescence de la console, développez Serveurs Microsoft SQL,
puis Groupe SQL Server.
2. Développez votre serveur, Bases de données, cliquez avec le bouton droit
sur la base de données, pointez sur Toutes les tâches, puis cliquez sur
Restaurer une base de données.
3. Sous Restaurer en tant que base de données, tapez NWCOPY
4. Dans l'onglet Général, sélectionnez Base de données.
5. Dans la liste Afficher les sauvegardes de la BdD, sélectionnez NWCOPY.
40 Module 7 : Restauration de bases de données

6. Dans la liste Première sauvegarde à restaurer, sélectionnez la sauvegarde


complète de base de données.
7. Dans la liste Restaurer, sélectionnez les fichiers de sauvegarde de base de
données complète et différentielle.
8. Dans l'onglet Options, sélectionnez Laisser la base en lecture seule et
permettre la restauration d'autres journaux de transactions.
9. Cliquez sur OK pour démarrer le processus de restauration.
10. Cliquez sur OK quand la restauration est terminée.

!"
Pour examiner le contenu d'une base de données
Au cours de cette procédure, vous allez exécuter un script qui répertorie tous les
clients contenus dans la table Customers afin d'évaluer le processus de
restauration.
1. Ouvrez une fenêtre de requête, puis le fichier Labfiles\L07\ListCust.sql.
Examinez son contenu, et exécutez-le.
Ce script détermine si les trois nouveaux clients ajoutés à la table
Customers dans l'exercice 2 ont été récupérés.
Les trois nouveaux clients ont-ils été récupérés ?
____________________________________________________________

____________________________________________________________

2. Fermez la fenêtre de requête.

!"
Pour restaurer la sauvegarde du journal des transactions
Au cours de cette procédure, vous allez utiliser SQL Server Enterprise Manager
pour restaurer le journal des transactions, puis autoriser l'accès à la base de
données une fois le processus de restauration terminé.
1. Basculez vers SQL Server Enterprise Manager.
2. Développez Bases de données, cliquez avec le bouton droit sur la base de
données, pointez sur Toutes les tâches, puis cliquez sur Restaurer une
base de données.
3. Sous Restaurer en tant que base de données, tapez NWCOPY
4. Dans l'onglet Général, sélectionnez Base de données.
5. Dans la liste Afficher les sauvegardes de la BdD, sélectionnez NWCOPY.
6. Dans la liste Première sauvegarde à restaurer, sélectionnez la sauvegarde
complète de base de données.
7. Dans la liste Restaurer, sélectionnez le dernier journal des transactions (jeu
de sauvegardes n° 3 sur l'unité NWCHANGE).
Module 7 : Restauration de bases de données 41

8. Dans l'onglet Options, sélectionnez Laisser la base opérationnelle. Aucun


autre journal de transactions ne peut être restauré.
9. Cliquez sur OK pour démarrer le processus de restauration.
10. Cliquez sur OK quand la restauration est terminée.
11. Cliquez sur Actualiser dans la barre d'outils. Dans le volet de détails,
cliquez avec le bouton droit sur NWCOPY, puis cliquez sur Propriétés.
12. Dans l'onglet Option, désactivez si nécessaire la case à cocher Limiter
l'accès, puis cliquez sur OK pour continuer.

!"
Pour examiner le contenu d'une base de données
Au cours de cette procédure, vous allez exécuter un script qui répertorie tous les
clients contenus dans la table Customers afin d'évaluer le processus de
restauration.
• Ouvrez une fenêtre de requête, puis le fichier Labfiles\L07\ListCust.sql.
Examinez son contenu, et exécutez-le. Ce script détermine si les trois
nouveaux clients ajoutés à la table Customers dans l'exercice 2 ont été
récupérés.
Les trois nouveaux clients ont-ils été récupérés ?
____________________________________________________________

____________________________________________________________
42 Module 7 : Restauration de bases de données

Contrôle des acquis

! Processus de récupération de SQL Server


! Préparation de la restauration d'une base de
données
! Restauration de sauvegardes
! Restauration de bases de données à partir de
différents types de sauvegardes
! Restauration de bases de données système
endommagées

1. Qu'est-ce que le processus de récupération automatique et à quel moment


est-il enclenché ?

2. Quelles tâches devez-vous effectuer avant de restaurer une base de


données ?

3. Vous disposez d'une sauvegarde complète de base de données et de


plusieurs sauvegardes du journal des transactions. La base de données est
répartie sur quatre fichiers. Le disque sur lequel figure le troisième fichier
tombe en panne. Que devez-vous faire pour restaurer et récupérer la base de
données ?
Module 7 : Restauration de bases de données 43

4. Votre base de données est configurée sur le modèle de restauration


complète. Vous disposez d'une sauvegarde complète de base de données et
de plusieurs sauvegardes du journal des transactions. Une mise à jour
malintentionnée de la base de données a été effectuée à 09:21. Il est à
présent 09:30. Que devez-vous faire pour restaurer la base de données et
rétablir sa cohérence ?

5. Dans le scénario présenté à la question 4, des modifications vont-elles être


perdues suite à la restauration ?
THIS PAGE INTENTIONALLY LEFT BLANK

Vous aimerez peut-être aussi