Preduvjeti
Početak rada
MySQL multi-master replikacija izvrsna je značajka unutar MySQL-a. Međutim, postoji samo jedan problem; Čini se da standardna multi-master replikacija nikada nije tako stabilna kao nešto poput replikacije master-slave. Uvijek je potrebna pažnja. Tu na scenu stupa Percona. Percona tim je razvio nevjerojatan proizvod nazvan Percona XtraDB cluster. XtraDB sadrži multi-master replikaciju svjetske klase koju pokreće Galera. Dakle, što čekamo? Započnimo.
Preduvjeti
- Linux distribucija po vašem izboru. U ovom vodiču koristit ćemo Debian 7. Ako želite, možete koristiti drugu distribuciju. ( Imajte na umu da ćete možda morati prilagoditi ovaj vodič za rad s distroom po vašem izboru )
- Dva čvora pokreću isti OS.
- Osnovno poznavanje naredbenog retka i SSH-a.
Početak rada
SSH u vaše virtualne strojeve.
VM 1:
ssh root@xxx.xxx.xxx.xxx
VM 2:
ssh root@yyy.yyy.yyy.yyy
Dodajte Perconina spremišta.
Na oba čvora izvršite sljedeću naredbu:
echo -e "deb http://repo.percona.com/apt wheezy main\ndeb-src http://repo.percona.com/apt wheezy main" >> /etc/apt/sources.list.d/percona.list && apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
Sada moramo ažurirati izvore:
apt-get update
Instalirajte Percona-XtraDB Cluster.
Instalacija je jednostavna:
apt-get install percona-xtradb-cluster-56
Ako ste upoznati s MySQL-om, ovaj sljedeći ekran bi trebao izgledati poznato. Jednostavno slijedite upute na zaslonu za unos lozinke.
Konfigurirajte prvi čvor.
Konfiguracija je prilično jednostavna. Jednostavno morate dodati nekoliko redaka u MySQL konfiguracijsku datoteku. U ovom slučaju, ja ću koristiti Nano, ali vi možete koristiti uređivač teksta po izboru.
Koristite ovo za otvaranje datoteke na oba stroja:
nano /etc/mysql/my.cnf
Idite dolje bind-address = 127.0.0.1i dodajte # prije njega. Dodajte sljedeće retke odmah nakon (komentiranog) bind-addressretka:
### Galera library.
wsrep_provider=/usr/lib/libgalera_smm.so
### IP addresses of your two nodes.
wsrep_cluster_address=gcomm://xxx.xxx.xxx.xx,yyy.yyy.yyy.yyy
### This will not work unless binlog is formatted to ROW.
binlog_format=ROW
### This changes how InnoDB autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
### Node #1 address (The node you are ssh`d into now.)
wsrep_node_address=xxx.xxx.xxx.xx
### SST Method
wsrep_sst_method=xtrabackup-v2
### Cluster name
wsrep_cluster_name=xtradb
### Node Name, in this case we will just call it xtradb1
wsrep_node_name=xtradb1
### Authentication, REMEMBER THIS.
wsrep_sst_auth="sstuser:yoursecretpass"
Spremite i izađite iz datoteke (Ctrl+X).
Sada, pokrenemo čvor:
/etc/init.d/mysql bootstrap-pxc
Zatim moramo kreirati korisnika i dati mu privilegije, zato morate zapamtiti tu lozinku. Morat ćete se prijaviti na MySQL ljusku ( mysql -u root -p) i upisati sljedeće (Nemojte uključivati mysql>):
mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'yoursecretpass';
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;
Konfigurirajte drugi čvor.
Konfiguracija za drugi čvor je identična prvom, osim za dvije vrijednosti. Još jednom, komentirajte bind-address = 127.0.0.1i zalijepite sljedeće odmah nakon toga. Ne zaboravite u skladu s tim urediti vrijednosti.
### Galera library.
wsrep_provider=/usr/lib/libgalera_smm.so
### IP addresses of your two nodes.
wsrep_cluster_address=gcomm://xxx.xxx.xxx.xx,yyy.yyy.yyy.yyy
### This will not work unless binlog is formatted to ROW.
binlog_format=ROW
### This changes how InnoDB autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
### Node #2 address (The node you are ssh`d into now.)
wsrep_node_address=yyy.yyy.yyy.yyy
### SST Method
wsrep_sst_method=xtrabackup-v2
### Cluster name
wsrep_cluster_name=xtradb
### Node Name, in this case we will just call it xtradb1
wsrep_node_name=xtradb1
### Authentication, REMEMBER THIS.
wsrep_sst_auth="sstuser:yoursecretpass"
Zatim upišite /etc/init.d/mysql start. Vidjet ćete sljedeći izlaz:
[....] Starting MySQL (Percona XtraDB Cluster) database server: mysqld . .
[....] State transfer in progress [ok]
To je to! Konfigurirali ste multi-master XtraDB klaster! Ovo je XtraDB klaster bez brige s odličnim performansama.
Testiranje klastera.
Na čvoru 1 upišite mysql -u root -pzatim create database demo;. Na suprotnom čvoru, prijavite se na MySQL s root-om i upišite show databases;. Ako je sve radilo ispravno, tada ćete vidjeti bazu podataka koju ste stvorili na suprotnom čvoru!