kennysamuerto
09/08/2010, 01:50
Bueno, soy un fanatico de la seguridad. Me llego a obsesionar con ella, lo cual, reconozco y acepto.
Asi que, tengo como 4 o 5 servicios diferentes de Backups rodando sobre los servidores mas importantes, y en general, todos los servidores que pasan por mi mano, utilizan como minimo 2, dependiendo del uso que el cliente le vaya a dar.
Asi que, no podia faltar un sistema de seguridad solo para MySQL. Hoy en dia, un altisimo porcentaje de las aplicaciones web, almacenan sus datos, y por lo tanto, lo mas importante, en las bases de datos, y un altisimo porcentaje, en MySQL.
Esta tarea no lleva mas de 15 minutos, y sabes que siempre tendras tus copias de BBDD seguras.
Recomiendo que ademas de estas, se tengan otros sistemas de backup. Esto solo es complementario, o una forma mas de seguridad.
REQUISITOS
VAMOS A INSTALAR
En mi caso utilizo CentOS, por lo que voy a instalar solo las librerias necesarias de Perl.
Ahora deberemos instalar ZRM, descargando las ultimas versiones de:
http://www.zmanda.com/download-zrm.php
Y Instalamos:
CONFIGURACION
Necesitamos crear un usuario para el Backup:
Y ahora vamos a pasar a configurar nuestras copias. En este caso, crearemos un backup diario, por lo que crearemos un perfil llamado daily, donde incluiremos el archivo de configuracion por defecto.
Se recomienda en la documentacion, que para que nadie tenga acceso, el archivo mysql-zrm.conf tenga los permisos necesarios, asi pues:
Ahora procedemos a configurar mysql-zrm.conf. El archivo explica muy bien cada parametro para que se usa, esta configuracion es muy basica:
Bien, con esto, hemos terminado. Ahora podemos lanzar una prueba:
Y si no nos devuelve ningun error, esque la prueba es satisfactoria. Podemos comprobarlo, de diversas formas, por Hash, por el estado de los ultimos backups, por rendimiento... yo solo voy a dejar ejemplo de por el estado de los ultimos backups. Todo lo podeis encontrar en la documentacion para el resto.
Para programar el backup:
Y para restaurar:
Un Saludo!
Asi que, tengo como 4 o 5 servicios diferentes de Backups rodando sobre los servidores mas importantes, y en general, todos los servidores que pasan por mi mano, utilizan como minimo 2, dependiendo del uso que el cliente le vaya a dar.
Asi que, no podia faltar un sistema de seguridad solo para MySQL. Hoy en dia, un altisimo porcentaje de las aplicaciones web, almacenan sus datos, y por lo tanto, lo mas importante, en las bases de datos, y un altisimo porcentaje, en MySQL.
Esta tarea no lleva mas de 15 minutos, y sabes que siempre tendras tus copias de BBDD seguras.
Recomiendo que ademas de estas, se tengan otros sistemas de backup. Esto solo es complementario, o una forma mas de seguridad.
REQUISITOS
- MySQL superior a 4.1
- PERL
VAMOS A INSTALAR
En mi caso utilizo CentOS, por lo que voy a instalar solo las librerias necesarias de Perl.
Código:
yum install perl-libxml-perl perl-dbi perl-xml-parser
http://www.zmanda.com/download-zrm.php
Y Instalamos:
Código:
wget http://www.zmanda.com/downloads/community/ZRM-MySQL/2.2/RPM/MySQL-zrm-2.2-1.noarch.rpm rpm -ivh MySQL-zrm-2.2-1.noarch.rpm wget http://www.zmanda.com/downloads/community/ZRM-MySQL/2.2/RPM/MySQL-zrm-client-2.2-1.noarch.rpm rpm -ivh MySQL-zrm-client-2.1-1.noarch.rpm
Necesitamos crear un usuario para el Backup:
Código:
mysql -u admin -p mysql grant ALL PRIVILEGES on *.* to 'backup'@'localhost' identified by 'mipassword';
Código:
cd /etc/mysql-zrm mkdir daily cp -pr mysql-zrm.conf daily cd daily
Código:
chmod 700 mysql-zrm.conf
Código:
#backup-level=0 # Nivel de Backup. En este caso, total. #backup-mode=logical # Mediante que hacemos el backup. En este caso, mysqldump #destination=/var/copias/mysql # Almacen para los backups #retention-policy=5D # Tiempo para almacenar los Backups. #compress=1 # Comprimir Backups #all-databases=1 # Incluir (o no) todas las bases de datos. Este caso, si, pero tambien se puede especificar las BBDD. #user="backup" # Usuario creado #password="mipassword" # Contraseña creada #mailto="reporte@backups.com" # Correo para recibir reporte
Código:
mysql-zrm-scheduler --now --backup-set daily
Código:
#mysql-zrm-reporter --where backup-set=daily --show backup-performance-info REPORT TYPE : backup-performance-info backup_set backup_date backup_level backup_size backup_size_compressed backup_time backup_type compress_encrypt_time ---------------------------------------------------------------------------------------------------------------------------------------------------------------- daily lun 02 ago 2010 14:34:23 CET 0 123.43 MB 21.22 MB 00:00:14 regular 00:01:04
Para programar el backup:
Código:
mysql-zrm-scheduler --add --interval daily --start 03:00 --backup-level 0 --backup-set daily
Código:
mysql-zrm -restore --backup-set daily --source-directory /directorio de backup a restaurar