Skript som presiel len zbezne, ale principilane ma zaujima: Ked mam webapp s kopou paralelnych userov, ako mi takyto sekvencny skript zaisti konzistenciu FK's pocas zalohovania. Ak sa prva tabulka dumpne v case T a posledna v case T+100 napr. a pocas tejto doby niekde doslo k INSERT, nemozem predsa take data obnovit.
Nijako,
script dumpuje tabulku po tabulke. Nikde specificky nenastavuje lock celej databazy takze sa by default lockne len tabulka, ktora sa aktualne dumpuje.
V pripade, ze dojde k insertu a nejakej funkcii cez viac tabuliek bude to v danej chvili problem.
Dany script nieje vhodny na zalohovanie viac vytazenych databaz. Locknutie tabulky alebo aj celej databazy na celu dobu dumpu je casto pri vacsich aplikaciach nemozne, pretoze to sposobi defakto vypadok funkcionality na celu dobu zalohovania.
U zatazenejsich databazi sa skor pouziva lvm snapshotovanie, podporuje to napriklad mysql-zrm zalohovanie. Lockne celu mysql ale len na dobu vytvarania snapshotu co je cca 1s, nasledne odlockuje a z vytvoreneho snapshotu odlieva data ktore su "zmrazene".
V nasadeni kde sa netoleruje ani vypadok 1s sa zas pouzivaju offline replikacne servery ktore sa na dobu zalohovania zastavia a po zalohovani si doreplikuju to co sa zmenilo.