• Aucun résultat trouvé

Table des matières 1 DISASTER RECOVERY SAUVEGARDER RESTAURER BASE DE DONNÉS "SUSPECT"... 28

N/A
N/A
Protected

Academic year: 2022

Partager "Table des matières 1 DISASTER RECOVERY SAUVEGARDER RESTAURER BASE DE DONNÉS "SUSPECT"... 28"

Copied!
28
0
0

Texte intégral

(1)

_____________________________________________________________________

 2011 Hakim Benameurlaine 1

Table des matières

1 DISASTER RECOVERY ... 2

1.1 SAUVEGARDER ... 4

1.2 RESTAURER... 21

1.3 BASE DE DONNÉS "SUSPECT" ... 28

(2)

1 DISASTER RECOVERY

Physiquement, les bases de données sont stockées dans des fichiers.

FICHIERS

fichiers de données Filegroup primaire (.mdf) Filegroup secondaire (.ndf)

Journaux des transactions .ldf

La sauvegarde/restauration sert à mettre en sécurité des données sur un support amovible, et au besoin à restaurer ces données.

MODÈLES DE RECOUVREMENT (RECOVERY MODELS)

Simple  Les journaux de transactions sont tronqués au commit

 Facile à maintenir

 Pas de Point-In-Time Restore

 Supporte les deux types de sauvegarde Full et Différentiel

 Possibilité de perte de données

Full  Supporte tous les types de sauvegarde

 Pas de perte de données

Bulk-logged  Génération minimale de journaux de transactions

 Idéal pour les chargements massifs de données

Voici les différents types de sauvegarde :

(3)

_____________________________________________________________________

 2011 Hakim Benameurlaine 3

TYPES DE SAUVEGARDE

Full  Sauvegarde complète.

Différentiel  Sauvegarde tous les changements depuis la dernière sauvegarde complète

Transaction log  Sauvegarde les journaux de transactions et fait un truncate Filegroups  Sauvegarde les fichiers spécifiques à un filegroup

Les stratégies de sauvegarde sont les suivantes : STRATÉGIES DE SAUVEGARDE

Full  La sauvegarde prend beaucoup de temps

 Le restore est rapide

 Les journaux de transactions ne sont pas tronqués Full+Diff  La sauvegarde est rapide

 Le restore prend beaucoup de temps

 Les journaux de transactions ne sont pas tronqués Full+Log  La sauvegarde est rapide

 Le restore prend beaucoup de temps

 Les journaux de transactions sont tronqués Full+Diff+Log  La sauvegarde est rapide

 Le restore est rapide

 Les journaux de transactions sont tronqués Filegroup  Idéal pour les VLDB (Very Large Data Base)

(4)

Les types de restore sont les suivants : TYPES DE RESTORE

Standard  Utiliser l’option NO_RECOVERY lors d’un restore de plusieurs backups

 Utiliser l’option RECOVERY lors du restore du dernier backup

 Utiliser l’option MOVE si on restore dans une autre location physique

Point-In-Time  Utiliser l’option STOPAT pour restaurer à partir de n'importe quel enregistrement ponctuel (point-in-time)

 Nécessite de sauvegarder les journaux de transactions

Filegroup  Permet de restaurer le Filegroup primaire et optionnellement les Filegroup secondaire.

1.1 SAUVEGARDER

1) Backup device

Le backup device est un mécanisme permanent de stockage.

(5)

_____________________________________________________________________

 2011 Hakim Benameurlaine 5

En premier on va créer les trois devices suivants :

AW-Data pour le Full

AW-FileGroups

AW-log

Supprimer le device AW-Data : IF EXISTS (SELECT name

FROM master.dbo.sysdevices WHERE name = N'AW-Data')

EXEC master.dbo.sp_dropdevice @logicalname = N'AW-Data'

Supprimer le device AW-FileGroups : IF EXISTS (SELECT name

FROM master.dbo.sysdevices WHERE name = N'AW-FileGroups') EXEC master.dbo.sp_dropdevice @logicalname = N'AW-FileGroups'

Supprimer le device AW-log : IF EXISTS (SELECT name

FROM master.dbo.sysdevices WHERE name = N'AW-log')

EXEC master.dbo.sp_dropdevice @logicalname = N'AW-log'

Créer le device AW-Data :

EXEC master.dbo.sp_addumpdevice

@devtype = N'disk', @logicalname = N'AW-Data',

@physicalname = N'C:\BACKUP\AW-Data.bak'

(6)

Créer le device AW-log :

EXEC master.dbo.sp_addumpdevice

@devtype = N'disk', @logicalname = N'AW-log',

@physicalname = N'C:\BACKUP\AW-log.bak'

Créer le device AW-FileGroups

EXEC master.dbo.sp_addumpdevice

@devtype = N'disk', @logicalname = N'AW-FileGroups',

@physicalname = N'C:\BACKUP\AW-FileGroups.bak'

2) Changer le Recovery model à Full

Le Recevery model par défaut est Simple, il faut le modifier à Full.

La commande pour modifier le recovery model à FULL : USE [master]

GO

ALTER DATABASE [AdventureWorks]

SET RECOVERY FULL WITH NO_WAIT GO

(7)

_____________________________________________________________________

 2011 Hakim Benameurlaine 7

3) Faire un Full backup

(8)
(9)

_____________________________________________________________________

 2011 Hakim Benameurlaine 9

La commande pour faire un Full backup : BACKUP DATABASE [AdventureWorks]

TO [AW-Data]

WITH DESCRIPTION = N'Instance de production',

FORMAT, INIT, MEDIADESCRIPTION = N'AW-Media-Set', MEDIANAME = N'AW-Media',

NAME = N'AdventureWorks-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

GO

4) Vérifier le backup

(10)

5) Changer le Recovery model à Bulk-logged

La commande pour modifier le recovery model à Bulk-logged : USE [master]

GO

ALTER DATABASE [AdventureWorks]

SET RECOVERY BULK_LOGGED WITH NO_WAIT GO

6) Exécuter le Bulk-Insert USE [AdventureWorks]

GO

Créer la table test :

IF EXISTS (SELECT * FROM sys.objects WHERE object_id

= OBJECT_ID(N'[dbo].[test]') AND type in (N'U')) DROP TABLE [dbo].[test]

CREATE TABLE dbo.test (

NUM INT,

NOM NVARCHAR(10), FAB NVARCHAR(10) )

Éxécuter le bulk insert dans la table test : BULK INSERT dbo.test

FROM 'c:\sql\test.txt'

WITH (FIELDTERMINATOR = ',') 7) Remettre le Recovery model à Full

(11)

_____________________________________________________________________

 2011 Hakim Benameurlaine 11

La commande pour modifier le recovery model à FULL:

USE [master]

GO

ALTER DATABASE [AdventureWorks]

SET RECOVERY FULL WITH NO_WAIT GO

8) Faire un backup différentiel

(12)
(13)

_____________________________________________________________________

 2011 Hakim Benameurlaine 13

(14)

La commande pour faire un backup différentiel : BACKUP DATABASE [AdventureWorks]

TO [AW-Data]

WITH DIFFERENTIAL ,

DESCRIPTION = N'Instance de production', NOFORMAT, NOINIT,

NAME = N'AdventureWorks-Differential Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

GO

(15)

_____________________________________________________________________

 2011 Hakim Benameurlaine 15

9) Faire des transactions Créer la table vente : USE [AdventureWorks]

GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ventes]') AND type in (N'U'))

DROP TABLE [dbo].[ventes]

CREATE TABLE dbo.ventes (

NUM_TR INT IDENTITY, MONTANT MONEY,

DATE_TR DATETIME )

Faire des transactions:

-- Faire des transactions

INSERT INTO dbo.ventes VALUES (80,GETDATE()) INSERT INTO dbo.ventes VALUES (20,GETDATE()) INSERT INTO dbo.ventes VALUES (38,GETDATE()) -- Mauvaise transaction

INSERT INTO dbo.ventes VALUES (49,GETDATE())

(16)

10) Faire un backup transaction log

On va faire un backup transaction log pour sauvegarder les transactions précédentes :

(17)

_____________________________________________________________________

 2011 Hakim Benameurlaine 17

La commande pour faire un backup transaction log : -- Faire Transaction log backup

BACKUP LOG [AdventureWorks]

TO [AW-log]

WITH DESCRIPTION = N'Instance de production', FORMAT, INIT,

MEDIADESCRIPTION = N'AW-Media-Set', MEDIANAME = N'AW-Media',

NAME = N'AdventureWorks-Transaction Log Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

GO

(18)

11) Ajouter un Filegroup

La commande qui ajoute le filegroup FINANCE:

USE [master]

GO

ALTER DATABASE [AdventureWorks]

ADD FILEGROUP [FINANCE]

GO

ALTER DATABASE [AdventureWorks]

ADD FILE

( NAME = N'Finance_Data',

FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\Finance_Data.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB )

TO FILEGROUP [FINANCE]

GO

(19)

_____________________________________________________________________

 2011 Hakim Benameurlaine 19

12) Mettre la table dbo.test dans le nouveau Filegroup

On va mettre la table ventes dans le nouveau filegroup FINANCE.

13) Faire un backup Filegroups

(20)

La commande pour faire un backup des filegroups : BACKUP DATABASE [AdventureWorks]

FILEGROUP = N'PRIMARY', FILEGROUP = N'FINANCE' TO [AW-FileGroups]

WITH DESCRIPTION = N'Instance de production', NOFORMAT, NOINIT,

NAME = N'AdventureWorks-Full Filegroup Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

GO

(21)

_____________________________________________________________________

 2011 Hakim Benameurlaine 21

1.2 RESTAURER

1) Supprimer la base de données

Afin de simuler un désastre on va supprimer la base de données AdventureWorks :

--Simuler un désastre USE [master]

GO

IF EXISTS (SELECT name FROM sys.databases

WHERE name = N'AdventureWorks') DROP DATABASE [AdventureWorks]

2) Restaurer le Full backup

(22)
(23)

_____________________________________________________________________

 2011 Hakim Benameurlaine 23

La commande pour faire un restore avec l’option NORECOVERY:

RESTORE DATABASE [AdventureWorks]

FROM [AW-Data]

WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10 GO

RESTORE DATABASE [AdventureWorks]

FROM [AW-Data]

WITH FILE = 2, NORECOVERY, NOUNLOAD, STATS = 10 GO

Une fois le restore complété, il faut appliquer les transactions log : 3) Restaurer les transactions log

(24)
(25)

_____________________________________________________________________

 2011 Hakim Benameurlaine 25

La commande pour faire un restore avec des transactions log : --Restaurer les Transactions log.

RESTORE LOG [AdventureWorks]

FROM [AW-log]

WITH FILE = 1, NOUNLOAD, STATS = 10, STOPAT = N'11/28/2009 17:23:57'

GO

Les données avant la restauration :

(26)

Les données après la restauration :

(27)

_____________________________________________________________________

 2011 Hakim Benameurlaine 27

4) Filegroup restore

La commande pour faire un restore avec des filegroups:

RESTORE DATABASE [AdventureWorks]

FILE = N'AdventureWorks_Data', FILE = N'Finance_Data'

FROM [AW-FileGroups]

WITH FILE = 1, NOUNLOAD, STATS = 10 GO

(28)

1.3 BASE DE DONNÉS "SUSPECT"

Voici la procédure à appliquer sur une base de données FORMATION marquée "suspect" :

Étape 1 : Faire un reset du statut de la base de données : USE master

EXEC sp_resetstatus 'FORMATION'

Étape 2 : Mettre la base de données en mode EMERGENCY : ALTER DATABASE FORMATION SET EMERGENCY

Étape 3 : Vérifier l’intégrité de la base de données:

DBCC checkdb('FORMATION')

Étape 4 : Mettre la base de données en mode SINGLE_USER:

ALTER DATABASE FORMATION SET SINGLE_USER WITH ROLLBACK IMMEDIATE

Étape 5 : Vérifier l’intégrité de la base de données:

DBCC CheckDB ('FORMATION', REPAIR_ALLOW_DATA_LOSS) Étape 6 : Mettre la base de données en mode MULTI_USER :

ALTER DATABASE FORMATION SET MULTI_USER

Références

Documents relatifs

- Les identificateurs qui contiennent un double souligné ou bien qui commencent par un souligné suivi par une lettre en majuscule sont réservés pour être utilisés par le

lst.remove(val) suppression d'un élément à partir de sa valeur suppression de l'élément à une position et retour de la valeur. tri / inversion de la liste

trois types pour les nombres : int (immuable), float (immuable), complex (immuable) des types pour les s´ equences : de caract` eres : str (immuable), d’entiers positifs :

Elle n'est accessible que depuis l'intérieur du bloc ou elle est déclarée, mais elle est créée au début du programme et elle existe aussi longtemps que dure l'exécution de

Dans notre système conventionnel, nous utilisons les puissances de 10 pour pondérer la valeur des chiffres selon leur position, cependant il est possible d'imaginer

D Les données sont envoyées en plusieurs parties qui suivent des itinéraires différents au sein du réseau et arrivent à destination dans un ordre quelconque.

To access data in a cell array, you use the same matrix indexing as with other MATLAB matrices and arrays.. However, with cell array indexing, you use curly braces, {} , instead

C’est le fait que ces deux fonctions sont les constructeurs choisis pour les listes qui autorise à faire match de cette façon dans les programmes.. On pourrait tout à fait définir