Portál AbcLinuxu, 25. dubna 2024 10:24


Dotaz: MYSQL - jak nastavit synchronizaci

17.6.2012 17:03 Host
MYSQL - jak nastavit synchronizaci
Přečteno: 1818×
Odpovědět | Admin
DObrý den, jak můžu synchronizovat databáze? Jednalo by se vytvořit přesnou kopii z jednoho železa na druhé v nějakých pravidelných intervalech (řádově v 5 hodinách). Děkuji

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.6.2012 19:26 NN
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vestavenou replikaci ? Je to jednosmerna synchronizace ?

NN
17.6.2012 21:26 Host
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Ano, vždy to bude jen jednosmerna synchronizace. Jinak jsem nic nenasel kloudneho ke zjisteni "vestavena replikace" :( Muzes se trochu rozpovidat? :-)
Řešení 1× (PetrHL)
18.6.2012 08:42 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Jednoduchý návod, vymakanější návod a spousta dalších…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
rADOn avatar 18.6.2012 11:21 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud ta db neni moc velka tak staci natrubkovat mysqldump do mysql. Jinak budes muset sahnout k replikaci.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
20.6.2012 08:15 rpajik | skóre: 18 | blog: rpajikuv_blog
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Na tohle pozor - pokud ma mit mysqldump konzistentni vysledek, je treba celou db locknout -> muze to mit vliv na dostupnost sluzby, ktera mysql pouziva.
20.6.2012 08:51 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Pokud je celá db v innodb, stačí parametr --single-transaction.
20.6.2012 13:12 Host
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
A pokud mám tabulky v MyISAM?
20.6.2012 13:28 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Pak se samozřejmě musí DB zamknout, protože myisam transakce nepoužívá. A nebo riskovat, že to nebude konzistentní. V řadě případů to nevadí, protože kdyby to vadilo, tak by se asi rovnou použil engine s transakcemi nebo úplně jiná DB.
22.6.2012 01:45 Host
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Tak že pokud to dobře chápu, musím před použitím mysqldump celou DB zamknout? Může vůbec použít mysqldump když používám MyISAM? Poradíte prosím jak tedy na to? Ještě podotknu, že DB má velikost v řádech několika GB a neustále se do ní zapisuje a načítá se z ní... Děkuji
25.6.2012 12:52 PetrHL | skóre: 17 | blog: petr_h | Neratovice
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
mysqldump tu databázi zamkne automaticky pokud to nezakážete. Pokud je DB tak velká, bude záloha trvat docela dlouho. Počítejte s tím, že během zálohování nic do DB nezapíše a ani z ní nic nepřečte. Možná by pro Vás bylo opravdu lepší mít nastavenu replikaci a dělat zálohu na slave, kde zamčení DB nebude mít vliv na master databázi.
"Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů
25.6.2012 13:04 PetrHL | skóre: 17 | blog: petr_h | Neratovice
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Nebo možná by bylo lepší tu databázi zamknout a zkopírovat soubory s daty. Trvalo by to kratší dobu než použití mysqldump. Mám databázi s asi 5 miliony záznamů (tabulky InnoDB), na disku zabírá něco přes 3GB. Rychlejší je zamknout DB a zkopírovat soubory. Neomluvě o trvání případné obnovy dat. Zamykat můžete třeba takto: http://blog.redbranch.net/2010/01/12/set-mysql-to-read-only/
"Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů
frEon avatar 25.6.2012 13:51 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
pokud chces odkopirovat tabulky, tak zamykani muze byt chyba:

kdyz spustis flush tables with readlock, tak sice k zamceni dojde, ale az po te, co dobehnou vsechny zrovna bezici dotazy. Muze se ti tak stat, ze do tabulky xy pujde nejaky dlouhotrvajici dotaz, ty to zamknes a zacnes kopirovat. mezitim dotaz dobehne a nestesti je na svete. na to je treba dat si pozor, a bud koukat, jestli jeste neco po zamceni do db jeste zapisuje, a nebo ji rovnou na tu chvili vypnout...
Talking about music is like dancing to architecture.
25.6.2012 13:17 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Opravdu mysqldump defaultně zamyká? K čemu pak slouží parametry --lock-tables a --lock-all-tables? Donedávna jsme každou noc spouštěli několikahodinový dump ostré DB a systém běžel dál. Divil bych se, kdyby byly při tom tabulky zamčené.

Jinak s dumpem slavu samozřejmě zcela souhlasím, přesně tak jsme vyřešili konzistenci dumpu :-)
25.6.2012 13:23 PetrHL | skóre: 17 | blog: petr_h | Neratovice
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Teď když se na to ptáte tak si nejsem jistý :-). Dříve jsem měl tabulky taky v MyISAM a zamykalo mi to komplet, jen si už nepamatuju jestli jsem to musel tomu mysqldumpu říkat sám nebo to udělal automaticky. Už je to nějakou dobu, co jsem je převedly na InnoDB a používam --single-transaction případně kopie datových souborů. Pro původního tazatele, použijte tedy mysqldump s --lock-tables a záloha bude konzistentní.
"Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů
25.6.2012 14:00 Kit
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Mělo by to fungovat tak, že se nezapisuje přímo do zamknutých tabulek, ale změny se logují mimo. Aplikace vidí data včetně změn, logy bere v potaz. Zálohování se však děje ze snapshotu.
25.6.2012 14:11 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Takovou magii dělá přímo mysqldump? Vždycky mi přišlo, že je to jenom jednoduchý upravený klient, který sosá data z DB a nějak je formátuje.
25.6.2012 18:51 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
mysqldump nedělá magii :), jen používá mysql, ale MySQL to zamykání má více úrovní viz níže.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
25.6.2012 19:34 Kit
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Nedovedu si představit, že by vývojáři MySQL nevyřešili tak důležitou věc, jako je zálohování databáze za plného provozu. Mnoho databází to neumí, ale neočekávám, že by MySQL patřila mezi ně.

Během zpracování selectu je přece také možné přidávat nová data a modifikovat záznamy. Mají to i jednodušší databáze. Dump je de facto také select.
25.6.2012 18:49 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Je tam taková zlý nepěkná věc jménem --opt a k tomu dovětek, že --opt je „by default“ on.
Pravděpodobně byly - tedy pro zápis, ale v režimu READ LOCAL, ale to neznamená, že nelze provádět jakékoliv insert-y.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
24.6.2012 23:36 Host
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nikdo nic? :(
3.7.2012 16:00 motyq
Rozbalit Rozbalit vše Re: MYSQL - jak nastavit synchronizaci
http://www.percona.com/doc/percona-xtrabackup/ pro hot backupy

pripadne nahodit replikaci master>slave nebo master<>master

anebo jiz zmineny mysqldump s jeho mouchama...

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.