Edasilükatud värskendus vs viivitamatu värskendus
Edasilükatud värskendus ja viivitamatu värskendamine on kaks tehnikat, mida kasutatakse andmebaaside haldussüsteemide (DBMS) tehingulogifailide hoidmiseks. Tehingupäevik (nimetatakse ka ajakirja logiks või uuesti vormistamise logiks) on füüsiline fail, mis salvestab tehingu ID, tehingu ajatempli, andmete vana väärtuse ja uued väärtused. See võimaldab DBMS-il jälgida andmeid enne ja pärast iga tehingut. Kui tehingud on tehtud ja andmebaas taastatakse ühtlases olekus, võidakse logi pühendatud tehingute eemaldamiseks kärpida.
Edasilükatud värskendus
Edasilükatud värskendus, mida nimetatakse ka NO-UNDO / REDO, on tehnika, mida kasutatakse operatsioonisüsteemi tõrgete, toite, mälu või masina rikete tagajärjel tekkinud tehingutõrgete taastamiseks / toetamiseks. Tehingu käivitamisel ei tehta tehinguga andmebaasis tehtud muudatusi ega muudatusi kohe. Need salvestatakse logifaili. Logifaili salvestatud andmemuudatused rakendatakse andmebaasis kohustuse võtmisel. Seda protsessi nimetatakse uuesti tegemiseks. Tagasivõtmisel loobutakse logifaili salvestatud andmete muudatustest; seetõttu andmebaasis muudatusi ei rakendata. Kui tehing ebaõnnestub ja seda ei ole mõne ülalnimetatud põhjuse tõttu toime pandud, siis logifaili kirjed visatakse ära ja tehing taasalustatakse. Kui tehingu muudatused tehakse enne krahhi, rakendatakse pärast süsteemi taaskäivitamist logifaili salvestatud muudatused andmebaasi.
Kohene värskendus
Kohene värskendus, mida nimetatakse ka UNDO / REDO, on ka teine tehnika, mida kasutatakse opsüsteemi, toite, mälu või masina riketest tingitud tehingurikete taastamiseks / toetamiseks. Tehingu käivitamisel kirjutatakse tehinguga tehtud värskendused või muudatused otse andmebaasi. Enne andmebaasis muudatuste tegemist registreeritakse logifaili nii algsed kui ka uued väärtused. Sisselülitamisel tehakse kõik andmebaasis tehtud muudatused alalisteks ja logifaili kirjed visatakse ära. Tagasivõtmisel taastatakse vanad väärtused andmebaasi, kasutades logifaili salvestatud vanu väärtusi. Kõik andmebaasi tehingutega tehtud muudatused visatakse ära ja seda protsessi nimetatakse “tegemata jätmiseks”. Kui süsteem pärast krahhi taaskäivitub, tehakse kõik andmebaasi muudatused püsivate tehingute jaoks. Seotud tehingute puhul taastatakse algväärtused, kasutades logifaili väärtusi.
Mis vahe on edasilükatud värskendus ja kohene värskendus?
Ehkki edasilükatud värskendus ja kohene värskendamine on kaks süsteemi rikkejärgse taastamise meetodit, on iga meetodi kasutatav protsess erinev. Erineva värskendusmeetodi korral registreeritakse tehinguga andmetes tehtud muudatused kõigepealt logifaili ja rakendatakse andmebaasis kohustusena. Kohese värskendamise meetodi korral rakendatakse tehinguga tehtud muudatused otse andmebaasi ning vanad väärtused ja uued väärtused registreeritakse logifaili. Neid kirjeid kasutatakse vanade väärtuste taastamiseks tagasipöördumisel. Erineva värskendusmeetodi korral visatakse logifaili kirjed tagasi tagasi ja neid ei rakendata kunagi andmebaasis. Üks edasilükatud värskendusmeetodi puudusi on pikem aeg, mis kulub süsteemirikke korral taastamisele. Teisest küljest on sagedased sisend / väljundoperatsioonid aktiivse tehingu ajal viivitamatu värskendamise meetodi puuduseks.