Commit a data bezpecne na disku?

Vladimir Naprstek vladimir.naprstek na prodeco.cz
Úterý Březen 28 08:45:35 CEST 2000


Na konec teto debaty bych rad jen podotknul, ze SQL prikaz COMMIT nema nic
spolecneho s ukladanim dat na disk. Jenom a pouze zajistuje konzistentnost
dat (v probehu transakce ostatni vidi data, jaka byla pred zapocetim
transakce, upravena data uvidi az po prikazu COMMIT). Otazka prevzeti
odpovednosti je myslim dana tim, ze server potvrdi kazdou provedenou operaci
a tim se o data stara on. Jak je to s bezpecnosti dat je problem celeho
retezce DB server - OS - disk. Jen tak na okraj - muzete mi nekdo odpovedet
na otazku zda fsync() nasype data disku a vylozene ceka na fyzicky zapis
(ceka az disk vyprazdni svoje cache) nebo mu staci jen presypat data?. A co
kdyz velke disky s dlouhymi buffery prevezmou data a odpovi ze data jsou na
disku a ukladaji si je pozdeji - kvuli rychlosti. Takze v takovem pripade o
data stejne muzete prijit i s provedenym fsync()em.

Co se tyce bezpecnosti dat, kterou ovlivnite serverem, neni otazka zvladani
transakci (MySQL neumi, Oracle ano), ale to zda je DB server schopen provadet
zalohovani, logovat zmeny v datech a to umi MySQL i Oracle. Ostatni je uz na
OS a HW.

P.S. MySQL jsem si vybral jako priklad databaze, ktera je "za hubicku" a
Oracle za "dlouhe" penize. A z toho, co jsem napsal vyse o logovani zmen v
datech mi vychazi, ze bezpecnost dat na obou databazich muze byt stejna. Uz
zalezi jen na Vas, jaky je OS a jaky je HW.

--
Vladimir Naprstek
e-mail vladimir.naprstek na prodeco.cz





Další informace o konferenci Test