Clicky

Cómo migrar en un minuto tus bases de datos Joomla! de MySQL a MariaDB

Categoría: Internet (Tutoriales y trucos)
Visitas: 5064
MariaDB vs MySQL

MariaDB ahorra mucho comsumo de memoria RAM en el servidor

Un gran número de antiguos usuarios de MySQL, incluyendo Google y Wikipedia, han emigrado a MariaDB, y en el proceso han adquirido un sistema de base de datos moderno, estable, potente y rápido .

MariaDB ofrece más y mejores motores de almacenamiento. El soporte NoSQL, proporcionado por Cassandra, permite ejecutar SQL y NoSQL en un único sistema de base de datos. MariaDB también apoya TokuDB, que puede manejar grandes volúmenes de datos para grandes organizaciones y usuarios corporativos.

Los habituales (y lentos) motores de base de datos de MySQL, MyISAM y InnoDB, se sustituyen en MariaDB por Aria y XtraDB respectivamente (que trabaja por defecto). Aria ofrece un mejor almacenamiento en caché, lo que marca una diferencia cuando se trata de operaciones de uso intensivo del disco. Las tablas temporales también utilizan Aria, lo que acelera las consultas complejas, como las que implican GROUP BY y DISTINCT. XtraDB de Percona se deshace de todos los problemas de lento rendimiento y estabilidad de InnoDB, especialmente en entornos de alta carga.

Las características adicionales sin igual en MariaDB proporcionan un mejor seguimiento a través de la introducción de una precisión de microsegundos y estadísticas de usuario extendidas. MariaDB también mejora el comando KILL para permitir que mates a todas las consultas de un usuario (MATANZA USUARIO nombre de usuario) o mates unaconsulta ID (KILL QUERY ID query_id). MariaDB también cambió a las expresiones regulares compatibles con Perl (PCRE), que ofrecen consultas más poderosas y precisas que el apoyo regex estándar en MySQL.

A continuación encontrarás algunos pasos sobre cómo migrar de una mánera casi autómatica de MySQL y comenzar a utilizar MariaDB para todas las bases de datos de tu servidor.

Los pasos que se detallan a continuación son para un servidor corriendo en CentOS Linux 6.6, una versión de MySQL 5.5.42 , un Apache 2.2.15 y una versión de PHP 5.4.39.

1. Hacer copia de seguridad de las bases de datos

Asegúrate de guardar todos los datos existentes por si acaso hay algún problema realizando un respaldo (backup) de todas tus bases de datos y la configuración de MySQL en el archivo /etc/my.cnf :

# cp -Rf /var/lib/mysql /var/lib/mysql-old
# mv /etc/my.cnf /etc/my.cnf-old

Si no has hecho esto, no continues leyendo.

2. Crear un repositorio de yum para MariaDB

En este caso vamos a utilicar un repositorio poco conocido llamado CentALT

# vi /etc/yum.repos.d/CentALT.repo

Coloca lo siguiente dentro de él dependiendo de la distribución de CentOs que tengas: (http://centos.alt.ru/repository/centos/6/):

[CentALT]
name=CentALT Packages for Enterprise Linux 6 - $basearch
baseurl=http://centos.alt.ru/repository/centos/6/$basearch/
enabled=1
gpgcheck=0

3. Bajar la GPGKey de CentALT

# rpm --import http://centos.alt.ru/repository/centos/RPM-GPG-KEY-CentALT

4. Actualizar el sistema con el comando update:

# yum clean all
# yum update

Esta es la salida de lo que nos va a instalar y reemplazar el repositorio CentALT:

=======================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================
Installing:

mariadb x86_64 10.0.11-2.el6 CentALT 11 M
replacing mysql.x86_64 5.5.42-1.el6.remi
mariadb-devel x86_64 10.0.11-2.el6 CentALT 845 k
replacing mysql-devel.x86_64 5.5.42-1.el6.remi
mariadb-libs x86_64 10.0.11-2.el6 CentALT 846 k
replacing mysql-libs.x86_64 5.5.42-1.el6.remi
mariadb-server x86_64 10.0.11-2.el6 CentALT 14 M
replacing mysql-server.x86_64 5.5.42-1.el6.remi
Installing for dependencies:

Judy x86_64 1.0.5-1.el6 epel 114 k
gperftools-libs x86_64 2.0-11.el6.3 epel 246 k
libunwind x86_64 1.1-2.el6 epel 54 k
protobuf-lite x86_64 2.3.0-9.el6 epel 57 k

Como digo en el titular, la actualización es autómatica y, una vez hecha, el nuevo motor de bases de datos de nuestro servidor será MariaDB. En el siguiente enlace puedes ver la salida de la consola con la instalación de MariaDB y sus dependencias.

5. Hacer un upgrade de todas las bases de datos:

Para que no se produzcan errores en los backups de nuestras bases de datos deberemos hacer una actualización (upgrade) para que funcionen con MAriaDB, si no podemos encontrarnos con este error:

Couldn't execute 'show events': Cannot proceed because system tables used by Event Scheduler were found damaged at server start (1577)

Importante!, hacemos pues lo siguiente:

# mysql_upgrade -u root -h localhost -p --verbose --force

Y reiniciamos MySQL:

# /etc/init.d/mysqld restart

Tras unas horas corriendo el nuevo motor MariaDB ahorra en el servidor casi 2GB de memoria RAM. ¡Espectacular!