[ DusanInfinity @ 03.09.2018. 08:49 ] @
Pozdrav, imate li neki predlog oko softvera za automatski backup mysql baza na neki remote server?

Na jednom serveru vec imam mysql, takodje imam dedicated masinu cije performanse koristim za neke druge stvari, a imam viska prostora na njoj, pa me zanima da li vi imate neki predlog za softver. Pretrazivao sam i naisao na dosta programa, ali ne zelim da se zalecem, da ne uzmem nesto lose, jer su licence jako skupe.

Da li uopste postoji neka besplatna opcija?

Hvala!
[ gost12 @ 03.09.2018. 11:49 ] @
Ovisno o tome koliko su ti baze velike uvijek možeš napisati shell scriptu da ti executa mysqldump s tvojim parametrima i scp za kopiranje na drugi server, definiraš cronjob kad da ti se pokreće i to je to. Možeš još i bin logove si backupat svakih 15-30min, sve ovisi o veličini baze/broju promjena/važnosti podataka...
[ bogdan.kecman @ 03.09.2018. 12:32 ] @
povuces sa tog "target" servera direktno mysqlpump (ne dump nego pump on
je nesto brzi). koristi --compress da bi koristio kompresovanu
komunikaciju izmedju servera, takodje --compress-output=zlib ili
--compress-output=lz4 (lz4 pravi manji bekap) i to ti je to .. nema neke
prevelike mudrosti, stavis u kron, namestis da ti pravi fajl sa datumom
u imenu ... mozes neki skript koji brise stare bekape .. imas milion
primera na netu .. jedino, dakle, relativno bitno

 - vuci bekap direkt sa te target masine  (ne mora, mozes da pravis i
bekap tamo gde je db pa da ga kopiras, ali ovako smanjujes load na io
sistem db servera)

 - koristi mysqlpump a ne mysqldump na novijim serverima (na starim
mysqldump)

 - ako masine nisu u lanu koristi -C da kompresujes komunikaciju izmedju
klijenta i servera, ako su u lanu onda nemoj

i to to je to ..
[ DusanInfinity @ 04.09.2018. 14:15 ] @
Hvala puno!
[ DusanInfinity @ 26.09.2018. 21:56 ] @
Citat:
bogdan.kecman:
povuces sa tog "target" servera direktno mysqlpump (ne dump nego pump on
je nesto brzi). koristi --compress da bi koristio kompresovanu
komunikaciju izmedju servera, takodje --compress-output=zlib ili
--compress-output=lz4 (lz4 pravi manji bekap) i to ti je to .. nema neke
prevelike mudrosti, stavis u kron, namestis da ti pravi fajl sa datumom
u imenu ... mozes neki skript koji brise stare bekape .. imas milion
primera na netu .. jedino, dakle, relativno bitno

 - vuci bekap direkt sa te target masine  (ne mora, mozes da pravis i
bekap tamo gde je db pa da ga kopiras, ali ovako smanjujes load na io
sistem db servera)

 - koristi mysqlpump a ne mysqldump na novijim serverima (na starim
mysqldump)

 - ako masine nisu u lanu koristi -C da kompresujes komunikaciju izmedju
klijenta i servera, ako su u lanu onda nemoj

i to to je to ..


Odradio sam sve, medjutim sad me zeza cron koji izgleda ne radi posao kako treba, tj ne pokrece skriptu uopste

Skripta je sledeca:
Code:

mysqldump -C --compress -h  x.x.x.x -u backup -pXXXX DB_1 | gzip >/home/admin/mysqldump/MySQLDB_`date +"%d.%m.%Y-%H:%M:%S"`.sql.gz


Kod koji koristim u cron-u za pokretanje skripte:
Code:

/home/admin/MySQLdump1.sh 2>&1>>/home/admin/mysqldump/mysqlbackup.log


Da li je tu sve u redu?
[ bogdan.kecman @ 27.09.2018. 01:50 ] @
- sto ne mysqlpump  --result-file=/home/admin/mysqldump/MySQLDB_`date
+"%d.%m.%Y-%H:%M:%S"`.sqldump.lz4 --compress-output=LZ4 
--complete-insert  --extended-insert=256 --routines 
--login-path=TVOJLOGINPATH   ... (
https://dev.mysql.com/doc/refm...sqlpump.html#mysqlpump-options )

- zasto -pXXXX, zasto ne napravis login path  (
https://dev.mysql.com/doc/refman/8.0/en/mysql-config-editor.html )
[ svepomalo @ 27.09.2018. 02:33 ] @
Citat:
bogdan.kecman:
--complete-insert  --extended-insert=256 --routines 


Jel ima neki poseban razlog zasto extended-insert na 256, 250 je default?
[ bogdan.kecman @ 27.09.2018. 02:41 ] @
nema to je samo primer da moze se ukuca neki broj, 256 mi bilo "pod
ruku" :) dovoljno je samo --extended-insert
[ svepomalo @ 27.09.2018. 02:51 ] @
Citat:
bogdan.kecman: nema to je samo primer da moze se ukuca neki broj, 256 mi bilo "pod
ruku" :) dovoljno je samo --extended-insert


:)
[ bogdan.kecman @ 27.09.2018. 03:12 ] @
ono sto je tu bitnije je da se koristi mysqlpump koji moze da radi paralelno (za detalje videti https://dev.mysql.com/doc/refm...ump.html#mysqlpump-parallelism) , kompresuje izlaz etc etc.. realno bolji alat ... ta i ako se nece LZ4 moze i ZIP da se koristi kao algoritam pa se pravi .sqldump.gz :D ... mada je LZ4 mnogo bolji algo za pakovanje dampa

i da se koristi

--login-path=TVOJLOGINPATH

umesto sifre u skripti koristiti login-path
trenutno -pXXX pravi warning ali "sutra" moze da prestane da radi


loginpath radi sa svim klijentima vec neko vreme, znaci sifra u shell-u je nono ..
[ Panta_ @ 27.09.2018. 05:47 ] @
Citat:
Kod koji koristim u cron-u za pokretanje skripte:

/home/admin/MySQLdump1.sh 2>&1>>/home/admin/mysqldump/mysqlbackup.log

Stavi ovo 2>&1 na kraj linije ako hoćes da loguješ stderr i stdout, ovako u log fajl ide samo stdout. Takođe, ide razmak između 2>&1 i >>.