Sada je: 23 lis 2019, 15:38.
Linux, poslužitelj, mreže i sigurnost

Moderator/ica: Moderatori/ce

Pozdrav,

Znači imamo server na poslu koji ima 18 gb baza,naručena su još 2 servera na kojima smo kolega i ja napravili Cluster(Percona)

Sada sa tog servera trebamo prebaciti aplikaciju i sve baze koje ta aplikacija koristi,Za app nije problem pošto je symphony i to je već prebačeno
Pošto je app zahtjevan i dosta posjećen treba nam cluster da to može normalno funkcionirati


Što se tiće baza,problem je:
Nemožemo koristiti mysqldump i scp jer moramo bazu po bazu a ima jako puno malih baza i trajalo bi tjednima,
ali opet nemožemo sve u jedan dump zato što nesmijemo pomjesati baze od mysql-a i ispconfiga na clusteru,inače će se sve raspasti
Ovu metodu ce mo koristiti tek u krajnjem slučaju i moramo ugasiti mysql

Ima 650 zasebnih baza sa posebnim imenom,ručna metoda gore nije pogodna za to uopce
Trebamo nešto automatizirano.

Jel zna netko neku metodu da sve osim određenih baza samo prebacimo sa jednog na drugi server,po mogucnosti da nema downtime-a na njima.

Googlanje nije baš pomoglo ,nista nam ne paše u ovoj situaciji
usere tih baza smo već prebacili na cluster sa percona-toolkit-om,tool kit to nemože napraviti za baze
xtrabackup opet zahtjeva reboot.

Hvala :)
#!/bin/bash
coffee=0

while [ `date +%H%M` -lt 0800 ]; do

coffee=$((coffee + 1))

done
exit
Postovi: 855
Postovi: 855
Pridružen/a: 21 lip 2012, 20:36
Lokacija: /home/donji_miholjac -> /home/varazdin
Podijelio/la zahvalu: 14 puta
Primio/la zahvalu: 19 puta
Spol: M
OS: Debian 10 Buster / KDE
Ok je da se baze dump-aju u posebne fajlove? Ako da, vjerovatno postoji python/perl/bash/... skripta.
Avatar
Postovi: 406
Postovi: 406
Pridružen/a: 15 lis 2013, 01:42
Lokacija: BiH, Kakanj
Podijelio/la zahvalu: 46 puta
Primio/la zahvalu: 30 puta
Spol: M
OS: Arch / Manjaro / #!
Možeš i sa skriptom dumpati da ti bude brže, recimo
for i in baza1 baza2 baza3; do mysqldump --quick baza1 > baza1.sql; done

Alternativa ti je napraviti innobackupex (koje NE ZAHTIJEVA reboot) jedne baze (to radi samo na innodb tablicama, myisam locka ali ako imaš percona cluster odna ti je sve innodb tako i tako). Kada napraviš innodb backup, apply log i onda na toj bazi dropaj sve što te ne zanima. Znači, recimo, napraviš innobackupex koji ti da konzistantno stanje, zaslejvaš taj tvoj novi master na postojeći cluster da ti povuće nove podatke ako tti je bitno (treba ti gtid biti enejblan ako slejvaš na galeru) i onda napraviš da ne replicira baze koje te ne zanimaju na taj slave i dropaš postojeće. Ovo je ovako u vrlo općem smislu. Ako imaš galeru a nemaš gtid na tome, odna mislim da ti je najbolja opcija innobackupex pa iz toga skriptom dropat tih par baza koje ti ne treabju. innobackupex ti za razliku od mysqldumpa kopira i indexe tako da je bitno brži restore.

Htio bih samo ponoviti da xtrabackup NE zahtijeva reboot, Ne znam tko ti je to rekao ili odakle si to izvukao ali to jednostavno nije istina. Koristim taj alat na tjednoj bazi (nekada i dnevnoj) i to na bazama od par gigabajta pa sve do par terabajta i ne da nisam morao rebootat server, nisam morao ni gasiti bazu od kojih su neke u tom trenu i primale writove (što bi bilo teško do nemoguće izvesti sa mysqldumpom).
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 9902
Moderator
Postovi: 9902
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 158 puta
Primio/la zahvalu: 269 puta
Spol: Y
OS: utuntu 17.04
Hmmm
Ima jedan problem,Instalirali smo xtrabackup.
Nekom cudnom logikom ne slaže se sa clusterom i pobrisao je pakete od clustera kod instalacije.
To mi uopce nema smisla

szbunjen


Edit:
Sorry nisam dobro objasnio:
Moramo ga rebootat da podignemo limite da uopce možemo prebacit baze.

Jel imaš kakvih iskustava sa xtradb na clusteru?
#!/bin/bash
coffee=0

while [ `date +%H%M` -lt 0800 ]; do

coffee=$((coffee + 1))

done
exit
Postovi: 855
Postovi: 855
Pridružen/a: 21 lip 2012, 20:36
Lokacija: /home/donji_miholjac -> /home/varazdin
Podijelio/la zahvalu: 14 puta
Primio/la zahvalu: 19 puta
Spol: M
OS: Debian 10 Buster / KDE
Tomislav001 je napisao/la:Hmmm
Ima jedan problem,Instalirali smo xtrabackup.
Nekom cudnom logikom ne slaže se sa clusterom i pobrisao je pakete od clustera kod instalacije.
To mi uopce nema smisla

Ima smisla, samo onaj tko je to radio nema pojma što radi :D Najvjerojatnije je radio nešto u stilu apt-get -y install
percona-xtrabackup, a ima čudne repozitorije i to je automatski koliziju riješilo kako ne želiš. Pravila:

1) nikada ne koristiti -y
2) nikada na slijepo ne stiskati y/yes, nego pogledati što će stvar izbrisati a onda tek vidjeti kako dalje.


Tomislav001 je napisao/la:Edit:
Sorry nisam dobro objasnio:
Moramo ga rebootat da podignemo limite da uopce možemo prebacit baze.

kakvi limiti? I zašto treba za dizanje limita rebootati stroj? Nema to smisla.

Tomislav001 je napisao/la:Jel imaš kakvih iskustava sa xtradb na clusteru?


Da. Na percona-xtradb-cluster-server-5.6 koji vrti galeru.

Ne znam na kojem ste OS-u točno, no ovo je moj sources za debian jessie (imaš na percona stranicama sve repoe):
Kod: Označi sve
deb http://repo.percona.com/apt jessie main
deb-src http://repo.percona.com/apt jessie main


Kod: Označi sve
apt-get update
napravi

nakon toga ti treba percona-xtrabackup:

Kod: Označi sve
apt-get install percona-xtrabackup


Za 5.6 cluster (točna verzija 5.6.32-25.17-1.jessie) i
ii percona-toolkit 2.2.19-1 all Advanced MySQL and system command-line tools
ii percona-xtrabackup 2.3.5-1.jessie amd64 Open source backup tool for InnoDB and XtraDB


način na koji izvrtiš backup je ovo (samo popnuti svoje vrijednosti):
Kod: Označi sve
innobackupex --user=root --password=šifra --parallel=10 --use-memory=10G /putanja/do/mysql/datadira/

Pazi da kod te naredbe parametar --use-memmory imaš uistinu dodatno 10G rama, prilagodi stvarnoj situaciji. Također, morate imati dovoljno veliki innodb log da se uspješno dovrši (što ovisi o količini writova).

Jednom kada završi, dobit češ u trenutnom dirketoriju nešto u stilu: 2016-11-29_08-46-00 što je tvoj datadir. To možeš drito pokrenuti, ali sve promjene u međuvremenu su ti onda nestale. Da applyaš log ti treba:
Kod: Označi sve
/usr/bin/innobackupex --user=root --password=šifra --apply-log /putanja/do/backupa


Nakon toga "chown -R mysql:mysql /putanja/do/backupa" i stavip datadir di već treba.

Normalno da imaš više servera bi ti trebale kod rađenja backupa i --slave-info ili --galera-info, ali vi imate samo jedan server. Uz te opcije onda dobijete i podatke kako zaslejvati na master.


Dodatno:

Kod: Označi sve
apt-cache policy percona-xtrabackup
ti kaže koje alternativne verzije xtrabackupa imate. Mogu se instalriati tipa onda sa : apt-get install percona-xtrabackup=2.2.3-2.1
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 9902
Moderator
Postovi: 9902
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 158 puta
Primio/la zahvalu: 269 puta
Spol: Y
OS: utuntu 17.04
Da kolega je instalirao,stisnuo je yes bez da cita pface
morali smo sve dizati od pocetka.

Ja osobno nemam iskustva sa clusterima
prvi put ovo radim sad,Kolega ima nesto iskustva sa tim
On kaze da treba reboot da podigne neke limite neznam na što točno misli
Imamo jessie

Ekstra smo oprezni pošto se tu radi o app-u za fiskalizaciju i takve stvari i nije bas da mi se ide na razgovor u poreznu :/
Pokušati ćemo sa ovim,moram pricati sa kolegom još
Hvala na pomoći :)
#!/bin/bash
coffee=0

while [ `date +%H%M` -lt 0800 ]; do

coffee=$((coffee + 1))

done
exit
Postovi: 855
Postovi: 855
Pridružen/a: 21 lip 2012, 20:36
Lokacija: /home/donji_miholjac -> /home/varazdin
Podijelio/la zahvalu: 14 puta
Primio/la zahvalu: 19 puta
Spol: M
OS: Debian 10 Buster / KDE
Stavite si neki testni server (koji nije virtualka na produkcijskom serveru) i na njemu importajte bazu tipa jednom tjedno pa uvijek imate relativno svježe podatke za eksperimente i testiranja. samo se sjeti da testni server mora biti točna kopija originala, a ne kao neki punoglavci da imaju na testnom serveru sve rzaličito od produkcije jer ima tako paše pa se čude zašto je test radio a u produkciji nije. Mrvo sa meditirao gornje naredbe (dodao --parallel=10). Te naredbe rade inače i na normalnoj perconi, mariadb mysqlu.
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 9902
Moderator
Postovi: 9902
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 158 puta
Primio/la zahvalu: 269 puta
Spol: Y
OS: utuntu 17.04
Probaj sa replikacijom.
Na novi server stavis prazne baze i podesis replikaciju.
Kad se sve prebaci, na nekoliko minuta ugasis aplikaciju, maknes replikaciju i aplikaciju prebacis na novu bazu.
Postovi: 155
Postovi: 155
Pridružen/a: 06 svi 2012, 11:59
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 3 puta
Spol: M
OS: Fedora, Fedora server

Na mreži
Trenutno korisnika/ca: / i 1 gost.