En este tutorial, le mostraré cómo instalar y configurar Percona XtraDB Cluster en un servidor CentOS 7. Usaremos Percona XtraDB Cluster 5.6 que es totalmente compatible con MySQL y Percona Server.
Percona es una empresa de expertos en bases de datos MySQL y MongoDB fundada en 2006. Percona crea y mantiene software de código abierto para MySQL y MongoDB:Percona Server (servidor de base de datos para MySQL con mejoras de rendimiento de alta disponibilidad), Percona XtraDB Cluster (solución de alta disponibilidad para MySQL clúster), Percona Server para MongoDB y otras herramientas para administrar las bases de datos, como el kit de herramientas de Percona, las herramientas de monitoreo de Percona y Percona XtraBackup.
Requisito previo
- 3 nodos de servidor CentOS 7.
- Privilegios de raíz.
- Conocimientos básicos de CentOS 7.
Paso 1:configurar el archivo de hosts
Lo primero que debe hacer es configurar los nombres de host de todos los servidores. Tengo 3 servidores con CentOS 7 como se indica a continuación:
Nodo IP del servidor Nombre de host
Nodo1 - 192.168.43.36 percona1
Nodo2 - 192.168.43.166 percona2
Nodo3 - 192.168.43.148 > percona3Conéctese a todos los servidores usando su terminal:
ssh [correo electrónico protegido]Si ha iniciado sesión en todos los servidores, edite el archivo '/etc/hosts' en cada servidor con vim:
vim /etc/hostsPegue la configuración de los hosts a continuación:
192.168.43.36 percona1
192.168.43.166 percona2
192.168.43.148 percona3Reemplace las direcciones IP con las que coincidan con la configuración de su red local. Guardar y salir.
Paso 2:configurar el cortafuegos
Firewalld es la nueva interfaz de firewall predeterminada en CentOS 7. El comando firewall-cmd se usa para configurar el firewall. Podemos definir y configurar grupos o zonas específicas, o podemos configurar un firewall para servicios como ssh, bases de datos MySQL, servidor web nginx/apache, etc.
En este paso, usaremos firewalld para la configuración del firewall. Usaremos el comando 'firewall-cmd' para abrir el puerto del servidor percona y otros puertos que se necesitan para el clúster.
Inicie firewalld con este comando systemctl:
systemctl iniciar firewalldLuego ejecute el siguiente comando para abrir el puerto utilizado por el servidor MySQL/percona:
firewall-cmd --zone=public --add-service=mysql --permanentA continuación, agregue los otros puertos para el clúster con el siguiente comando:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall -cmd --zone=público --add-port=4567/udp --permanenteVuelva a cargar las reglas del cortafuegos:
firewall-cmd --recargarPara ver la lista de todas las reglas de firewall, use la opción '--list-all':
firewall-cm --listar-todos
Paso 3:instale el repositorio de Epel y Socat
Para que Percona XtraDB Cluster se ejecute en el servidor, necesitamos instalar socat, y está disponible en el repositorio de epel. Entonces, primero debemos instalar el repositorio Epel y luego instalar socat. Además, tenemos que eliminar mariadb-libs del servidor porque entran en conflicto con Percona XtraDB Cluster.
Instale epel-repository y socat:
yum -y instalar epel-release
yum -y instalar socatElimine mariadb-libs para evitar el conflicto de paquetes entre mariadb-libs y Percona XtraDB Cluster:
yum -y eliminar mariadb-libsEl repositorio de Epel y socat están instalados.
Paso 4:instalar el clúster Percona XtraDB
En este paso, instalaremos el clúster Percona xtradb con todas las dependencias del paquete. Necesitamos agregar el repositorio de Percona para la instalación y luego iniciamos el servidor de Percona y configuramos el usuario root y la contraseña para el servidor de la base de datos.
Instale el repositorio de Percona con yum:
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpmAhora instale el clúster Percona XtraDB y los demás paquetes necesarios para este tutorial:
yum install Percona-XtraDB-Cluster-server-56 Percona-XtraDB-Cluster-client-56 Percona-XtraDB-Cluster-shared-56 percona-toolkit percona-xtrabackup Percona-XtraDB-Cluster-galera-3 rsync ncPercona XtraDB Cluster está instalado, inicie el servidor Percona con el comando zhis systemctl:
systemctl iniciar mysqlA continuación, configure la contraseña raíz para todos los servidores percona/mysql:
instalación_segura_mysqlEstablezca la contraseña de percona/mysql:
Ingrese la contraseña actual para root (ingresar para ninguno):PRESIONE ENTER
¿Establecer contraseña de root? [S/n] S
Nueva contraseña:INGRESE SU CONTRASEÑA
Vuelva a ingresar la nueva contraseña:REPITA LA CONTRASEÑA
¿Eliminar usuarios anónimos? [S/n] S
¿Deshabilitar el inicio de sesión raíz de forma remota? [S/n] S
¿Recargar tablas de privilegios ahora? [S/n] S
Nota: Ejecute los pasos 1 a 4 en los 3 servidores CentOS.
Paso 5:configurar el clúster Percona XtraDB
En el paso 4, ya instalamos Percona XtraDB Cluster y configuramos la contraseña raíz para todos los nodos del servidor Percona/Mysql. En este paso, crearemos un nuevo usuario para la autenticación SST y editaremos la configuración my.cnf de MySQL en cada servidor.
SST (Transferencia de instantáneas de estado) es una copia completa de datos de un servidor como donante a otro servidor como ensamblador. Para la autenticación SST, necesitamos crear un nuevo usuario llamado 'sstuser' con contraseña '[email protected]'. Y para el método SST, usaremos xtrabackup-v2 en lugar de rsync. ¡Utilice una contraseña diferente y segura para su clúster!
Inicie sesión en el shell percona/mysql en cada servidor:
mysql -u root -p
ESCRIBA SU CONTRASEÑAY cree el nuevo 'usuario' con la contraseña '[email protected]':
crear usuario [email protected]'%' identificado por '[email protected]';
otorgar todos los *.* a [email protected]'%';
privilegios de vaciado;
Luego detenga el servicio MySQL en cada servidor antes de editar el archivo de configuración:
systemctl detener mysqlA continuación, edite el archivo de configuración mysql my.cnf en cada servidor con el editor vim.
En Percona1 servidor:
vim /etc/my.cnfCambie toda la línea 'wsrep' con la configuración a continuación:
wsrep_cluster_address =gcomm://
wsrep_provider =/usr/lib64/galera3/libgalera_smm.so
wsrep_slave_threads =8
wsrep_cluster_name =cluster percona xtradbwsreps =8
=percona1
wsrep_node_address =percona1
wsrep_sst_method =xtrabackup-v2
wsrep_sst_auth =sstuser:[email protected]Guardar y salir.
En Percona2 servidor:
vim /etc/my.cnfCambie toda la línea 'wsrep' con la configuración a continuación:
<wsrep_cluster_address =gcomm:// Percona1, Percona3
wsrep_provider =/usr/lib64/galera3 /> wsrep_node_name =percona2
wsrep_node_address =percona2
wsrep_sst_method =xtrabackup-v2
wsrep_sst_auth =sstuser:[correos electrónicos protegidos]Guardar y salir.
En Percona3 servidor:
vim /etc/my.cnfCambie toda la línea 'wsrep' con la configuración a continuación:
<wsrep_cluster_address =gcomm:// Percona1, Percona2
wsrep_provider =/usr/lib64/galera3 /> wsrep_node_name =percona3
wsrep_node_address =percona3
wsrep_sst_method =xtrabackup-v2
wsrep_sst_auth =sstuser:[correos electrónicos protegidos]Guardar y salir.
Captura de pantalla del percona2 servidor.
Paso 6:inicie el servidor de clúster Percona XtraDB
Hemos configurado el clúster Percona XtraDB en todos los servidores y ahora podemos iniciar el servidor.
En el servidor Percona1, arranque o puesta en marcha del clúster:
systemctl start [correo electrónico protegido]A continuación, inicie el servidor Percona/MySQL en el servidor percona2 y percona3 con el siguiente comando:
systemctl iniciar mysqlasegúrese de que no haya mensajes de error. Si hay un error después de escribir para iniciar MySQL, verifique el archivo de registro '/var/log/messages'.
Paso 7 - Prueba
Debemos iniciar sesión en el shell percona/mysql en cada servidor para probar el clúster Percona XtraDB.
Inicie sesión en el shell de Percona/MySQL en todos los servidores/nodos:
mysql -u root -p
ESCRIBA SU CONTRASEÑAProbando la alta disponibilidad con el comando mysql:
MOSTRAR ESTADO COMO 'wsrep_local_state_comment';Pruebe ese comando en cada nodo, si ve "Synced" como resultado, ese nodo está listo para manejar el tráfico.
Probando los nodos disponibles del clúster:
mostrar estado global como 'wsrep_cluster_size';Obtendrá el número actual de nodos en el clúster de Percona.
Para obtener los resultados completos, puede usar el siguiente comando:
mostrar estado global como 'wsrep%';