Autor Zpráva
anonymníí
Profil *
Ahoj, mám zakoupený VPS a chtěl bych se zeptat na možnosti zálohování databáze (ruční, ne pravidelné; nemám pravidelně zapnutý počítač, takže zálohu bych musel spouštět vždy ručně?)

Mám desítky databází, je možné je najít někde ke stažení, když se k serveru připojím (řekněme přes SSH)? Našel jsem složku phpmyadmin, ale v ní dohromady nic není.

Děkuji.
Kajman
Profil
Můžete si databázi třeba každou noc (nastavitelné přes cron) vyexportovat pomocí utility mysqldump a klidně hned zabalit přes gzip. Když si chcete ručně zazálohovat jinam, tak stačí vyexportovanou zálohu nahrát k sobě.

phpmyadmin na něco takového není určen.
anonymníí
Profil *
Kajman:
Myslel jsem spíše, kam se na server fyzicky databázová data ukládají. Předpokládal jsem, že to bude podobný formát jako jsou SQL dumpy.

Nebo se pletu? Že to nejde přímo skrz PMA mi je jasné, blbě jsem formuloval dotaz.
Kajman
Profil
Fyzicky je ukládá do speciálních souborů, ale většinou s prodlevou. Proto je nesmysl kopírovat datové soubory běžícího databázového serveru. Použijte sql dumpy - tam se dostanou i data, která mohou být zatím jen v paměti. Navíc půjdou použít i na jiné verzi serveru.
anonymníí
Profil *
Kajman:
Jenže databází jsou desítky a dělat dump každé z nich se mi nechce. Je to na dlouho. Takže tudy cesta nevede, jak jsem myslel?
Alphard
Profil
Snad když máte vlastní VPS, není problém napsat si pár řádkový skriptík, který provede patřičné dumpy a data vám může rovnou i zabalit ke stažení.
A na cílovém počítači můžete mít další script, který spustí ten první a stáhne data.
anonymníí
Profil *
Alphard:
Přiznám se, že v tomto se moc neorientuji.

VPS mám jen z důvodu, že mám více rozsáhlých projektů a nechce se mi platit hostingy > VPS mě vyjde levněji, ne však lehčeji na nervy :-)
Alphard
Profil
Tak se inspirujte třeba tady danieldvork.in/script-for-mysql-backup-to-dropbox. Snad nemusím říkat, že pro správu serveru je dobré mít jisté znalosti a zkušenosti...
anonymníí
Profil *
Alphard:
Děkuji za odkaz, podívám se.

Letmé znalosti mám, spíše jako linux user, ne přímo scriptař. Proto trochu tápu.
Kajman
Profil
Pokud mohou být všechny databáze uloženy do jednoho souboru, pak stačí jen přepínač.
http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_all-databases

Ale rozdělení odkázaným skriptem po jednotlivých databázích může být příjemnější. Ale pokud je na disku dostatek prostoru, nechal bych tam klidně zálohy za poslední 4 dny a nemazal je hned před vytvořením nových.
anonymníí
Profil *
Alphard:
Ještě jednou jsem si prošel ten tvůj odkaz. Vypadá to rozumně, jen se ještě pro jistotu zeptám. Toto je celý script, který jen umístím na server a upravím cesty, jména a hesla? Nic více?

Ptám se, abych neudělal nějakou botu :-) Jinak k těm zkušenostem: člověk se k nim musí nějak dopracovat, nikdo se nenarodí jako správce serveru. Jedná se o moje projekty, takže to je v pohodě, ale samozřejmě nějaký překlep by mě mrzel.
Alphard
Profil
Je to základní kostra, hledal jsem něco jednoduchého a krátkého. Asi největší problém, že to smaže archiv dřív, než se úspěšně vytvoří nová verze, není u vás relevantní, protože hodláte data stahovat.
Já jsem nekontroloval každý parametr, který tam je, ale rozhodně to nedělá nic destruktivního, klidně zkoušejte. Pozor, kam to ukládáte, jestli to bude veřejně přístupná cesta, ať není uhádnutelná.
Amunak
Profil
Pokud ti to stačí všechno v jednom souboru, můžeš jednoduše použít příkaz

mysqldump -u root -prootpassword --all-databases | gzip -9c > db-backup.gz

kde "root" je uživatel a "rootpassword" heslo (pozor, není tam mezera). Pipe to pošle do gzipu, který tomu rapidně zmenší velikost, a uloží se to jako db-backup.gz (pokud existuje nějaký starý archiv s takovým jménem, tak se přepíše). Na Windows jde archivy zabalené gzipem rozbalit třeba pomocí programu 7-zip.

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: