reprises sur pannes d'une bd
DESCRIPTION
Reprises sur Pannes d'une BD. Witold Litwin. Pannes d'une BD. Matériel RAM ou CPU données sont perdues Disque données sont perdues ou corrompues Coupures de alimentation il faut "shut-down" la BD proprement Logiciel tout peut arriver. Reprises sur pannes. Panne régulière - PowerPoint PPT PresentationTRANSCRIPT
1
Reprises sur Pannes d'une BDReprises sur Pannes d'une BDReprises sur Pannes d'une BDReprises sur Pannes d'une BD
Witold LitwinWitold Litwin
2
Pannes d'une BDPannes d'une BDPannes d'une BDPannes d'une BD
MatérielMatériel– RAM ou CPURAM ou CPU
» données sont perduesdonnées sont perdues
– DisqueDisque» données sont perdues ou corrompuesdonnées sont perdues ou corrompues
– Coupures de alimentationCoupures de alimentation» il faut "shut-down" la BD proprementil faut "shut-down" la BD proprement
LogicielLogiciel– tout peut arrivertout peut arriver
3
Reprises sur pannesReprises sur pannesReprises sur pannesReprises sur pannes
Panne Panne régulièrerégulière– reprise à partir du journal et du checkpointreprise à partir du journal et du checkpoint
Panne Panne catastrophiquecatastrophique– reprise à partir d'une sauvegarde (copie globale) de la BDreprise à partir d'une sauvegarde (copie globale) de la BD
A froid (règle générale)A froid (règle générale)– l'accès des usagers à la base est arrêtél'accès des usagers à la base est arrêté
A chaudA chaud– l'accès à la base continuel'accès à la base continue
» préférable dans une BD répartiepréférable dans une BD répartie
4
Principes généraux de reprisePrincipes généraux de reprisePrincipes généraux de reprisePrincipes généraux de reprise
Une transaction = unité de repriseUne transaction = unité de reprise– l'effet de toute transaction commise doit être l'effet de toute transaction commise doit être
restaurérestauré– l'effet de toute transaction avortée doit être l'effet de toute transaction avortée doit être
annuléannulé Un fichier dit Un fichier dit journal journal (log file) (log file) doit survivre doit survivre
aux pannes sur une aux pannes sur une mémoire stablemémoire stable– bande ou disquebande ou disque
CT OP AT CT ChP BT
temps
5
Articles du journalArticles du journalArticles du journalArticles du journal
TID (début)TID (début) TID (commit/abort)TID (commit/abort) TID, Op, TupleId, TID, Op, TupleId, BeforeImage, AfterImageBeforeImage, AfterImage
– BeforeImage = Null pour un InsertBeforeImage = Null pour un Insert
– AfterImageAfterImage = Null pour un Delete = Null pour un Delete
» Log Log physiquephysique contient l'image-après physique contient l'image-après physique
» Log Log logique logique permet de le déduire de Oppermet de le déduire de Op Checkpoint recordCheckpoint record
– timestamp timestamp t t
– copie du cache au moment copie du cache au moment tt
– TIDs des transactions en cours au moment TIDs des transactions en cours au moment tt
6
Reprise à partir du journalReprise à partir du journalReprise à partir du journalReprise à partir du journal
Les checkpoints sont pris aux intervalles Les checkpoints sont pris aux intervalles réguliersréguliers
Tout article du journal est écrit avant l'op. Tout article du journal est écrit avant l'op. corresp.corresp.– write-ahead protocolwrite-ahead protocol
Et quand une reprise est à faire:Et quand une reprise est à faire:
7
on trouve le dernier checkpointon trouve le dernier checkpoint on restaure le cacheon restaure le cache on crée deux listes vides UNDO et REDOon crée deux listes vides UNDO et REDO On lit le journal en arrière, et la liste des TIDS On lit le journal en arrière, et la liste des TIDS
dans l'article checkpoint :dans l'article checkpoint :– si Commit T, alors REDO := REDO + T ;si Commit T, alors REDO := REDO + T ;– si Abort T, alors UNDO := UNDO + T ;si Abort T, alors UNDO := UNDO + T ;– si Begin T et T si Begin T et T REDO, alors REDO, alors
UNDO := UNDO + T ;UNDO := UNDO + T ; Défais les transactions dans UNDODéfais les transactions dans UNDO Refais les transaction dans REDORefais les transaction dans REDO
Algo général de repriseAlgo général de repriseAlgo général de repriseAlgo général de reprise
8
panne
T1C
T5
T3C
checkpoint
T4C
T2
T6A
REDO = ? UNDO = ?
9
Journalisation & cacheJournalisation & cacheJournalisation & cacheJournalisation & cache
L'algo de reprise discuté ne marche que si toute L'algo de reprise discuté ne marche que si toute opération est dans le journal opération est dans le journal avantavant d'être sur le d'être sur le disquedisque
Mais, écrire chaque opération dans le journal Mais, écrire chaque opération dans le journal tout-de-suite est chertout-de-suite est cher
On utilise le On utilise le log-bufferlog-buffer et on écrit sur le disque et on écrit sur le disque dans le journaldans le journal– à chaque commità chaque commit
– quand le log-buffer est pleinquand le log-buffer est plein
10
Journalisation & cacheJournalisation & cacheJournalisation & cacheJournalisation & cache Problème:Problème:
– la gestion du cache (ex. LRU) pourrait écrire une la gestion du cache (ex. LRU) pourrait écrire une page de données non-commises sur le disque page de données non-commises sur le disque avant le log-bufferavant le log-buffer
– le log-buffer pourrait se perdre durant la pannele log-buffer pourrait se perdre durant la panne– l'algo de reprise ne marcherait plusl'algo de reprise ne marcherait plus
Solution typique (une variante de log-ahead)Solution typique (une variante de log-ahead)– LSN - LSN - Log Sequence # est Log Sequence # est donné à chaque enr. du donné à chaque enr. du
journaljournal– on n'écrit une page de données du cache sur le on n'écrit une page de données du cache sur le
disque que si disque que si » LSN-max dans la page < LSN-min du log-bufferLSN-max dans la page < LSN-min du log-buffer
11
Tolérance aux pannesTolérance aux pannesTolérance aux pannesTolérance aux pannes Possibilité de fonctionnement malgré les pannesPossibilité de fonctionnement malgré les pannes
– en général avec une reprise à chauden général avec une reprise à chaud Approche traditionnelleApproche traditionnelle
– duplication duplication en miroir en miroir du matériel et des donnéesdu matériel et des données» avantage suppl. : le partage de chargeavantage suppl. : le partage de charge
– ex. Tandem Non-Stop SQLex. Tandem Non-Stop SQL
12
Tolérance aux pannesTolérance aux pannesTolérance aux pannesTolérance aux pannes
Duplication des CPU avec l'accès croisé Duplication des CPU avec l'accès croisé aux disques est difficile à réaliser sur le aux disques est difficile à réaliser sur le matériel de grande diffusionmatériel de grande diffusion
Deux techniques en vogue pour ce matérielDeux techniques en vogue pour ce matériel– enregistrements en miroir sur les disquesenregistrements en miroir sur les disques
» RAID 1RAID 1
– enregistrements partiellement redondants enregistrements partiellement redondants » RAID 2,..RAID 2,..
13
MiroirsMiroirsMiroirsMiroirs Tout enregistrement est fait en Tout enregistrement est fait en n - n - copies sur des disques copies sur des disques
indépendantsindépendants– par le SGBDpar le SGBD– par le SGFpar le SGF
» le SGBD n'écrit que la le SGBD n'écrit que la copie primairecopie primaire– le SGF propage l'enregistrement aux copiesle SGF propage l'enregistrement aux copies
Les lectures sont réparties sur les copies Les lectures sont réparties sur les copies – pour maximiser la charge possiblepour maximiser la charge possible
» en général on reparti l'accès uniformément en général on reparti l'accès uniformément n n copies permettent à la BD de survivre sans perte copies permettent à la BD de survivre sans perte toutetoute
panne simultanée de (panne simultanée de (n - n - 1) volumes 1) volumes
nn = 2 en général = 2 en général
14
MiroirsMiroirsMiroirsMiroirs
Si une panne arrive à un volume, alors on lit une Si une panne arrive à un volume, alors on lit une autre copie de l'enregistrementautre copie de l'enregistrement
Le gestionnaire de reprise recrée alors le volume Le gestionnaire de reprise recrée alors le volume en panne sur un autre disqueen panne sur un autre disque– en général à chauden général à chaud
15
MiroirsMiroirsMiroirsMiroirs CoûtCoût
– n n fois plus d'espace mémoirefois plus d'espace mémoire
– n n fois plus d'accès en MAJfois plus d'accès en MAJ» temps allongé d'une transactiontemps allongé d'une transaction
– si le SGBD gère tous les accèssi le SGBD gère tous les accès» une incohérence temporaire entre les copiesune incohérence temporaire entre les copies
– si le SGF gère les copiessi le SGF gère les copies
AvantageAvantage– probabilité de panne totale décroît en facteur probabilité de panne totale décroît en facteur ppnn
– les perf. I/O en lecture croient en facteur les perf. I/O en lecture croient en facteur nn» si le CPU n'est pas saturési le CPU n'est pas saturé
16
RAIDRAIDRAIDRAID
Redundant Arrays of Independent DisksRedundant Arrays of Independent Disks Plusieurs disques de petite taille et de grande Plusieurs disques de petite taille et de grande
diffusiondiffusion– coûtent moins qu'un grand disque d'une même capacitécoûtent moins qu'un grand disque d'une même capacité
– offrent plus de parallélismeoffrent plus de parallélisme
– sont plus fiable dans l'ensemblesont plus fiable dans l'ensemble» R. Katz & D. Patterson, UC BerkeleyR. Katz & D. Patterson, UC Berkeley
RAID-1RAID-1 - les miroirs- les miroirs RAID-2 - voir la littératureRAID-2 - voir la littérature
17
RAID-3 RAID-3 – bit-interleaving + paritybit-interleaving + parity
RAID-4RAID-4– block-interleaving + parityblock-interleaving + parity
RAID-5RAID-5– block-interleaving + rotated parityblock-interleaving + rotated parity
RAID-6RAID-6– dual-redundancydual-redundancy
» invention commercialeinvention commerciale
RAID-3,4,5RAID-3,4,5RAID-3,4,5RAID-3,4,5
18
RAID-4RAID-4RAID-4RAID-4
101... 001... 111... 100... 111...
Segmentde paritéSegments de données
Write
101... 001... 111... 100...
le tuple
...
... ...
19
RAID-4RAID-4RAID-4RAID-4
101... 001... 111... 100... 111...
Segmentde paritéSegments de données
Read
101... 001... 111... 100... ...
... ...
le tuple
20
RAID-4RAID-4RAID-4RAID-4
101... 001... 111... 100... 111...
Segmentde paritéSegments de données
Read
101... 001... 111... 100... le tuple
... ...
21
RAID-4RAID-4RAID-4RAID-4
001... 111... 100... 111...
Segmentde paritéSegments de données
Reconstruction sur un disque nouveau (spare disk)
22
RAID-4RAID-4RAID-4RAID-4
101... 001... 111... 100... 111...
Segmentde paritéSegments de données
Reconstruction sur un disque nouveau (spare disk)
spare disk
23
RAID-5RAID-5RAID-5RAID-5
S1,1 P1
Segment de paritéSegments de données
S1,2 S1,3
P2 S2,1
S1,4
P3
P4
P5
S2,3 S2,4
S3,1
S2,2
24
RAIDRAIDRAIDRAID Avantages RAID - 3 / RAID-1Avantages RAID - 3 / RAID-1
– moins de mémoire additionnellemoins de mémoire additionnelle» combien ?combien ?
– I/O + rapideI/O + rapide» - de transfert- de transfert
» parallélismeparallélisme
– moindre coûtmoindre coût» disques bon marchésdisques bon marchés
Limitation (peu importante en pratique)Limitation (peu importante en pratique)– La BD ne survie que la panne d'un volume à la foisLa BD ne survie que la panne d'un volume à la fois
Technologie en vogueTechnologie en vogue
25
MultiordinateursMultiordinateursMultiordinateursMultiordinateurs On peut stocker les données redondant d'une BD sur On peut stocker les données redondant d'une BD sur
plusieurs sitesplusieurs sites– même distantsmême distants
données d'une SDDSdonnées d'une SDDS– Structure de Données Distribuée et ScalableStructure de Données Distribuée et Scalable
Une meilleure protection contre une panne catastrophiqueUne meilleure protection contre une panne catastrophique– explosion, panne de courant, grève...explosion, panne de courant, grève...
Une meilleure sécuritéUne meilleure sécurité– il peut être nécessaire de pénétrer plusieurs sites pour avoir une il peut être nécessaire de pénétrer plusieurs sites pour avoir une
donnéedonnée
26
MultiordinateursMultiordinateursMultiordinateursMultiordinateurs Deux SDDSs haute-disponibilité connuesDeux SDDSs haute-disponibilité connues
– LH*LH*MM stocke la BD en miroirs stocke la BD en miroirs
– LH*LH*SS stocke la BD en segments, comme RAID stocke la BD en segments, comme RAID» mais en général en RAM distribuéemais en général en RAM distribuée» et sur un nombre scalable de siteset sur un nombre scalable de sites» securité accruesecurité accrue
– l'accès pirate à un site amène des données partiellesl'accès pirate à un site amène des données partielles– un bit sur un bit sur n n si l'on distribue sur si l'on distribue sur n n segmentssegments
Un domaine de rechercheUn domaine de recherche– W. Litwin, M.-A. Neimat. High-Availability LH* Schemes with Mirroring. COOPIS-96, W. Litwin, M.-A. Neimat. High-Availability LH* Schemes with Mirroring. COOPIS-96,
Bruxelles, Juin 1996.Bruxelles, Juin 1996.– W. Litwin, M-A Neimat. Scattered LH* files for high availability and security. Tech. Rep W. Litwin, M-A Neimat. Scattered LH* files for high availability and security. Tech. Rep
HPL & GERM, Sept. 1995HPL & GERM, Sept. 1995
27
ConclusionConclusionConclusionConclusion
Les SGBDs peuvent tomber en panneLes SGBDs peuvent tomber en panne La sauvegarde et reprise fiable d'une BD est La sauvegarde et reprise fiable d'une BD est
un problème capital pour un SGBDun problème capital pour un SGBD Toute donnée commise doit être préservéeToute donnée commise doit être préservée On peut restaurer les données à partir du On peut restaurer les données à partir du
journaljournal On peut aussi prévenir la perte de données On peut aussi prévenir la perte de données
par le stockage redondantpar le stockage redondant– RAID tout particulièrementRAID tout particulièrement– et SDDS haute-disponibilitéet SDDS haute-disponibilité
28
FINFINFINFIN
29