Detalles de MySQL Master-Slave

Master Slave databaseMySQL master-slave tiene las siguientes características:

  • Replicación asíncrona: en cuanto se ejecuta una query de modificación en el master, ésta se lanza al momento para ejecutárse en los slaves.
  • La replicación puede basarse en:
    • Statement Based Replication (SBR): ejecuta en los slaves, la sentencia SQL ejecutada en el master.
    • Row Based Replication (RBR): replica en los slaves, únicamente las filas que han cambiado en el master (replica datos en lugar de sentencias que han de ejecutarse).
    • Mixed Based Replication (MBR): una mezcla de las dos anteriores.
    • Se puede verificar el tipo de replicación utilizado, ejecutando en cualquier server:

mysql> show global variables like ‘binlog_format’;
+—————+———–+
| Variable_name | Value |
+—————+———–+
| binlog_format | STATEMENT |
+—————+———–+
1 row in set (0.00 sec)

Continuar leyendo «Detalles de MySQL Master-Slave»

SSH con certificados

Apache HTTPHace un tiempo, escribí como acceder de un servidor a otro mediante certificados por SSH, para automatizar tareas que requieran de una conexión SSH entre servidores, evitando así tener que introducir el password. Aquí el post original.

Sin embargo, en ocasiones, el SSH no está configurado para aceptar conexiones con password, y no podemos por lo tanto, usar el comando «ssh-copy-id». Para estas ocasiones, podemos seguir el procedimiento descrito a continuación:

Continuar leyendo «SSH con certificados»

Pasos para migrar un proyecto web

LAMP MigrationMigrar un proyecto web (php/mysql) de un servidor a otro(s) puede parecer un proceso sencillo, pero rara es la vez en la que no salen imprevistos. Por esta razón, prefiero tener bien documentado todo el proceso de migración, antes de empezar, para evitar sobresaltos e ir sobre seguro.

La idea del siguiente proceso, es clonar la base de datos del servidor a migrar al nuevo servidor, y una vez clonada, modificar el código del servidor a migrar para empezar a usar la base de datos del nuevo server en lugar de la que usaba hasta ahora. De esta manera, no se perderán datos cuando se inicie la modificación de las DNS para apuntar al nuevo servidor.

REQUISITOS

  • En el nuevo servidor, abrir (por lo menos) los puertos 22 y 3306 para la IP del servidor a migrar.
  • Apache y MySQL instalados y configurados en el nuevo server, incluído el vhost del proyecto.
  • Resto de dependencias del proyecto instaladas en el nuevo server.

Continuar leyendo «Pasos para migrar un proyecto web»

Yum rollback, undo o deshacer

Yum rollbackEn muchas ocasiones, hemos de actualizar o instalar nuevos paquetes en servidores críticos, que difícilmente podemos asegurar que no afectarán a nuestros servicios. Es posible que la nueva versión de PHP tenga alguna incompatibilidad con el código que usa la versión añeja que tiene el servidor, o que una nueva versión de openssh venga con un 0day.

¿Cómo podemos deshacer lo que acabamos de estropear con yum?

Afortunadamente, las últimas versiones de yum, vienen con una nueva funcionalidad que permite ver el histórico de ejecuciones, y lo más importante, volver atrás. Aquí lo explican en la documentación oficial.

Continuar leyendo «Yum rollback, undo o deshacer»