Este artículo tiene como objetivo presentar cómo instalar y configurar un clúster MySQL basado en 2 servidores. Y tenga en cuenta que MySQL aún puede continuar ejecutándose cuando algún servidor tiene problemas o no funciona.
¡Aviso! Aunque este es un clúster MySQL basado en 2 servidores, debe haber un tercer servidor adicional como nodo de administración, pero este servidor se puede apagar una vez que se completa el inicio del clúster. Al mismo tiempo, cabe señalar que no se recomienda apagar el servidor que sirve como nodo de administración una vez que se completa el inicio del clúster. Aunque teóricamente es posible construir un clúster MySQL basado en solo dos servidores, con dicha arquitectura, una vez que un servidor falla, el clúster no puede continuar funcionando normalmente, perdiendo así el significado del clúster. Por este motivo, se requiere que un tercer servidor se ejecute como nodo de gestión. Además, es posible que muchos amigos no tengan el entorno real de tres servidores, por lo que pueden considerar realizar experimentos en VMWare u otras máquinas virtuales.
A continuación se asume la situación de estos tres servicios:
Servidor1: mysql1.vmtest.net 192.168.0.1
Servidor2: mysql2.vmtest.net 192.168.0.2
Servidor3: mysql3.vmtest.net 192.168.0.3
Los Servidores1 y Servidor2 sirven como servidores que realmente configuran el clúster MySQL. Los requisitos para Server3 como nodo de administración son menores. Solo se requieren pequeños ajustes en el sistema Server3 y no es necesario instalar MySQL. Server3 puede usar una computadora con una configuración inferior y puede ejecutar otros servicios en Server3 al mismo tiempo. 2. Instale MySQL en el Servidor1 y el Servidor2
=================================De [url]/u/info_img/2009-05/30/url] Descargue mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz. Nota: Debe ser la versión máxima de MySQL. ¡La versión estándar no admite la implementación de clústeres! Los siguientes pasos deben realizarse una vez en el Servidor1 y el Servidor2.
# mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/
# cd /usr/local/
# agregar grupo mysql
# usuarioadd -g mysql mysql
# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# rm -f mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql
#cdmysql
# scripts/mysql_install_db --usuario=mysql
# chown -R raíz.
# chown -R datos mysql
#chgrp -R mysql.
# cp archivos de soporte/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld ¡No inicie MySQL en este momento!
Instalar y configurar el servidor del nodo de administración (Server3)
====================================== Como servidor de nodo de administración, Server3 requiere dos archivos: ndb_mgm y ndb_mgmd: descargue mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz desde [url]/u/info_img/2009-05/30/url]
# mkdir /usr/src/mysql-mgm
# cd /usr/src/mysql-mgm
# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# cd mysql-max-4.1.9-pc-linux-gnu-i686
#mv bin/ndb_mgm.
#mv bin/ndb_mgmd.
# chmod +xndb_mg*
# mv ndb_mg* /usr/bin/
#cd
# rm -rf /usr/src/mysql-mgm Ahora comience a crear el archivo de configuración para este servidor de nodo de administración:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini Agregue el siguiente contenido a config.ini:
[NDBD PREDETERMINADO]
Número de réplicas = 2
[MYSQLD PREDETERMINADO]
[NDB_MGMD POR DEFECTO]
[TCP PREDETERMINADO]
#ServidordeAdministración
[NDB_MGMD]
HostName=192.168.0.3 #La dirección IP del servidor del nodo de administración Server3
# Motores de almacenamiento
[NDBD]
HostName=192.168.0.1 #La dirección IP del servidor 1 del clúster MySQL
DataDir= /var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2 #La dirección IP del clúster MySQL Server2
DataDir=/var/lib/mysql-cluster
# Los siguientes dos [MYSQLD] pueden completar los nombres de host de Server1 y Server2.
# Sin embargo, para reemplazar el servidor en el clúster más rápido, se recomienda dejarlo en blanco; de lo contrario, esta configuración debe cambiarse después de reemplazar el servidor.
[MYSQLD]
[MYSQLD] Después de guardar y salir, inicie el servidor del nodo de administración Server3:
# Después de iniciar el nodo de administración con ndb_mgmd, debe tener en cuenta que este es solo el servicio del nodo de administración, no el terminal de administración. Por lo tanto, no verá ninguna información de salida sobre el inicio. 4. Configure el servidor del clúster e inicie MySQL.
============================= Los siguientes cambios deben realizarse tanto en el Servidor1 como en el Servidor2:
# vi /etc/mi.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3 Dirección IP del #Server3
[mysql_cluster]
ndb-connectstring=192.168.0.3 #Después de guardar la dirección IP del Servidor3 y salir, cree un directorio de datos e inicie MySQL:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# /usr/local/mysql/bin/ndbd --inicial
# /etc/rc.d/init.d/mysqld start Puede agregar /usr/local/mysql/bin/ndbd a /etc/rc.local para iniciar. Nota: ¡Solo necesita usar el parámetro --initial cuando inicia ndbd por primera vez o después de realizar cambios en el archivo config.ini de Server3! 5. Verifique el estado de funcionamiento
================ Regrese al servidor del nodo de administración Server3 e inicie el terminal de administración:
# /usr/bin/ndb_mgm Escriba el comando show para ver el estado de trabajo actual: (El siguiente es un ejemplo de salida de estado)
[raíz@mysql3 raíz]# /usr/bin/ndb_mgm
-- Clúster NDB -- Cliente de gestión --
ndb_mgm> mostrar
Conectado al servidor de administración en: localhost:1186
Configuración del clúster
--------------------------
[ndbd(NDB)] 2 nodos
id=2 @192.168.0.1 (Versión: 4.1.9, Grupo de nodos: 0, Maestro)
id=3 @192.168.0.2 (Versión: 4.1.9, Grupo de nodos: 0)
[ndb_mgmd(MGM)] 1 nodo(s)
identificación=1 @192.168.0.3 (Versión: 4.1.9)
[mysqld(API)] 2 nodos
identificación=4 (Versión: 4.1.9)
identificación=5 (Versión: 4.1.9)
ndb_mgm>
Si no hay problemas anteriores, comience a probar MySQL ahora: Tenga en cuenta que este documento no establece la contraseña de raíz para MySQL. Se recomienda que usted mismo configure la contraseña de raíz de MySQL para el Servidor1 y el Servidor2. En el servidor1:
# /usr/local/mysql/bin/mysql -u raíz -p
> prueba de uso;
> CREAR TABLA ctest (i INT) MOTOR=NDBCLUSTER;
> INSERTAR EN ctest () VALORES (1);
> SELECT * FROM ctest; Debería poder ver 1 fila de información devuelta (valor de retorno 1). Si lo anterior es normal, cambie al Servidor2 y repita la prueba anterior para observar el efecto. Si tiene éxito, ejecute INSERT en el Servidor2 y luego vuelva al Servidor1 para observar si funciona normalmente. Si no hay problemas, ¡felicidades por el éxito! 6. Pruebas destructivas
============== Desenchufe el cable de red del Servidor1 o Servidor2 y observe si el otro servidor del clúster está funcionando normalmente (puede usar la consulta SELECT para probar). Una vez completada la prueba, vuelva a insertar el cable de red. Si no tienes acceso al servidor físico, es decir, no puedes desconectar el cable de red, también puedes probar así: En el Servidor1 o Servidor2:
# ps aux | grep ndbd verá toda la información del proceso ndbd:
raíz 5578 0,0 0,3 6220 1964 S 03:14 0:00 ndbd
raíz 5579 0,0 20,4 492072 102828 R 03:14 0:04 ndbd?
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd y luego elimine un proceso ndbd para destruir el servidor del clúster MySQL:
# kill -9 5578 Después de 5579, utilice la consulta SELECT en otro servidor de clúster para realizar la prueba. Y si ejecuta el comando show en la terminal de administración del servidor del nodo de administración, verá el estado del servidor dañado. Una vez completada la prueba, solo necesita reiniciar el proceso ndbd del servidor dañado:
#ndbd¡Atención! Como se mencionó anteriormente, no es necesario agregar el parámetro --initial en este momento. ¡En este punto, la configuración del clúster MySQL está completa!