Előfeltételek
Elkezdeni
A MySQL multi-master replikációja kiváló szolgáltatás a MySQL-en belül. Azonban csak egy probléma van; Úgy tűnik, hogy a szabványos több főkiszolgálós replikáció soha nem olyan stabil, mint a mester-szolga replikáció. Mindig figyelmet igényel. Itt jön képbe a Percona. A Percona csapata kifejlesztett egy csodálatos terméket Percona XtraDB cluster néven. Az XtraDB világszínvonalú multimaster replikációt tartalmaz, amelyet a Galera hajt. Szóval, mire várunk? Lássunk neki.
Előfeltételek
- Egy választott Linux disztró. Ebben az útmutatóban a Debian 7-et fogjuk használni. Ha szeretné, használhat másik disztribútumot is. ( Ne feledje, hogy előfordulhat, hogy ezt az útmutatót módosítania kell a választott disztribúcióhoz )
- Két csomópont ugyanazt az operációs rendszert futtatja.
- A parancssor és az SSH alapszintű ismerete.
Elkezdeni
SSH-t a virtuális gépekbe.
VM 1:
ssh root@xxx.xxx.xxx.xxx
VM 2:
ssh root@yyy.yyy.yyy.yyy
Adja hozzá a Percona adattárait.
Mindkét csomóponton hajtsa végre a következő parancsot:
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
Most frissítenünk kell a forrásokat:
apt-get update
Telepítse a Percona-XtraDB Clustert.
A telepítés egyszerű:
apt-get install percona-xtradb-cluster-56
Ha ismeri a MySQL-t, akkor ez a következő képernyő ismerősnek tűnik. Egyszerűen kövesse a képernyőn megjelenő utasításokat a jelszó megadásához.
Konfigurálja az első csomópontot.
A konfiguráció meglehetősen egyszerű. Csak hozzá kell adnia néhány sort a MySQL konfigurációs fájlhoz. Ebben az esetben Nano-t fogok használni, de használhatja a választott szövegszerkesztőjét.
Ezzel nyissa meg a fájlt mindkét gépen:
nano /etc/mysql/my.cnf
Menjen le, bind-address = 127.0.0.1és adjon hozzá egy #-et. Adja hozzá a következő sorokat közvetlenül a (megjegyzett) bind-addresssor után:
### 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"
Mentse el és lépjen ki a fájlból (Ctrl+X).
Most indítsuk el a csomópontot:
/etc/init.d/mysql bootstrap-pxc
Ezután létre kell hoznunk a felhasználót, és jogosultságokat kell adnunk neki, ezért emlékeznie kell erre a jelszóra. Be kell jelentkeznie a MySQL shellbe ( mysql -u root -p), és be kell írnia a következőket (ne vegye fel a következőt mysql>):
mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'yoursecretpass';
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;
Konfigurálja a második csomópontot.
A második csomópont konfigurációja megegyezik az elsővel, kivéve két értéket. Még egyszer írjon megjegyzést, bind-address = 127.0.0.1és közvetlenül utána illessze be a következőket. Ne felejtse el ennek megfelelően módosítani az értékeket.
### 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"
Ezután írja be /etc/init.d/mysql start. A következő kimenetet fogja látni:
[....] Starting MySQL (Percona XtraDB Cluster) database server: mysqld . .
[....] State transfer in progress [ok]
Ez az! Több fős XtraDB-fürtöt konfigurált! Ez egy gondtalan XtraDB-fürt nagyszerű teljesítménnyel.
A klaszter tesztelése.
Az 1. csomóponton írja be, mysql -u root -pmajd create database demo;. A szemközti csomópont belépés MySQL root, és típusát show databases;. Ha minden megfelelően működött, akkor a szemközti csomóponton látni fogja a létrehozott adatbázist!