Portál AbcLinuxu, 26. dubna 2024 05:23


Dotaz: MySQL obnova ze záloh

16.8.2010 19:34 Michal Krátký
MySQL obnova ze záloh
Přečteno: 736×
Odpovědět | Admin
Dobrý den, potřebuji zrekonstruovat tabulku ze záloh, záloh je cca 150, někdy se překrývají a obsahují stejná data. Potřeboval by sestavit tabulku ze záloh tak aby obsahovala všechny data. Pokud budou duplicitní nebude vadit. Jen se chci zeptat jak na to. Mám použít příkaz "source /cesta" ? Potřebuji aby se mi tabulka nemazala a nepřepisovala. Je to vůbec možné? Obsah dumpů obsahuje DROP TABLE IF EXISTS 'name'
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.8.2010 00:22 d.c. | skóre: 30
Rozbalit Rozbalit vše Re: MySQL obnova ze záloh
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mno, já to řešívám tak, že si nejdříve "předkoušu" dump jednoduchými (ale oblíbenými) textovými nástroji (grep, popř. sed, tr, když i to je málo, tak awk).

Např.: cat dump.sql | sed "s/^DROP TABLE IF EXISTS/# DROP TABLE IF EXISTS /" > upraveny_dump.sql
17.8.2010 08:09 Michal Krátký
Rozbalit Rozbalit vše Re: MySQL obnova ze záloh
A potom to tam naprat pomocí toho
source /tabulka
a nebo
mysql < tabulka.sql
Po odstranění toho řádku s DROP se mi nebude tabulka a záznam mazat že. Zůstanou tam i duplicitní data? Nemůžu o nic přijít,musí tam být vše po rekonstrukci tabulky v DB. Duplicitní data nevadí.
17.8.2010 11:35 lok
Rozbalit Rozbalit vše Re: MySQL obnova ze záloh
cat tabulka.sql | mysql
;-)
17.8.2010 13:06 Michal Krátký
Rozbalit Rozbalit vše Re: MySQL obnova ze záloh
Toto neznám dát to do roury, bude to fungovat? Nebudou se mi data z ostatních záloh tabulky přepisovat? Nebo jste sem hodil toto jen jako další příklad jak dostat tabulku do DB. Asi by to mělo vypadat takto:
cat tabulka.sql | mysql nazev_DB
17.8.2010 13:06 d.c. | skóre: 30
Rozbalit Rozbalit vše Re: MySQL obnova ze záloh
Obě možnosti jsou správně. Třetí níže je vlastně totéž jako ta druhá. Data budou duplicitní, pokud jim v tom nezabrání třeba indexy. Ty ale můžete vyřadit obdobným způsobem.

Samozřejmě je více než vhodné si celý postup vyzkoušet na testovacím stroji, zvláště když si nejste jistý v použitých příkazech.
17.8.2010 13:24 Michal Krátký
Rozbalit Rozbalit vše Re: MySQL obnova ze záloh
Děkuji za odpovědi, jen bych si tedy chtěl jen doplnit jak vyřadit popřípadě ty indexy které by mohli dělat problém při sestavovaní tabulky ze záloh. Pokud jde o to jak sestavit tabulku tak bych si zrekapituloval příkaz. buď:
přihlásit se do mysql
use jméno_DB;
source /cesta_kde_je_záloha_tabulky
nebo:
mysql nazev_DB < /cesta_kde_je_záloha_tabulky
a nebo taky:
cat /cesta_kde_je_záloha_tabulky | mysql jméno_DB
Všechny tyto způsoby by mi měli sestavit tabulku ze záloh tak že mohou být data duplicitní, pokud se překrývají.Je to tak?
17.8.2010 13:49 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: MySQL obnova ze záloh
Tady nejde o ta data, ale o to, jak fungují příkazy shellu.

První varianta - soubor s SQL příkazy si načte rovnou mysql svým interním příkazem

Druhá varianta - soubor mu na std. vstup pošle shell, který také bude sám číst SQL data

Třetí varianta - Data bude číst příkaz cat a přes rouru to pošle zase na std. vstup mysql.

Takže jde jenom o to, co ty sql příkazy obsahují, všechny tři případy jsou identické z pohledu konečného výsledku :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.