Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

import .sql fajla da li overwrituje sve tabele i podatke

[es] :: MySQL :: import .sql fajla da li overwrituje sve tabele i podatke

Strane: 1 2

[ Pregleda: 10643 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 10:18 - pre 90 meseci
Interesuje me, kad radim restore neke baze iz prethodnog backupa koji sam uradio sa mysqldump kada okinem komandu

mysql -u nekidmin -p nekabaza < /var/backup/20161019.sql


hoće li se baza vratiti na ono stanje u momentu dump-a, ili će samo da overvrajtuje postojeće redove i tabele, a ostaviti onu viška razliku ukoliko postoji?

Nadam se da me neko razume, pošto ovakvu rečenicu ni ja ne razumem, a ne znam kako bolje da je napišem :)
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 11:24 - pre 90 meseci
dump fajl može sadržati DROP TABLE komande, ako si zadao taj svič kod dumpa. Ali ako ih nema, a ne radiš restore na "praznu" bazu, to nije baš ono što želiš. Ima gomila stvari na koje treba da misliš - recimo ako imaš objekte, kao što su tabele, indeksi, spoljni ključevi itd. restore će biti praktično nemoguć ili vrlo spor.

Logički bekap je mnogo fina stvar, jednostavan je, relativno brz, ali je najgora stvar za restore. Najsporiji način bekapa je bekap fajlova (time, bekapuješ i prazan prostor, prostor popunjen indeksima itd.) ali je najbrži način za restore.
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:08 - pre 90 meseci
Da... dump mi je bio bez ikakvih svičeva

mysqldump -u nekidmin -p nekabaza > /var/backup/20161019.sql


Sada guglam, da je u mysqldump funkciji po defaultu i drop table svič. I ako hoću da ga isključim onda ide komanda --skip-add-drop-table

Nisam se setio pre ove teme da pogledam kako izgleda dampovana sql skripta, i sad vidim da pre svakog kreiranja tabele stoji
DROP TABLE IF EXISTS `tabela`;

Dakle, dropuje sve. hmmm možda baš i ne sve. Šta je sa onim tabelama koje nisu postojale pre dump-a?

Koji način backup-restore je najbolji, u praksi za CMS sajtove poput recimo WP i Magento?

Taj logički backup zašto je najgori za restore?


bekap fajlova? :)
To znači da mogu da napravim skriptu koja će da zipuje svaki dan folder /var/lib/mysql/magento2 i kad hoću restore, samo raspakujem tu i to je to?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:15 - pre 90 meseci
pa a tabele koje nisu postojale pre dumpa mozes da dodas add drop
database :D

obrati paznju da dok je drop table u "opts" neke stvari nisu poput
bekapa trigera, stored procedura...

najbolji bekap se radi sa mysqlbackup koji na zalost kod oracle-a nije
niti free niti open source :( ali kod xtradb to imas kao free stvar (i
to je najbrzi i najbolji nacin i za bekap i za restore, mozes da radis
inkrementalni bekap etc etc ..)

za "fajlove" - pa vidi ako uradis bekap fajlova dok ti radi mysql imas
bekap koji ne radi :(

ako hoces tako da radis bekap onda shutdown, pa kopiras datadir pa start
baze, ako ti je datadir na lvm-u mozes shutdown pa snapshot, pa start i
onda bekapujes snapshot pa ga obrises (imas skripu za to zove se
lvmmysqlbackup ili mysqllvmbackup iuli tako nesto pisao kolega iz firme)

ako imas samo myisam mozes da uradis flush tables with read lock i da
kopiras, tabele su dok kopiras read only .. to za innodb nemoj da radis
posto ne radi (mysqlbackup ima foru kako zalokuje innodb da mozes da
kopiras fajlove ali ti to ne mzoes sam )
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:20 - pre 90 meseci
Pa, daću ti primer zašto je logički bekap najgori za restore.

Imao sam bazu kojoj je logički bekap trajao 4 sata, a restore 24 sata! A od tih 24 sata, 19 sati je trajalo reindeksiranje najveće tabele.
AKo radiš backup fajlova, za istu bazu, bekap je nešto više od 4 sata, a i restore je nešto više od 4 sata. I neme šta da se misli.

Sada, strategija bekapa zavisi od same baze - moje iskustvo je uglavnom sa Oracle bazom. Kažeš bazi da je počeo bekap, skloniš database fajlove, kažeš bazi da je bekap gotov, skloniš redolog fajlove nastale u međuvremenu i to je to. Povratni bekap je - vrati database fajlove i iz redolog napravi restore podataka koji su se promenili u toku bekapa...

Sada, tvoj slučaj, imaš nešto što hoćeš da vratiš, a imaš i nešto što je nastalo u međuvremenu - ne vidim kako je to konzistentno stanje. Ako vratiš tabelu 1 od juče a tabela2 ti je nastala danas, da li zaista želiš takvo stanje?

A i postoji (možda) i DROP DATABASE u dumpu, koji će i tako da ti obriše sve što se zateklo...
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:21 - pre 90 meseci
Pazi, taj backup koji ti imas ima smisla ako radis full restore do nekog point-in-time momenta - a onda evetualno radis replay binlogova.

Ako hoces da vratis samo neke podatke onda to mozes da prebacis u drugi database, pa da sql komanda prepakujes samo ono sto ti treba od podataka. Jos bolje resenje (po meni) je da radis svaku tabelu u odvojeni sql fajl (ili dva fajla, sql + txt za load data infile), ovo je ziva zgoda da vratis JEDAN slog koji ti fali.

Ne, ne mozes da zipujes sirov direktorijum, to ni na sta nece da lici. Mozes da radis hotcopy uz percona xtrabackup (odlican alat), ili uz komercijalni mysql backup. To je brzi restore za full bazu, ali manje selektivan. Dace ti isto sto sad imas, ali ce da radi mnogo brze i zapravo je bolje resenje, u smislu da zamenis ono sto sad imas. :)

Sve zavisi koji problem resavas, koliko ti je restore time kritican i koliko imas problema.... Realno, ja vise volim logicki backup, ali opet ja retko imam jedan db server, u nekoj semi sa bar 3 db servera i auto-failoverom, nikad nemas database downtime, pa ti backup najcesce vraca jedan slog ili nesto sto je ljudskom greskom izbrisano..... razlicit metod rada, razlicit prolem koji se resava.

P.S. Trojica pisemo u isto vreme :) - ali svodi se na use case, nemas "silver bullet". Ja npr. racunam da triggers i stored procedures imas u git-u/svn-u, pa ih ne bekapujem. Opet, ja backup radim da pokrijem human error, a ne catastrophic event (za to imam HA mehanizme), pa svesno imam projektovano dug restore u katastroficnom scenariju sa multiple hardware failiures.
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:26 - pre 90 meseci
OK, ovaj server je live, ali u neko doba dana mogu da odvojim za restore tih fajlova, mislim, sa iskljucivanjem mysql servera. Mada bi to trebalo da bude i mnogo brze kad je na istom serveru.

Imam problem sa jednim sajtom kod koga je fajl koji dampujem oko 1.5GB.
Često to radim kad hoću da dupliram taj sajt i napravim test okruženje. Recimo da probam neki update na tom test okruženju.
I onda kad importujem taj fajl od 1.5GB sa onom komandom iz prvog posta, to mi traje užasno dugo. Verujem da možda i skoro sat.

A ovako bih mogao sledećim koracima?

1. stopiram mysql
2. rsync te fajlove iz /var/lib/mysql/magento2 u /var/lib/mysql/testmagento2, pokrenem mysql?
3. startujem mysql

I to je to?
Za 1.5GB bazu to bi trajalo ni pola minuta, što mi je skroz prihvatljivo da server bude offline u tom momentu.
U pitanju je dev server sa samo jednim live sajtom za koji još uvek ne znam zašto ga ne bacimo na neki hosting.


Sad ću da bacim oko na xtradb
Hvala
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:27 - pre 90 meseci
Citat:
djoka_l:
Imao sam bazu kojoj je logički bekap trajao 4 sata, a restore 24 sata! A od tih 24 sata, 19 sati je trajalo reindeksiranje najveće tabele.

Ja pisem skriptu za restore, jer imam svaki fajl pojedinacno, pa kad radim load data infile indexiranje ide jednom, kad se load zavrsi, a ne posle svakog inserta. Razlika u performansama je bas velika na velikim tabelama :)
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:36 - pre 90 meseci
OK, kapiram šta pišete i vaša iskustva, ali to je već 20 levela iznad onoga što mislim da znam.
Nemam takve baze.

Ovo je običan hosting server sa CMS sajtovima uglavnom u dev fazi, s tim što ima nečega što je već live, iako je dev....

I backup/restore radim u sledećim slučajevima

1. manuelni Backup pre svakog update, instalacije modula, plugina, bilo čega... da se nađe za svaki slučaj. Ukoliko update ne prođe dobro, radim restore toga kako bih vratio na ono identično stanje pre update-a. Kolege developeri me uglavnom zamole kad to da uradim, kad nisu sigurni šta može biti problem
2. Redovni backup, u zavisnosti od sajta do sajta, ali jednom nedeljno. Restore ovoga radim retko, ali se desilo par puta da smo imali zaražene sajtove pa sam radio restore tih backup-ova. Kasnije analizirao kad je došlo do tog problema, i popravljao sajt.
3. Duplikat nekog live sajta, kako bi kolege radile update ili šta već prvo na tom test okruženju.


Dakle daleko od ozbiljnosti vaših poslova :)
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:38 - pre 90 meseci
Kao što su ti lepo napisali bogdan i nkrgovic, postoje razne varijante bekapa i nijedna nije idealna za sve slučajeve.
Imao sam prilike u praksi da vidim fantastične strategije bekapa, koje su imale samo jedan problem - nisu radile!

Ja bih preporučio mešavinu logičkog i fizičkog bekapa. Naravno sve zavisi od toga koliko se baza intenzivno koristi - ali, recimo jedan logički bekap dnevno, i jedan fizički nedeljno.

Ono što je OBAVEZNO kod bekapa je TESTIRANJE. Bar jednom nedeljno, ili jednom mesečno, uzmi poslednji bekap i probaj da uradiš na test mašini restore. Spasiće te mnogih muka (a sve one neuspešne strategije bekapa su bile neuspešne iz tog razloga - nikada nije testiran restore). Da je bekap testiran, bilo bi očigledno da je strategija loša...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:40 - pre 90 meseci
@djoka, @kojot, imas opciju -K i onda to indexiranje ne traje toliko :D

Citat:


1. stopiram mysql
2. rsync te fajlove iz /var/lib/mysql/magento2 u
/var/lib/mysql/testmagento2, pokrenem mysql?
3. startujem mysql



taj rsync moze da traaaaaaaje... posebno sto innodb data fajlovi mogu
uzasno da porastu (bez problema na bazi kojoj je dump 1G ti fajlovi mogu
da budu 1T) .. ako ces vec da to radis onda

0. datadir ti je na lvm-u
1. stopiras mysql
2. uradis lvm snapshot (ovo traje ispod sekunde)
3. startas mysql
4. na tenane kopiras snaphot
5. kad iskopiras bekap obrises snapshot

pri tome kad kopiras snapshot odma ga kompresuj (posto se datadir
odlicno kompresuje, moras da imas 100% citanja ali pri kompresiji 1:10
koja je vrlo uobicajena morace da zapises samo 10% date a to je mnogo
sporiji proces od citanja)

na ovaj nacin imas downtime koji je uzasno kratak, jos ako valjano
stopiras myusql mozes da imas downtime ispod minute (prebacis dirty na
0, pustis ga da izsinkuje sve na disk i onda tek radis shutdown tako da
shutdown traje jako kratko)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:42 - pre 90 meseci
@djoka, actually 1 full bekap dnevno (koji god, logicki, fizicki..) i po
jedan inkrementalni na sat vremena je malo uobicajenije resenje :D
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:43 - pre 90 meseci
@kojot ovde ti je djoka rekao nesto sto veliki
mudraci/agile/devop/jedigovnici retko spominju .. moras bekap resenje da
testiras :D .. ja sam video mnogo sistema gde je bekap napravljena na
320 nacina a nikad nije testiran, a onda kad je trebao ... jbg ..
nikakve pare na ovom svetu im nisu mogle vratiti datu :(
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:45 - pre 90 meseci
Slažem se, ili još bolja opcija, storage raplication, standby baza podataka, čuvanje SVIH redolog za ceo mesec i fizički bekap dnevno. Ali kojojt je pomenuo da mu baza trenutno nije u produkciji
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 12:49 - pre 90 meseci
Na ovom serveru koji je u funkciji nije lvm.
To je onaj sa Pleskom sećaš se :D
U međuvremenu sam poslušao tvoj savet i krenuo sa instalacijom nekog drugog servera bez Pleska, I lepo mi je išlo, ali na žalost nisam imao vremena da palim mašinu zadnjih 20 dana... :/. Tu inače imam var mountovan na lvm, i vrlo mi je koristan ovaj info :). hvala

Što se tiče xtradb koji pominješ, ne mogu da izguglam ništa osim Percona XtraBackup. To je to?


Što se tiče testiranja backup-a.
Nisam znao da može da se desi da je loš, osim kada sam koristio plesk da mi bekapuje. Te bekapove nisam uspevao da restorujem a da sajt posle radi.
Dakle nisam znao da treba da se testira, ali svakako kad god sam radio testore, imao sam neki loš osećaj da može da se desi da ne radi.

Smisliću šta da radim za testiranje backup-a
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke19.10.2016. u 13:05 - pre 90 meseci
da perkona xtradb je fork mysql-a uz koji imas njihov xtradb bekap
program koji je valjda free (nije bio sad valjda jeste)
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke02.11.2016. u 16:16 - pre 90 meseci
Citat:
bogdan.kecman:
@djoka, @kojot, imas opciju -K i onda to indexiranje ne traje toliko :D

Sad treba da šinem komandu

mysql -u user1 -p test1 -h test.info < /var/backup/20161102.sql


I glava me zaboli kad znam da cu da cekam preko 1h dok se zavrsi...

Ne kapiram gde da uglavim -K ovde u ovu komandu? Probao sam da izguglam neki example, ali nisam nasao.


Posto je u pitanju magento baza, a pravim samo klon live sajta, kako bi se na njemu nesto istestiralo. Da li to -K moze negativno da utice na samu bazu?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke03.11.2016. u 17:36 - pre 90 meseci
-K ide kad kreiras bekap, ne kad ga vracas :(

rucno bi eventualno mogao pre prvog inserta u dump-u da upises alter
table xxx disable keys; pa posle zadnjeg alter table xxx enable keys; i
tako za svaku tabelu, to radi tako sto ne pravi index posle svakog
indexa nego ugasi indexe, saceka da zavrsis sa svim upisima i onda
izbilduje sve indexe odjedno .. mnoooogo brze ... to kad pravis
mysqldump sa -K on doda sam
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke03.11.2016. u 18:35 - pre 90 meseci
I to je vrh info za sledeci put.
Dakle sa -K ne gubim nista. Baza ce da se reindeksira posle importa u svakom slucaju :)
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: import .sql fajla da li overwrituje sve tabele i podatke04.11.2016. u 08:58 - pre 90 meseci
Pokušavam da izguglam više o toj -K opciji i nigde ne nalazim.

Dampovao sam sa
mysqldump -u user1 -p test1 -h test.info > /var/backup/20161104.sql

i

mysqldump -K -u user1 -p test1 -h test.info > /var/backup/20161104.sql


nisam dobio nikakvu gresku, ali sam dobio dva potpuno ista fajla
 
Odgovor na temu

[es] :: MySQL :: import .sql fajla da li overwrituje sve tabele i podatke

Strane: 1 2

[ Pregleda: 10643 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.