Original post: http://anothermysqldba.blogspot.com/2014/06/installing-percona-xtradb-cluster.html
Así que por supuesto Percona tiene documentación que explica el proceso. El objetivo de este blog es ir a un poco más de detalle, con la esperanza de que puedan ayudar a alguien.
Los hipervínculos para su revisión:
Así que empecé con una instalación básica de servidor de CentOS 6.5.
Para evitar cualquier conflicto quité las mysql-libs y dependencias afines
Entonces he instalado los paquetes de racimo Percona.
Así podemos sustituir los artículos que se quita por nodo ..
Así que repetir los pasos anteriores instalará los paquetes para que podamos configurar el clúster siguiente.
Aunque tenemos tres instancias de MySQL en ejecución todavía no es un clúster.
Configuración de los nodos
Nodo 1 / etc / my.cnf
Inicio de la primera nodo de clúster
El cúmulo es sólo un nodo en el momento.
Aceptar ahora ahora uno está arriba y funcionando podemos empezar el nodo 2
Nodo 2 / etc / my.cnf
Ahora compare nuestros valores en cada nodo.
Ahora añadimos el nodo 3 en la mezcla.
Nodo 3 / etc / my.cnf
Entonces, ¿cómo todos nuestros nodos parecen ahora.
Pruebe los nodos
Así que ahora podemos cargar algunos datos y probarlo ..
Así que ahora que todo se carga ... es todo en el clúster?
Así que por supuesto Percona tiene documentación que explica el proceso. El objetivo de este blog es ir a un poco más de detalle, con la esperanza de que puedan ayudar a alguien.
Los hipervínculos para su revisión:
- CentOS - http://www.percona.com/doc/percona-xtradb-cluster/5.5/howtos/cenots_howto.html
- Ubuntu - http://www.percona.com/doc/percona-xtradb-cluster/5.5/howtos/ubuntu_howto.html
- Instalación Percona XtraDB Cluster de Binarios -
- Firewall se ha configurado para permitir la conexión con los puertos 3306, 4444, 4567 y 4568
- Deje de iptables para redes locales internas o ajustar las reglas de IPTables.
/etc/init.d/iptables stop
- SELinux está deshabilitado
echo 0 >/selinux/enforce
vi /etc/selinux/config
- Configurar claves SSH y colocar en authorized_keys para que todos los valores están en id_rsa.pub authorized_keys en todos los servidores.
# ssh-keygen -t rsa
# cd /root/.ssh/
# cp id_rsa.pub authorized_keys
# chmod 600 /root/.ssh/authorized_keys
# chmod 700 /root/.ssh/
Así que empecé con una instalación básica de servidor de CentOS 6.5.
# yum -y install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
# yum -y install http://mirror.pnl.gov/epel/6/x86_64/epel-release-6-8.noarch.rpm
# wget http://www.percona.com/downloads/RPM-GPG-KEY-percona /etc/pki/rpm-gpg/RPM-GPG-KEY-percona
# wget http://www.percona.com/downloads/RPM-GPG-KEY-percona /etc/pki/rpm-gpg/RPM-GPG-KEY-percona
# yum -y install socat
Para evitar cualquier conflicto quité las mysql-libs y dependencias afines
# rpm -e mysql-libs postfix cronie redhat-lsb-core redhat-lsb-printing redhat-lsb-graphics libcgroup numad redhat-lsb sysstat crontabs cronie-anacron redhat-lsb-compat
Entonces he instalado los paquetes de racimo Percona.
# yum -y install Percona-XtraDB-Cluster-full-56
[root@node1 ~]# /etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)......... SUCCESS!
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
Así podemos sustituir los artículos que se quita por nodo ..
yum -y install postfix cronie redhat-lsb-core redhat-lsb-printing redhat-lsb-graphics libcgroup numad redhat-lsb sysstat crontabs cronie-anacron redhat-lsb-compat
Así que repetir los pasos anteriores instalará los paquetes para que podamos configurar el clúster siguiente.
[root@node2 ~]# /etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)......... SUCCESS!
[root@node3 ~]# /etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)........ SUCCESS!
Aunque tenemos tres instancias de MySQL en ejecución todavía no es un clúster.
Configuración de los nodos
- http://www.percona.com/doc/percona-xtradb-cluster/5.5/howtos/cenots_howto.html
- http://galeracluster.com/documentation-webpages/configuration.html
- http://galeracluster.com/documentation-webpages/search.html
- http://www.magicposition.com/2012/01/16/installing-galera-mysql-clustering-on-ubuntu-10/
Nodo 1 / etc / my.cnf
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Path to Galera library
wsrep_provider=/usr/lib64/libgalera_smm.so
# Cluster connection URL contains the IPs of node#1, node#2 and node#3
# node 1 192.168.0.33
# nod3 2 192.168.0.34
# nod3 3 192.168.0.35
wsrep_cluster_address=gcomm://192.168.0.33,192.168.0.34,192.168.0.35
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
# MyISAM storage engine has only experimental support
default_storage_engine=InnoDB
# This changes how InnoDB auto increment locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node #1 address
wsrep_node_address=192.168.0.33
# SST method
#wsrep_sst_method=xtrabackup
wsrep_sst_method=rsync #
# wsrep_sst_method=rsync_wan #
# wsrep_sst_method=mysqldump # SLOW
# Cluster name
wsrep_cluster_name=percona_cluster
# Authentication for SST method
wsrep_sst_auth="root:<password_here>"
# server_id
server_id=3232235553 #SELECT INET_ATON('192.168.0.33')
#[client]
socket=/var/lib/mysql/mysql.sock
Inicio de la primera nodo de clúster
/etc/init.d/mysql start --wsrep-cluster-address="gcomm://"
Starting MySQL (Percona XtraDB Cluster)...................................... SUCCESS!
[root@node1 mysql]# cat grastate.dat
# GALERA saved state
version: 2.1
uuid: 97c457f8-f3d2-11e3-9b4e-374ebb7427e6
seqno: -1
cert_index:
El cúmulo es sólo un nodo en el momento.
mysql> select @@hostname\G show global status like 'wsrep_cluster_size' \G
*************************** 1. row ***************************
@@hostname: node1.localdomain
1 row in set (0.01 sec)
*************************** 1. row ***************************
Variable_name: wsrep_cluster_size
Value: 1
Aceptar ahora ahora uno está arriba y funcionando podemos empezar el nodo 2
Nodo 2 / etc / my.cnf
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Path to Galera library
wsrep_provider=/usr/lib64/libgalera_smm.so
# Cluster connection URL contains the IPs of node#1, node#2 and node#3
# node 1 192.168.0.33
# nod3 2 192.168.0.34
# nod3 3 192.168.0.35
wsrep_cluster_address=gcomm://192.168.0.33,192.168.0.34,192.168.0.35
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
# MyISAM storage engine has only experimental support
default_storage_engine=InnoDB
# This changes how InnoDB auto increment locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node #1 address
wsrep_node_address=192.168.0.34
# SST method
#wsrep_sst_method=xtrabackup
wsrep_sst_method=rsync #
# wsrep_sst_method=rsync_wan #
# wsrep_sst_method=mysqldump # SLOW
# Cluster name
wsrep_cluster_name=percona_cluster
# Authentication for SST method
wsrep_sst_auth="root:"
# to enable debug level logging, set this to 1
wsrep_debug=1
# server_id
server_id=3232235554 # SELECT INET_ATON('192.168.0.34')
#[client]
socket=/var/lib/mysql/mysql.sock
[root@node2 mysql]#/etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)........................... SUCCESS!
Ahora compare nuestros valores en cada nodo.
mysql> select @@hostname\G show global status like 'wsrep_cluster_size' \G
*************************** 1. row ***************************
@@hostname: node1.localdomain
1 row in set (0.01 sec)
*************************** 1. row ***************************
Variable_name: wsrep_cluster_size
Value: 2
mysql> select @@hostname\G show global status like 'wsrep_cluster_size' \G
*************************** 1. row ***************************
@@hostname: node2.localdomain
1 row in set (0.00 sec)
*************************** 1. row ***************************
Variable_name: wsrep_cluster_size
Value: 2
1 row in set (0.18 sec)
Ahora añadimos el nodo 3 en la mezcla.
Nodo 3 / etc / my.cnf
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Path to Galera library
wsrep_provider=/usr/lib64/libgalera_smm.so
# Cluster connection URL contains the IPs of node#1, node#2 and node#3
# node 1 192.168.0.33
# nod3 2 192.168.0.34
# nod3 3 192.168.0.35
wsrep_cluster_address=gcomm://192.168.0.33,192.168.0.34,192.168.0.35
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
# MyISAM storage engine has only experimental support
default_storage_engine=InnoDB
# This changes how InnoDB auto increment locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node #1 address
wsrep_node_address=192.168.0.35
# SST method
# wsrep_sst_method=xtrabackup
wsrep_sst_method=rsync #
# wsrep_sst_method=rsync_wan #
# wsrep_sst_method=mysqldump # SLOW
# Cluster name
wsrep_cluster_name=percona_cluster
# Authentication for SST method
wsrep_sst_auth="root:"
# to enable debug level logging, set this to 1
wsrep_debug=1
# server_id
server_id=3232235555 # SELECT INET_ATON('192.168.0.35')
#[client]
socket=/var/lib/mysql/mysql.sock
[root@node3 mysql]#/etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)........................... SUCCESS!
[root@node3 mysql]# cat grastate.dat
# GALERA saved state
version: 2.1
uuid: 97c457f8-f3d2-11e3-9b4e-374ebb7427e6
seqno: -1
cert_index:
Entonces, ¿cómo todos nuestros nodos parecen ahora.
mysql> select @@hostname\G show global status like 'wsrep_cluster_size' \G
*************************** 1. row ***************************
@@hostname: node1.localdomain
1 row in set (0.01 sec)
*************************** 1. row ***************************
Variable_name: wsrep_cluster_size
Value: 3
mysql> select @@hostname\G show global status like 'wsrep_cluster_size' \G
*************************** 1. row ***************************
@@hostname: node2.localdomain
1 row in set (0.00 sec)
*************************** 1. row ***************************
Variable_name: wsrep_cluster_size
Value: 3
mysql> select @@hostname\G show global status like 'wsrep_cluster_size' \G
*************************** 1. row ***************************
@@hostname: node3.localdomain
1 row in set (0.00 sec)
*************************** 1. row ***************************
Variable_name: wsrep_cluster_size
Value: 3
Pruebe los nodos
Así que ahora podemos cargar algunos datos y probarlo ..
[root@node2 ~]# wget http://downloads.mysql.com/docs/world_innodb.sql.gz
[root@node2 ~]# gzip -d world_innodb.sql.gz
[root@node2 ~]# mysql -e "create database world"
[root@node2 ~]# mysql world < world_innodb.sql
Así que ahora que todo se carga ... es todo en el clúster?
@@hostname: node1.localdomain
DATABASE_SCHEMA: world
ENGINE: InnoDB
count_tables: 3
TOTAL_DB_GB: 0.001
@@hostname: node2.localdomain
DATABASE_SCHEMA: world
ENGINE: InnoDB
count_tables: 3
TOTAL_DB_GB: 0.001
@@hostname: node3.localdomain
DATABASE_SCHEMA: world
ENGINE: InnoDB
count_tables: 3
TOTAL_DB_GB: 0.001
Parece que se está trabajando.