Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ove upute više manje prate Digital Ocean tutorial -> https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql
- Master slave konfiguracija baza podataka omogućava da se podaci uneseni u master bazu odmah repliciraju u slave bazi.
- Ovo je moguće koristiti za backup podataka, ali u slučaju brisanja nekog podatka iz master baze taj se podatak odmah briše i iz slave baze, pa se ne koristi za takve vrste backupa nego da konstantno imamo replicirane podatke na drugom mjestu.
- Podaci se repliciraju pomoću binarnih fileova na način da master u svoj binarni file sprema sve što radi s podacima, a slave kupi taj binarni file i na temelju njega replicira querije u svojoj bazi.
- Podsjetnik za samoga sebe:
- kad je bind-address postavljen na 127.0.0.1 onda se na mysql server moze spojit samo lokalno, a ako je 0.0.0.0 onda se moze spojit s bilo kojeg, a mysql slusa zahtjeve na bilo kojoj IP adresi
- Postavljanje mastera:
- - sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- - promijeniti liniju
- bind-address = 127.0.0.1
- s
- bind-address = 0.0.0.0 -> Ovo govori da mysql sluša na svim IP adresama (pa koju dobije server)
- - otkomentirat linije
- server-id = 1
- log_bin = /var/log/mysql/mysql-bin.log
- - definirat koja baza će se replicirati
- binlog_do_db = newdatabase
- - restartirat mysql
- sudo service mysql restart
- - ući u mysql -> mysql -u root -p
- - dodat usera za replikaciju na masteru
- GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'promijenime';
- FLUSH PRIVILEGES;
- - nakon toga triba dumpat master bazu
- USE newdatabase;
- FLUSH TABLES WITH READ LOCK; -> lockat tablice da dump bude konzistentan
- SHOW MASTER STATUS; -> Da dobijemo podatke o trenutnom stanju mastera (ovako ćemo sync-at slave bazu)
- !!!!OTVORIT NOVI TAB U TERMINALU I NAPRAVIT MYSQLDUMP!!!! -> bitno je da je novi tab
- nakon dumpanja možemo zatvorit taj novi tab i vratit se u stari tab
- UNLOCK TABLES;
- QUIT;
- Postavljanje slavea:
- - kreirat praznu bazu, pazit da je character set isti ka i u mastera
- CREATE DATABASE newdatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
- EXIT;
- - importat dumpanu bazu s mastera
- - editirat konfiguraciju slave mysql-a -> sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- - otkomentirat liniju i odabrat server-id koji je različit od 1
- server-id = 2
- - otkomentirat liniju
- log_bin = /var/log/mysql/mysql-bin.log
- - restartirat mysql
- sudo service mysql restart
- - postavit mastera na slave-u:
- CHANGE MASTER TO MASTER_HOST='12.34.56.789',
- MASTER_USER='repl',
- MASTER_PASSWORD='promijenime',
- MASTER_LOG_FILE='mysql-bin.000001',
- MASTER_LOG_POS= 107;
- pri čemu su MASTER_LOG_FILE i MASTER_LOG_POS informacije dobivene iz "show master status" naredbe na masteru
- - na kraju napraviti:
- START SLAVE;
- Da bismo vidjeli statuse mastera i slave-a koristimo
- SHOW MASTER STATUS i SHOW SLAVE STATUS
- U slučaju greške gdje se neka naredba ne može izvršiti na slave-u može se ta sql naredba preskočiti pomoću:
- STOP SLAVE;
- SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; SLAVE START;
- START SLAVE;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement