Como activar binlog de mysql/mariadb (log_bin)

Binlog: sistema de mysql para guardar updates, deletes, creates, etc y poder reproducir las  queries desde el backup hasta el último momento…. o incluso para una única db, o para un tramo de tiempo concreto, etc

vi /etc/mysql/my.cnf

descomentar el parámetro:

log_bin = /var/log/mysql/mysql-bin

Otros valores a tener en cuenta:

max_binlog_size = 100M
#binlog_do_db = include_database_name
binlog_ignore_db = phpmyadmin

En los logs veremos que se crea el fichero bin y los demás secuencialmente:

ls -latr /var/log/mysql/mysql-bin.*
-rw-rw—- 1 mysql adm 10486 Jul 7 06:25 /var/log/mysql/mysql-bin.000001
-rw-rw—- 1 mysql adm 64 Jul 7 06:25 /var/log/mysql/mysql-bin.index
-rw-rw—- 1 mysql adm 2505782 Jul 7 08:30 /var/log/mysql/mysql-bin.000002

Mysqlbinlog: Comando para extraer los datos.

Ejemplo de salida filtrada para una sola bbdd y para un tramo de tiempo concreto, concatenando múltiples fichero mysql-bin.*

mysqlbinlog mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 –database=db_name –start-datetime=”2016-07-07 00:12:00″ –stop-datetime=”2016-07-07 10:35:00″

La misma salida, si la vemos ok, la cargamos por mysql:

mysqlbinlog mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 –database=db_name –start-datetime=”2016-07-07 00:12:00″ –stop-datetime=”2016-07-07 10:35:00″ | mysql -u root -p

NOTA: POSIBLEMENTE SE TENGA QUE PARAR APACHE PARA ASEGURAR QUE NADIE CAMBIA NADA, SINO PUEDE LLEGAR A HABER DUPLICATE ENTRY