49
« kdy: 08. 10. 2013, 16:11:41 »
to Petr Blahos - dík za odpověď.
K MS SQL ... zajistit konzistenci dat z pohledu aplikace lze, pokud například převod z účtu na účet uzavřu do transakce:
BEGIN TRANSACTION; odeberu peníze z jednoho účtu; přidám peníze na druhej účet; COMMIT TRANSACTION.
Provede se buď oboje, nebo nic, i kdyby mezi tím zhavaroval server. Proto je to transakční databáze, aby to šlo zajistit.
Co se týče zálohování, tak opravdu záleží hlavně na výkonu disků. Pokud jsou slušně dimenzovaný s ohledem na velikost databáze, tak lze i při spuštěným backupu nebo restoru pracovat. Samozřejmě to ale zpomaluje. I u MS SQL je rychlejší vykopírovat přímo databázový soubory. Ani kvůli tomu se nemusí databáze vypínat, stačí udělat VSS snapshot file systému a soubor databáze a logu z něj (Předchozí verze souborů) vykopírovat. Konzistence dat je systémem zaručená. Ale tohle nevyužívá nijak často.
V praxi (větší síť) se opravdu zálogování SQLka volá z externího zálohovacího programu. Ten provede zálohu databází a výsledný soubory rovnou odleje na zálohovací server. Ve výsledku je to ale IMHO úplně stejný, jako zavolat backup přímo v SQL. Tak se to dělá u menších instalací. Buď se to nakliká v GUI jako maitenance plán, nebo se to pustí třeba jako baťák.
Ještě detail - ne každý ví, že Express verze SQLka je zdarma. Jediný reálný omezení je na velikost databáze (max 10 GB), databází může být samozřejmě víc. Max velikost využitelný paměti 1 GB taky nebejvá pro běžný projekty problém.
Ale to jsem trochu odbočil, nechci diskuzi od MySQL odvádět pryč, proto prosím žádný flame war.