Advertisement
Guest User

Untitled

a guest
Mar 1st, 2019
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.23 KB | None | 0 0
  1. Ove upute više manje prate Digital Ocean tutorial -> https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql
  2.  
  3. Master slave konfiguracija baza podataka omogućava da se podaci uneseni u master bazu odmah repliciraju u slave bazi.
  4. 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.
  5. 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.
  6.  
  7. Podsjetnik za samoga sebe:
  8.  
  9. 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
  10.  
  11. Postavljanje mastera:
  12.  
  13. - sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  14. - promijeniti liniju
  15.     bind-address            = 127.0.0.1
  16.     s
  17.     bind-address            = 0.0.0.0 -> Ovo govori da mysql sluša na svim IP adresama (pa koju dobije server)
  18. - otkomentirat linije
  19.     server-id               = 1
  20.     log_bin                 = /var/log/mysql/mysql-bin.log
  21. - definirat koja baza će se replicirati
  22.     binlog_do_db            = newdatabase
  23. - restartirat mysql
  24.     sudo service mysql restart
  25. - ući u mysql -> mysql -u root -p
  26. - dodat usera za replikaciju na masteru
  27.     GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'promijenime';
  28.     FLUSH PRIVILEGES;
  29. - nakon toga triba dumpat master bazu
  30.     USE newdatabase;
  31.     FLUSH TABLES WITH READ LOCK; -> lockat tablice da dump bude konzistentan
  32.     SHOW MASTER STATUS; -> Da dobijemo podatke o trenutnom stanju mastera (ovako ćemo sync-at slave bazu)
  33.     !!!!OTVORIT NOVI TAB U TERMINALU I NAPRAVIT MYSQLDUMP!!!! -> bitno je da je novi tab
  34.     nakon dumpanja možemo zatvorit taj novi tab i vratit se u stari tab
  35.     UNLOCK TABLES;
  36.     QUIT;
  37.  
  38. Postavljanje slavea:
  39.  
  40. - kreirat praznu bazu, pazit da je character set isti ka i u mastera
  41.     CREATE DATABASE newdatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
  42.     EXIT;
  43. - importat dumpanu bazu s mastera
  44. - editirat konfiguraciju slave mysql-a -> sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  45. - otkomentirat liniju i odabrat server-id koji je različit od 1
  46.      server-id               = 2
  47. - otkomentirat liniju
  48.     log_bin                 = /var/log/mysql/mysql-bin.log
  49. - restartirat mysql
  50.     sudo service mysql restart
  51. - postavit mastera na slave-u:
  52.     CHANGE MASTER TO MASTER_HOST='12.34.56.789',
  53.     MASTER_USER='repl',
  54.      MASTER_PASSWORD='promijenime',
  55.     MASTER_LOG_FILE='mysql-bin.000001',
  56.     MASTER_LOG_POS=  107;
  57.    
  58.     pri čemu su MASTER_LOG_FILE i MASTER_LOG_POS informacije dobivene iz "show master status" naredbe na masteru
  59.  
  60. - na kraju napraviti:
  61.     START SLAVE;
  62.  
  63. Da bismo vidjeli statuse mastera i slave-a koristimo
  64.     SHOW MASTER STATUS i SHOW SLAVE STATUS
  65. 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:
  66.     STOP SLAVE;
  67.     SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; SLAVE START;
  68.     START SLAVE;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement