Requisits previs
Començant
La rèplica multimaster de MySQL és una característica excel·lent dins de MySQL. Tanmateix, només hi ha un problema; La rèplica estàndard multi-mestre sembla que mai no serà tan estable com una cosa com la rèplica mestre-esclau. Sempre necessita atenció. És aquí on entra en joc Percona. L'equip de Percona ha desenvolupat un producte sorprenent anomenat clúster Percona XtraDB. XtraDB compta amb una replicació multimaster de classe mundial impulsada per Galera. Aleshores, a què estem esperant? Comencem.
Requisits previs
- Una distribució de Linux que escolliu. En aquesta guia, farem servir Debian 7. Podeu utilitzar una distribució diferent si ho voleu. ( Tingueu en compte que és possible que hàgiu d'adaptar aquesta guia per treballar amb la distribució que trieu )
- Dos nodes amb el mateix sistema operatiu.
- Coneixements bàsics de la línia d'ordres i SSH.
Començant
SSH a les vostres màquines virtuals.
VM 1:
ssh root@xxx.xxx.xxx.xxx
VM 2:
ssh root@yyy.yyy.yyy.yyy
Afegeix els repositoris de Percona.
En ambdós nodes, executeu l'ordre següent:
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
Ara hem d'actualitzar les fonts:
apt-get update
Instal·leu Percona-XtraDB Cluster.
La instal·lació és senzilla:
apt-get install percona-xtradb-cluster-56
Si esteu familiaritzat amb MySQL, la següent pantalla hauria de semblar familiar. Simplement seguiu les instruccions a la pantalla per introduir una contrasenya.
Configura el primer node.
La configuració és força senzilla. Només heu d'afegir unes quantes línies al fitxer de configuració de MySQL. En aquest cas, faré servir Nano, però podeu utilitzar l'editor de text que vulgueu.
Feu servir això per obrir el fitxer a les dues màquines:
nano /etc/mysql/my.cnf
Baixeu bind-address = 127.0.0.1i afegiu-hi un # abans. Afegiu les línies següents immediatament després de la línia (sense comentaris) bind-address:
### 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"
Deseu i sortiu del fitxer (Ctrl+X).
Ara, arrenquem el node:
/etc/init.d/mysql bootstrap-pxc
A continuació, hem de crear l'usuari i donar-li privilegis, per això cal recordar aquesta contrasenya. Haureu d'iniciar sessió a l'intèrpret d'ordres de MySQL ( mysql -u root -p) i escriure el següent (no inclogueu el mysql>):
mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'yoursecretpass';
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;
Configura el segon node.
La configuració del segon node és idèntica a la del primer, excepte dos valors. Una vegada més, comenta bind-address = 127.0.0.1i enganxa el següent immediatament després. Recordeu editar els valors en conseqüència.
### 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"
A continuació, escriviu /etc/init.d/mysql start. Veureu la següent sortida:
[....] Starting MySQL (Percona XtraDB Cluster) database server: mysqld . .
[....] State transfer in progress [ok]
Això és! Heu configurat un clúster XtraDB multimaster! Aquest és un clúster XtraDB sense preocupacions amb un gran rendiment.
Prova el clúster.
Al node 1, escriviu mysql -u root -pllavors create database demo;. Al node oposat, inicieu sessió a MySQL amb root i escriviu show databases;. Si tot va funcionar correctament, veureu la base de dades que heu creat al node oposat!