Cómo instalar un servidor Percona como sustituto de MySQL

 20/Jul/2016 -   Sistemas

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 el proceso que hay que seguir para instalar Percona desde cero o bien como sustitución a nuestra 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 herramienta que es compatible con versiones anteriores de InnoDB, pero ofreciendo 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, reduciendo la aparición de tiempos de inactividad.
  • Métrica. Dispone de una serie de métricas de rendimiento adicionales que le permitirá descubrir que 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 lo pone a disposición de todos los usuarios.
  • Compatibilidad. Totalmente compatible con MySQL, por lo que puede ser utilizada con seguridad en cualquier servidor como sustituto de una versión de MySQL, garantizando el buen funcionamiento de las aplicaciones.

Prerrequisitos

  • Debian, Ubuntu, Red Hat Enterprise o CentOS cloud server. Por ahora no está disponible para otras versiones
  • Tener instalada una versión MySQL / MariaDB. De todas formas, esto no es totalmente necesario, ya que se puede realizar una instalación desde cero.
  • Tener acceso como root al servidor donde instalaremos Percona.
  • 1 GB como mínimo de memoria para evitar sufrir errores durante el proceso de instalación.
  • Si vamos a instalar Percona como sustituto de MySQL, es recomendable realizar una copia de seguridad de la información para que en caso de dar problemas, poder restaurarla.
  • También 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 (sólo 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, sólo 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 deberemos hacer será conectarse 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, lo que tendremos que hacer, será actualizar MySQL hasta una versión que sí podamos reemplazar.

Paso 2 – Eliminando MySQL (sólo si vamos a cambiar MySQL por Percona)

Antes de realizar la instalación, tendremos que eliminar MySQL que tengamos instalada en nuestra máquina, ya que no es posible ejecutar ambos a la vez. Antes de proceder a la eliminación, lo primero sería sacar una copia de los datos y de los archivos de configuración.

Sacada la copia, el primer paso sería detener el servidor de base de datos para evitar la corrupción de datos. Para ello, debemos ejecutar lo siguiente.

service mysql stop

Para eliminar la versión de MySQL en servidores Debian y Ubuntu, deberíamos ejecutar 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 ser desinstalada, tendríamos que ejecutar

yum remove MariaDB-server MariaDB-client MariaDB-shared

Paso 3 – Instalando Percona Server

Percona Server no está disponible en los repositorios habituales que estamos acostumbrados a utilizar, ya que ellos gestionan sus propios repositorios para garantizar un mejor sistema de actualizaciones. Debido a esto, 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 siguientes.

Debian o Ubuntu (APT)

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

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

Tras el comando anterior, ejecutaríamos la siguiente instrucción.

lsb_release -c

Una vez que estemos seguros de que la distribución está ejecutándose, podremos añadir los nuevos repositorios incluyendo las siguientes líneas en el fichero /etc/apt/sources.list, editándolo con nuestro editor favorito.

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

En las líneas anteriores, deberemos sustituir DIST por la distribución que estemos utilizando. En caso de Debian tenemos las opciones de squeeze o wheezy, mientras que para Ubuntu tenemos lucid, precise, saucy o trusty.

Una vez que hayas guardado los cambios, deberemos asegurarnos 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 y 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, pero teniendo en cuenta de si se trata de una instalación limpia o bien como sustituto de una versión de MySQL.

En el caso de tratarse de una instalación limpia, se recomienda 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 será instalada en nuestro servidor.

CentOS (YUM)

Lo primero que deberemos hacer 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, dependiendo de si se trata de una nueva instalación o bien de una sustitución.

Si lo vamos a instalar desde cero, se recomienda 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 para asignar una contraseña y cambiar algunas otras opciones de la configuración para mejorar la seguridad.

/usr/bin/mysql_secure_installation

En el caso de realizar una sustitución de una versión MySQL, debemos tener presente la versión que teníamos instalada para elegir la adecuada. Por ejemplo, si tuviéramos la versión MySQL 5.5, tendríamos que instalar Percona Server 5.5.

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

Cuando se lancen esos comandos, se pedirá que se acepte los paquetes. Pasados un corto periodo de tiempo, la instalación debería haberse llevado a cabo sin problemas. Si ha sido así, lo siguiente será iniciar el servidor.

service mysql start

Paso 4 – Configuración de Percona

Si ha realizado una sustitución de una instalación MySQL y ha sacado copia de los archivos de configuración, podrá copiar esos archivos y ahorrarse de esta forma esta parte del artículo. Si por el contrario, 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 que hayamos realizado los cambios en la configuración, será necesario activar de nuevo el servicio.

service mysql restart

Paso 5 – Revisar la instalación de Percona

Una vez que tenemos Percona Server instalado, podemos asegurarnos que todo ha ido según lo previsto mediante la ejecución de algunas comprobaciones finales.

Lo primero 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 hemos podido hacer estas comprobaciones sin problemas, ya podremos decir que contamos con una máquina que tiene instalado Percona Server como gestor de bases de datos.

Esperamos que os gustase este artículo sobre el uso de Percona como alternativa a mySQL/MariaDB. Desde Stackscale podemos ayudarte también con la administración de sistemas de bases de datos si lo necesitas.