Nejak si neviem predstavit ze by Maria/Mysql mohli byt vypnute a mat poskodene data tym ze nezbehne fsync alebo nieco podobne. To mi pride ako nejaka extremna situacia.
PGSQL znie lepsie ale je to pre mna neschodne riesenie kedze cely zivot pouzivam mysql a prepisat sql a schemu pre pgsql by bolo casovo narocne(uz som pgsql skusal ale prave tie rozdiely ma vzdy odradili z jej pouzivania, tiez absencia dobreho gui). Ale aspon je dobre vediet ze pgsql ma priamo nejaky nastroj. I ked ono by sa dalo polemizovat ze maria ma prave ten BACKUP STAGE ktory funguje totozne takze pgsql nie je v nicom odlisna tym padom a ide skor len o akysia individualny bias? Plus myisam dnes uz naozaj nikto nepouziva.
A tiez je tu percona a xtradb ako dalsia alternativa pre mysql a innodb a tiez ma xtrabackup. Takze mysql/maria/percona ma stale co povedat si myslim.
docela snadno, stačí třeba v systemd službě mít TimeoutStopSec>0 (či obdobu v dockeru) a vypnutý fast shutdown, pak se nemusí vše řádně stihnout. Mít starší verzi mariadb s O_DSYNC, kde to dělalo občas problémy a fsync se při vypnutí nevolal. Stejně tak mít O_DIRECT a vypnutý innodb_use_native_aio (což kvůli bugům je automaticky na některých kernelech, ikdyž ho v configu zapneš), pak nezapsaná data zůstávají v innodb bufferech. Mariadb ještě docela nedávno neuměla oddělit fsync metadat a dat, takže volala obě najednou, což je drahé a tak se tím šetřilo. Takže pozor na to, je to občas docela alchymie. Teď to celé strč do kombinace s nějakým overlayfs, protože ti přišlo skvělé to spustit v dockeru.
Povinná metadatová databáze "mysql" je v myisam enginu, to k tomu nepoužívání, pokud jí změníš na innodb, což lze, tak občas něco nepěkně selže. Mariadb je neskutečně zákeřná tím, že má řadu archaických částí a kódů. BACKUP STAGE je dobrá funkce, řeší to právě řadu těch problémů, o kterých jsem psal. Nepřitomnost oficiálního nastroje na fyzický backup, strohá oficiální dokumentace je něco, co by ti mělo spustit v hlavě červenou kontrolku, že tady je něco špatně.
Doporučuji dělat backup přes replikaci (galera nebo klidně asynchronní nativní) a metadata, která jsou v mysql databázi si držet bokem či na ně používat mysqldump.
xtrabackup je depracated, stejně jako celé xtradb, to už se dále nevyvíjí. Stejně tak i tokudb a nově se všichni soustředí na myrocks (ironie: jsem zvědavý co ho za pár let nahradí).
Mysql/Mariadb se dlouhé roky snažili získat jakkoukoliv výhodu, aby byly rychlejší, takže vše je postavené na tenkých základech, používají spoustu hacků, spousty triků za cenu nespolehlivosti a složité obsluze. Postgresql raději jde méně efektivní cestou (z hlediska cpu, ram), ale je zpravovatelnější, jeho chování očekávatatelné a celkově se s ním lépe pracuje. Jako UI je dobré od Jakuba Vrány Adminer. Přechod znamená nějakou práci a učení, ale dlouhodobě se ti asi vyplatí.
Tak dlouho jsem se snažil udržet mysql/mariadb stabilní až mám dnes nejvíce zakázek právě v opravě rozbitých databází.