Berreskuratzea: CHECKPOINT eta teknikak
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
vasco con un tamaño de 3,95 KB
Berreskuratze-prozesua — CHECKPOINT
CHECKPOINT (I)
Aldiro-aldiro DBKS-ek egiaztatze-puntu bat idazten du egunkarian. Horretarako:
- m minutuz behin
- egunkarian n sarrera berri idatzi ondoren
Egunkariaren sarrera-mota berri bat da: [CHECKPOINT, …].
- Transakzio aktiboen identifikatzaileak idatzten dira.
- Gainera, transakzio bakoitzeko lehenengo eta azken sarreren egunkariko helbideak ere idazten dira.
CHECKPOINT (II)
Egiaztatze-puntu bat idazteko urrats nagusiak:
- Transakzio guztien exekuzioa aldi baterako eten egiten da.
- Egunkarian
[CHECKPOINT]erregistro bat idazten da, eta egunkaria diskoan idaztera behartzen da. - Memoriako buffer globala (aldaketak barne) diskoan idaztera behartzen da.
- Ondoren, transakzioen exekuzioa berriro abiarazten da.
CHECKPOINT (III)
Egiaztatze-puntuen ondorengo berreskuratze-estrategia:
- Egunkaria azken egiaztatze-puntuatik aztertzen da — ez hasi hasiera-hasieratik.
- Azken egiaztatze-puntuaren aurretik COMMIT egin zuten transakzio guztiak alde batera uzten dira; haiek berreskuratzea ez da beharrezkoa.
Berreskuratze-teknikak
Hutsegite-motak:
- Konkurrentzia-kontrola betearaztea
- Transakzioaren errorea
- Software errorea
- Hardware errorea
- Katastrofeak
Hutsegite motetatik berreskuratzea
1. edo 2. motako hutsegiteetatik berreskuratzeko:
- Hutsegitea eragin zuten transakzioak atzera egin: eragiketa batzuk desegin (egunkaria erabiliz).
- Beharrezkoa bada, transakzio batzuk berretsi: eragiketa batzuk berregin (egunkaria erabiliz).
3., 4. edo 5. motako hutsegiteetatik berreskuratzeko:
- DB-ko azken babeskopia leheneratu.
- Azken egoera kontsistente batera berreskuratu: beharrezko transakzio batzuk berretsi (egunkaria erabiliz).
Aldatze-atzeratua (I)
DB-a ez da aldatzen COMMIT egin arte; beraz, transakzioek egindako aldaketak ezin dira diskora idatzi hitzartu arte.
Aldatze-atzeratua (II)
- Hutsegitea gertatzen bada transakzioa hitzartze-puntura ailegatu aurretik, transakzioaren aldaketak desegitea ez da beharrezkoa — aldaketak ez direlako diskora kopiatu.
- Hutsegitea gertatzen bada transakzioa hitzartze-puntura ailegatu ondoren, transakzioa berretsi egin behar da — transakzioaren aldaketak berregin behar dira.
Ez-desegin / Berregin algoritmoa (I)
Urrats nagusiak:
- Bi zerrenda huts sortu: Aktiboak eta Hitzartuak.
- Aktiboak zerrenda hasieratu egiaztatze-puntuan (checkpoint) agertzen den transakzio-zerrendarekin.
- Egunkaria aztertu azken egiaztatze-puntuetik (checkpoint):
- [START,] aurkitzen bada, T Aktiboak zerrendan sartu.
- [COMMIT,] aurkitzen bada, T Aktiboak zerrendatik Hitzartuak zerrendara eraman.
- Egunkaria bukaera arte aztertu ondoren:
- Hitzartuak zerrendako transakzioak berretsi:
[WRITE, …]eragiketak berregin, egunkarian agertzen diren ordena erabiliz. - Aktiboak zerrendako transakzioak berrabiarazi.
- Hitzartuak zerrendako transakzioak berretsi:
Ez-desegin / Berregin algoritmoa (II)
- Egunkariko
[WRITE, …]erregistroek normalean balio berria (newValue) baino ez dute gordetzen (berregin daitezke, baina desegin ez). - Transakzio bat berrabiarazteak esan nahi du, berraurreratuko balitz bezala, exekutatzea.
- Eragiketak egunkarian agertzen diren ordena erabiliz berregin behar dira.
- Transakzioak ez dira bakarka berreskuratzen, baizik eta behar denean batera.
Berehalako aldatzea (I)
DB-a alda daiteke COMMIT egin aurretik; izan ere, transakzioak egindako aldaketak diskora idatzi daitezke hitzartu aurretik.