Cómo instalar un servidor Percona como sustituto de MySQL

Percona, servidor para MySQL

Percona Server es un proyecto que busca proporcionar un mejor rendimiento, consistencia y escalabilidad de la que ofrece MySQL en la actualidad. Se estima que Percona puede llegar a ser hasta un 40 % más rápido que MySQL. Lo que intentaremos a lo largo de este artículo es explicar el proceso que hay que seguir para instalar Percona desde cero o bien como sustitución a la versión de MySQL que estemos utilizando. En Stackscale recomendamos el uso de Percona y lo implantamos en nuestras soluciones de infraestructura cloud.

Ventajas que ofrece Percona Server

Entre las ventajas más importantes que ofrece Percona podemos destacar:

  • XtraDB. Se trata de una herramienta compatible con versiones anteriores de InnoDB, pero que ofrece mejoras en el rendimiento y la eficiencia. Las tablas InnoDB se cargarán de forma transparente a través de XtraDB sin tener que realizar ningún proceso de migración.
  • Estabilidad y consistencia. Percona Server garantiza un mejor rendimiento y reduce la aparición de tiempos de inactividad.
  • Métrica. Dispone de una serie de métricas de rendimiento adicionales que permite descubrir qué usuarios, tablas, índices o consultas son las que más recursos están consumiendo.
  • Autenticación PAM. Se trata de una función reservada para MySQL Enterprise Edition, pero que Persona Server pone a disposición de todos los usuarios.
  • Compatibilidad. Totalmente compatible con MySQL, por lo que se puede usar con seguridad en cualquier servidor como sustituto de una versión de MySQL y garantiza el buen funcionamiento de las aplicaciones.

Prerrequisitos

  • Usar Debian, Ubuntu, Red Hat Enterprise o CentOS cloud server. Por ahora no está disponible para otras versiones
  • Tener instalada una versión MySQL / MariaDB. Aunque, en realidad, esto no es totalmente necesario, ya que podemos realizar una instalación desde cero.
  • Tener acceso como root al servidor donde instalaremos Percona.
  • Tener al menos 1 GB de memoria para evitar sufrir errores durante el proceso de instalación.
  • Es recomendable realizar una copia de seguridad de la información para poder restaurarla, si da problemas, si vamos a instalar Percona como sustituto de MySQL.
  • Es recomendable hacer una copia de seguridad de la configuración actual de nuestro servidor MySQL, si lo vamos a reemplazar por Percona.

Paso 1 – Revisar versiones (solo si vamos a cambiar MySQL por Percona)

Lo primero que debemos hacer es revisar la versión MySQL que estamos utilizando. Ya que si vamos a realizar un reemplazo, solo lo podremos hacer por su versión equivalente de Percona Server. Es decir, si estamos utilizando MySQL 5.6, deberíamos sustituirla por Percona Server 5.6. Utilizar una versión diferente puede provocar que los datos se corrompan. Para ver la versión que tenemos instalada, lo primero que debemos hacer es conectarnos a MySQL con la contraseña «root» que pusimos al instalarla.

mysql -u root -p

Una vez conectados, debemos buscar la versión que tenemos instalada mediante la ejecución de la siguiente instrucción:

SHOW VARIABLES LIKE "version";

Si la versión MySQL que estamos utilizando es muy antigua y no existe su equivalente en Percona Server, tendremos que actualizar MySQL hasta una versión que sí podamos reemplazar.

Paso 2 – Eliminar MySQL (solo si vamos a cambiar MySQL por Percona)

Para poder realizar la instalación tenemos que eliminar la versión de MySQL que tengamos instalada en nuestra máquina, porque no se puden ejecutar ambos a la vez. Antes de eliminarla hay que sacar una copia de los datos y de los archivos de configuración. Una vez hayamos sacado la copia, detenemos el servidor de base de datos para evitar la corrupción de datos. Para hacerlo, ejecutamos lo siguiente:

service mysql stop

Para eliminar la versión de MySQL en servidores Debian y Ubuntu, ejecutaremos lo siguiente:

apt-get remove mysql-server mysql-client mysql-common
apt-get autoremove

En el caso de CentOS, se utiliza por defecto MariaDB y para desinstalarla, tenemos que ejecutar esto:

yum remove MariaDB-server MariaDB-client MariaDB-shared

Paso 3 – Instalar Percona Server

Percona Server no está disponible en los repositorios habituales, ya que ellos gestionan sus propios repositorios para garantizar un mejor sistema de actualizaciones. Así que tendremos que agregar de forma manual los repositorios de Percona a nuestro gestor de paquetes, ya sea APT o YUM. Para ello debemos seguir los pasos que os contamos a continuación.

Debian o Ubuntu (APT)

Los paquetes liberados para Debian y Ubuntu por Percona están firmados, así que deberemos informar a APT sobre esta clave de firma.

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

Tras el comando anterior, hay que ejecutar la siguiente instrucción:

lsb_release -c

Una vez que estemos seguros de que la distribución se está ejecutando, podremos añadir los nuevos repositorios incluyendo las siguientes líneas en el fichero /etc/apt/sources.list. Para ello usaremos nuestro editor habitual. En las dos líneas siguientes, tenemos que sustituir DIST por al distribución que estemos usando. En caso de Debian tenemos las opciones de squeeze o wheezy, mientras que para Ubuntu tenemos lucid, precise, saucy o trusty.

deb http://repo.percona.com/apt DIST main
deb-src http://repo.percona.com/apt DIST main

Una vez guardados los cambios, tenemos que asegurarnos de que los paquetes de Percona siempre tendrán prioridad sobre el resto. Para ello crearemos un nuevo archivo de preferencias para el gestor APT.

touch /etc/apt/preferences.d/00percona.pref

Editamos ese archivo que acabamos de crear y añadimos las siguientes líneas. Luego guardamos los cambios.

Package: *
Pin: release o=Percona Development Team
Pin-Priority: 1001

Una vez realizados todos estos pasos, ya podremos realizar la instalación de Percona Server. Hay que tener en cuenta si se trata de una instalación limpia o si se hace como sustituto de una versión de MySQL. En el caso de tratarse de una instalación limpia, es preferible realizar la instalación recomendada por el equipo de desarrollo de Percona.

apt-get update
apt-get install percona-server-server

Si, por el contrario, vamos a sustituir una instalación MySQL o MariaDB, debemos elegir la versión compatible con nuestra vieja instalación —tal y como hemos explicado al principio de nuestro artículo—.

apt-get update
apt-get install percona-server-server-5.6

Si no se produce ningún tipo de error durante el proceso, Percona Server se instalará en nuestro servidor.

CentOS (YUM)

Lo primero que haremos será la instalación de los paquetes del repositorio Percona.

  • Para los sistemas CentOS de 64 bits:
yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
  • Para los sistemas de 32 bits:
yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.i386.rpm

Una vez realizado este primer paso, podremos instalar la versión correcta de Percona Server. A continuación os explicamos cómo hacerlo, dependiendo de si se trata de una nueva instalación o de una sustitución.

Si lo vamos a instalar desde cero, es recomendable utilizar la versión 5.6 de Percona.

yum install Percona-Server-client-56 Percona-Server-server-56

En este caso el usuario root no tendrá ninguna contraseña, por lo que no será seguro. Para solucionar el problema es aconsejable ejecutar el script de seguridad que proporciona. Mediente ese script asignaremos una contraseña y cambiaremos algunas otras opciones de la configuración para mejorar la seguridad.

/usr/bin/mysql_secure_installation

Si realizamos una sustitución de una versión MySQL, debemos tener presente la versión que teníamos instalada para elegir la adecuada (como mencionamos al principio).

yum install Percona-Server-client-55 Percona-Server-server-55

Cuando se lancen esos comandos, se pedirá que se acepten los paquetes. Tras un corto periodo de tiempo, la instalación debería haberse completado sin incidentes. Si ha sido así, el siguiente paso será iniciar el servidor.

service mysql start

Paso 4 – Configurar Percona

Si has realizado una sustitución de una instalación MySQL y has sacado copia de los archivos de configuración, podrás copiar esos archivos y ahorrarte unos cuantos pasos. Pero si la instalación ha sido limpia, será necesario añadir un archivo de configuración. Para ello, lo primero que haremos será parar el servicio.

service mysql stop

A continuación os dejamos una configuración de ejemplo que se podría copiar en el interior del archivo de configuración. En el caso de Debian y Ubuntu, estaría localizado en /etc/mysql/my.cnf, mientras que en CentOS, la ruta sería /etc/my.cnf.

# Generated by Percona Configuration Wizard (http://tools.percona.com/) version REL5-20120208
[mysql] 

# CLIENT # 
# Configure default options for clients
port                           = 3306
[mysqld] 

# GENERAL # 
# Choose user for execution, default storage engine and location of the PID file
user                           = mysql 
default-storage-engine         = InnoDB 
pid-file                       = /var/lib/mysql/mysql.pid 

# MyISAM # 
# Setup MyISAM options with a minimal config, as InnoDB is our default engine 
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP 

# SAFETY # 
# Enforce limits and safety checks 
max-allowed-packet             = 16M 
max-connect-errors             = 1000000 
innodb                         = FORCE 

# DATA STORAGE # 
# Select location for database files 
datadir                        = /var/lib/mysql/ 

# BINARY LOGGING # 
# Enable and setup the binary log 
log-bin                        = /var/lib/mysql/mysql-bin expire-logs-days               = 14 
sync-binlog                    = 1 

# CACHES AND LIMITS # 
# Configure reasonable default limits throughout Percona Server 
tmp-table-size                 = 32M 
max-heap-table-size            = 32M 
query-cache-type               = 0 
query-cache-size               = 0 
max-connections                = 500 
thread-cache-size              = 50 
open-files-limit               = 65535 
table-definition-cache         = 1024 
table-open-cache               = 2048 

# INNODB # 
# Setup InnoDB/XtraDB engine a 300MB buffer pool and 32MB log file size 
innodb-flush-method            = O_DIRECT 
innodb-log-files-in-group      = 2 
innodb-log-file-size           = 32M 
innodb-flush-log-at-trx-commit = 1 
innodb-file-per-table          = 1 
innodb-buffer-pool-size        = 300M 

# LOGGING # 
# Setup log file locations for error log and slow log 
# Slow log may be disabled on production setups to prevent extra IO 
log-error                      = /var/lib/mysql/mysql-error.log 
log-queries-not-using-indexes  = 1 
slow-query-log                 = 1 
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

Una vez hayamos realizado los cambios en la configuración, tendremos que activar de nuevo el servicio.

service mysql restart

Paso 5 – Revisar la instalación de Percona

Una vez tengamos Percona Server instalado, podemos asegurarnos de que todo ha ido según lo previsto mediante la ejecución de algunas comprobaciones finales. La primera será probar a conectarnos a la base de datos desde el cliente MySQL, utilizando la contraseña del usuario root.

mysql -u root -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45

Server version: 5.5.38-35.2 Percona Server (GPL), Release 35.2, Revision 674
Copyright (c) 2009-2014 Percona LLC and/or its affiliates
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Lo siguiente que podemos hacer es verificar que realmente contamos con una versión de Percona Server. Para ello utilizaremos la instrucción SHOW VARIABLES.

SHOW VARIABLES LIKE "version%";
+-------------------------+--------------------------------------------------+
| Variable_name           | Value                                            |
+-------------------------+--------------------------------------------------+
| version                 | 5.5.38-35.2                                      |
| version_comment         | Percona Server (GPL), Release 35.2, Revision 674 |
| version_compile_machine | x86_64                                           |
| version_compile_os      | debian-linux-gnu                                 |
+-------------------------+--------------------------------------------------+
4 rows in set (0.00 sec)

Si logramos hacer estas comprobaciones sin problemas, ya dispondremos de una máquina que tiene instalado Percona Server como gestor de bases de datos. Esperamos que os haya gustado este artículo sobre el uso de Percona como alternativa a MySQL y MariaDB. Desde Stackscale podemos ayudarte también con la administración de sistemas de bases de datos, si lo necesitas.

Si te ha gustado, compártelo en redes sociales