Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Multi-instancia MySQL


La motivación principal por la que tener multi instancia es conseguir con tres servidores una infraestructura que soporte la caida de uno de los nodos pudiendo recuperarse sin downtime alguno, para ello montaremos dos servers en modo MASTER - MATER/SLAVE y el tercero como SLAVE/SLAVE con dos instancias, caiga el server que caiga siempre tendremos un dataset con el que restaurar y enganchar, el escenario es el siguiente:

 

 

 

 

 

 

 

 

 

En este artículo ya explicamos como configurar un master-slave, por lo tanto nos vamos a centrar en la configuración multi instancia.

Creamos el directorio de ficheros de cada instancia:

INSTANCIA="00"
mkdir /var/lib/mysql_$INSTANCIA
mkdir /var/lib/mysql_$INSTANCIA/tmp
chown -R mysql:mysql /var/lib/mysql_$INSTANCIA/

Instalamos los ficheros iniciales:

cd /usr/share/mysql/
./scripts/mysql_install_db --user=mysql --basedir=/usr/ --datadir=/var/lib/mysql_$INSTANCIA/

Estos pasos se deben repetir para la segunda instancia: 01

Generamos el script de arranque para cada instancia, este sabrá que fichero de config leer en base al nombre del script de arranque.

cp /etc/init.d/mysql /etc/init.d/mysql_00
chmod 755 /etc/init.d/mysql_00
cp /etc/init.d/mysql /etc/init.d/mysql_01
chmod 755 /etc/init.d/mysql_01

Creamos los ficheros de config con las rutas adecuadas para cada instancia, obviamente no podremos utilizar el mismo puerto para ambas instancias.

mkdir /etc/mysql_$INSTANCIA/
vi /etc/mysql_$INSTANCIA/my.cnf
port = 3306
port = 3307

Arrancamos y comprobamos que ambas instancias están arrancadas y a la escucha:

/etc/init.d/mysql_00 start
/etc/init.d/mysql_01 start
netstat -nputa|grep 3306
netstat -nputa|grep 3307

Cambiamos el password de root:

mysqladmin --socket=/var/run/mysqld/mysqld_00.sock -u root password 'PASSWORD'
mysqladmin --socket=/var/run/mysqld/mysqld_01.sock -u root password 'PASSWORD'

Conectamos y borramos la base de datos de test:

mysql --socket=/var/run/mysqld/mysqld_00.sock -u root -p
mysql> drop database test;
mysql --socket=/var/run/mysqld/mysqld_01.sock -u root -p
mysql> drop database test;

Con esto ya tendriamos las dos instancias, tan solo debemos enganchar una de ellas al servidor MASTER y la otra al MASTER/SLAVE y ya tendremos el sistema perfecto MySQL-HA.


Autor: Kr0m -- 22/08/2015 23:08:50