|
|
fr.comp.os.ms-windows.programmation Affichage de l'article : Re:_mécanisme_de_sauvegarde_de_données
Date :
Le 04 aout 2005
From :
adebaene@club-internet.fr
Sujet :
Re:_mécanisme_de_sauvegarde_de_données
AG a =E9crit :
> adebaene@club-internet.fr wrote:
>
> > Un m=E9canisme de journalisation, avec des op=E9rations transactionnell=
es
> > pour la sauvegarde (commit/rollback).
> Un m=E9canisme de journalisation, je crois que je vois :
>
> On sauve l'=E9tat de d=E9part, puis on ajoute un ligne pour chaque
> diff=E9rence depuis le dernier =E9tat sauvegard=E9. =E7a permet de remont=
er dans
> le temps les =E9tats de sauvegarde (=E7a doit =EAtre le rollback ?)
Plus pr=E9cisemment:
- lorsque l'op=E9ration est r=E9alis=E9e elle est =E9crite dans un journal
de transaction (et pas sur le support final).
- plus tard, lorsque la transaction est valid=E9e ("commit") ou m=EAme
apr=E8s, l'op=E9ration est r=E9alis=E9e sur le support final.
- Seulement une fois que l'op=E9ration est effectivement effectu=E9e sur
le support final, le journal de transaction est effac=E9 (et encore, sur
de nombreux syst=E8me, SQL Server par exemple, le journal de transaction
est effac=E9 beaucoup plus tard, typiquement quand un backup du syst=E8me
est effectu=E9, de fa=E7on =E0 pouvoir restaurer n'importe quel =E9tat
coh=E9rent de la base avant la derni=E8re sauvegarde).
> >
> >>Est-il possible de s'en tirer avec seulement 1 fichier de sauvegarde ?
> >
> > Le plus simple, c'est d'utiliser pour ton stockage une base de donn=E9e
> > transactionnelle (MSDE par exemple), ou bien un syst=E8me transactionnel
> > tout fait (=E9crire soi-m=EAme un moteuer transactionnel me semble
> > illusoire pour la plupart des genrs).
> Une base de donn=E9e, je vois bien, transactionnelle, je vois moins d=E9j=
=E0.
Les bases "s=E9rieuses" (MSDE, Oracle, SQL Server, ...) offrent un
m=E9canisme transactionnel. Ce n'est pas le cas d'Access. Pour MySql, si
mes souvenirs sont bons, c'est un peu plus compliqu=E9 : ca d=E9pend du
type de base utilis=E9e.
> mais j'imagine que c'est pour d=E9crire la mani=E8re dont les =E9changes =
de
> donn=E9es sont faits (les transactions), et pour dire que c'est fait par
> des op=E9rations transactionnelles (?) dont on a parl=E9 plus haut (genre,
> le nouvel =E9tat du syst=E8me est sauvegard=E9 uniquement si la transacti=
on
> c'est bien pass=E9e, sinon on revient =E0 l'=E9tat d'avant ?)
Oui : un syst=E8me journalis=E9 et transactionnel garantit que, m=EAme en
cas de coupure de courant, l'=E9tat de la base sera coh=E9rent (soit la
transaction compl=E8te sera enregistr=E9e, soit aucune op=E9ration faisant
partie de la transaction ne sera enregistr=E9e).
Pour info, NTFS utilise un m=E9canisme transactionnel pour ses
structures internes, pour garantir qu'une partition ne sera jamais
foutue en l'air par une panne de courant. Par contre, le contenu des
fichiers lui-m=EAme n'est pas journalis=E9 (ce serait trop lourd en
espace disque pris par le journal et en temps de r=E9ponse).
>
> Bon, de toute fa=E7on, je ne m'en servirait pas, c'=E9tait pour ma cultur=
e=2E
> Mon code n'est pas destin=E9 =E0 aller en production, c'est juste pour mes
> besoins personnels.=20
MSDE irait bien dans ce cas l=E0.
Arnaud
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|