Fórum Root.cz

Hlavní témata => Server => Téma založeno: rooobertek 26. 11. 2022, 21:50:50

Název: Snapshot aktuálního stavu v MariaDB
Přispěvatel: rooobertek 26. 11. 2022, 21:50:50
Ahojte, na lokálnom stroji mám asi 20GB databázu mariadb a webovú aplikáciu. Robím teraz taký ošemetný import, ktorý zapisuje do veľa tabuliek a potreboval by som skúsiť import, otestovať čo to spravilo, vrátiť zmeny v databáze, upraviť si kód, spustiť import znova... A tak dokola. Import dumpu trvá vyše pol hodiny, takže to je vopruz.

Máte niekto overený spôsob? Virtuálny stroj a snapshot? Docker? Kópia /var/lib/mysql? Niečo lepšie?
Název: Re:Snapshot aktuálního stavu v MariaDB
Přispěvatel: Death Walker 27. 11. 2022, 00:16:10
Ak tam mas len DML tak transakcia, do povodneho stavu sa vratis pomocou rollback... ak tam mas DDL tak smola, mysql to nevie...
Název: Re:Snapshot aktuálního stavu v MariaDB
Přispěvatel: BoneFlute 27. 11. 2022, 03:35:22
na lokálnom stroji mám
...
Kópia /var/lib/mysql?
Toto jsem používal a funguje to celkem dobře. Je to krapet "ošklivé", hrabat marii takhle do střev, ale funkční.
Název: Re:Snapshot aktuálního stavu v MariaDB
Přispěvatel: Pavel Stěhule 27. 11. 2022, 07:03:48
na lokálnom stroji mám
...
Kópia /var/lib/mysql?
Toto jsem používal a funguje to celkem dobře. Je to krapet "ošklivé", hrabat marii takhle do střev, ale funkční.

Pokud se to udělá při vypnuté databázi, tak by to mělo být úplně v pohodě (pro libovolnou db). Aby se zabránilo kopírování všech dat, lze použít rsync. Jen je potřeba si ověřit, že se kopíruje celá db. V Postgresu se mohou db objekty uložit i do jiných než default adresářů skrze tablespace
Název: Re:Snapshot aktuálního stavu v MariaDB
Přispěvatel: redustin 27. 11. 2022, 14:06:01
Případně mariabackup (fork xtrabackup od Percony, ten mi funguje velice pěkně). Ale pokud lze DB shodit, je nejjednodušší/nejrychlejší nakopírovat rovnou soubory.
Název: Re:Snapshot aktuálního stavu v MariaDB
Přispěvatel: Ziktofel 28. 11. 2022, 10:47:49
co tak to ladit na BTRFS snapshotech?
Název: Re:Snapshot aktuálního stavu v MariaDB
Přispěvatel: rooobertek 28. 11. 2022, 11:41:38
Dnes som chvíľu skúšal aj btrfs, ale medzitým mi napadlo celkom elegantné riešenie:

Kód: [Vybrat]
docker kill project-mariadb
docker rm project-mariadb
docker volume rm projectdb

cd /var/lib/docker/volumes/
mv _projectdb_copy projectdb

docker stop project-mariadb
docker run -d --restart unless-stopped --name project-mariadb -v projectdb:/var/lib/mysql -p 127.0.0.9:3306:3306 mariadb:10.10
echo "Db is starting. Copying files for the next use:"
cp -ra _project_template _projectdb_copy