24 de enero de 2010

Bases de datos MySQL distribuidas en memoria USB


Supongamos que tenemos un servidor enanísimo (micra) y que además le hacemos currar de lo lindo teniendo que atender consultas PostgreSQL y MySQL de forma contínua además de muchas otras cosas.
Esto hace que tenga que acceder al disco constantemente ...

Se me ocurrió que se podría alojar físicamente la base de datos más consultada en una memoria usb, de este modo tal vez perdería algo de velocidad de busqueda pero optimizaría recusos del sistema al buscar y escribir datos en dispositivos diferentes.

Receta:
  1. Formateo USB con sistema de ficheros ext3
    # mkfs.ext3 /dev/sda1*

  2. Montamos en USB:
    # mount /dev/sda1 /mnt/USB_512MB

  3. Copio directorio y sus archivos con sus cracterísticas y permisos al USB
    # cp -rpf /var/lib/mysql/basededatos /mnt/USB_512MB/

  4. Borrar (o mejor mover hasta ver que todo funciona) el antiguo directorio de la base de datos en /var/lib/mysql
    # mv /var/lib/mysql/basededatos /backup/basededatos

  5. Hago un enlace simbólico del directorio de antiguo de la basesdedatos al nuevo de USB.
    # ln -s /mnt/USB_512MB/basededatos /var/lib/mysql/basededatos

  6. Cambiar el propietario del enlace simbólico a mysql:mysql
    # chown -h mysql:mysql /var/lib/mysql/basededatos

  7. Reiniciamos MySQL
    # /etc/init.d/mysql restart

  8. Realizamos una consulta SQL de prueba a basededatos ... y ... vemos como parpadea la lucecita del USB.

  9. Hay que tener cuidado que el USB este montado en punto de montaje correcto cuando se conecte o se reinicie el sistema, lo mejor es configurar fstab.

Mediante el uso de enlaces simbólicos también se puede tener bases de datos transportables en un pendrive USB pudiendo usarlas en varias máquinas.

Y de igual modo se puede distribuir físicamente bases de datos en varios discos duros del sistema optimizando el rendimiento.

Ref.:
Cambiar ruta de datos de MySQL

-------------------------------------------------------
... y para PostgreSQL,
¿Donde almacena los datos PostgreSQL?, pues en
/var/lib/postgresql/8.3/main/
Pero aqui esta toda la información junta de todas las bases de datos psql!!!
Cambiar la ubicación de mis bases de datos postgres 8.1

???
en construcción...

1 comentario: