The Information Systems and Computer Applications examination covers material that is usually taught in an introductory college-level business information systems course.

Posición de MySQL con mylvmbackup by Jordi Prats

Mediante snapshots LVM y mylvmbackup podemos realizar backups en caliente , pero en el caso que necesitemos mantener el snapshot sin realizar ninguna copia y a la vez conocer la posición del master para montar un slave de MySQL , deberemos parchear el script mylvmbackup.

En el caso que necesitemos crear un snapshot pero sin realizar ningún backup, en la sección misc del fichero de configuración deberemos definir las opciones backuptype y keep_snapshot:

(...)
[misc]
backuptype=none
(...)
keep_snapshot=1
(...)

El problema es que al realizar el backup de tipo none, crea un fichero con la posición pero lo borra antes de finalizar. Por lo tanto, una opción fácil es que también lo muestre por pantalla con el siguiente patch:

--- /usr/local/src/mylvmbackup-0.12/mylvmbackup 2009-06-20 13:36:54.000000000 +0200
+++ /usr/local/bin/mylvmbackup  2012-11-05 09:41:36.000000000 +0100
@@ -493,6 +493,7 @@
                        $v = '' if (!defined($v));
                        my $line = "$pos_prefix:$f=$v\n";
                        print $fh $line or log_msg ("Writing position record failed: $!", LOG_ERR);
+                       print $line if ($pos_prefix eq "Master");
                }
  }
  $sth->finish;

Lo copiamos en el fichero masterpos.patch y lo aplicamos dentro del directorio de instalación de mylvmbackup:

# patch -p1 < masterpos.patch
patching file mylvmbackup

A continuación lo instalamos normalmente . Cuando lo ejecutemos, en su salida obtendremos los datos que nos interesan:

20121105 09:41:37 Info: Connecting to database...
20121105 09:41:37 Info: Flushing tables with read lock...
20121105 09:41:37 Info: Taking position record into /tmp/mylvmbackup-backup-20121105_094137_mysql-diNbKy.pos...
Master:File=mysql-bin.000001
Master:Position=7792
Master:Binlog_Do_DB=
Master:Binlog_Ignore_DB=
20121105 09:41:37 Info: Running: lvcreate -s --size=5G --name=snap.backup /dev/local/mysql
File descriptor 4 (socket:[4718460]) leaked on lvcreate invocation. Parent PID 17495: /usr/bin/perl
  Logical volume "snap.backup" created
20121105 09:41:37 Info: DONE: taking LVM snapshot
20121105 09:41:37 Info: Unlocking tables...
20121105 09:41:37 Info: Disconnecting from database...
20121105 09:41:37 Info: Mounting snapshot...
20121105 09:41:37 Info: Running: mount -o rw /dev/local/snap.backup /var/tmp/mylvmbackup/mnt/backup
20121105 09:41:37 Info: DONE: mount snapshot
20121105 09:41:37 Info: Copying /tmp/mylvmbackup-backup-20121105_094137_mysql-diNbKy.pos to /var/tmp/mylvmbackup/mnt/backup-pos/backup-20121105_094137_mysql.pos...
20121105 09:41:37 Info: Copying /etc/my.cnf to /var/tmp/mylvmbackup/mnt/backup-pos/backup-20121105_094137_mysql_my.cnf...
20121105 09:41:37 Info: Backuptype none selected, not doing backup... DONE
20121105 09:41:37 Info: Cleaning up...
20121105 09:41:37 Info: Running: umount /var/tmp/mylvmbackup/mnt/backup
20121105 09:41:37 Info: DONE: Unmounting /var/tmp/mylvmbackup/mnt/backup
20121105 09:41:37 Info: LVM Usage stats:
20121105 09:41:37 Info:   LV          VG    Attr   LSize Origin Snap%  Move Log Copy%  Convert
20121105 09:41:37 Info:   snap.backup local swi-a- 5.00G mysql    0.00                       
20121105 09:41:37 Info: Not removing snapshot as requested by configuration

Tags:  ,  

Relacionados

Comments are closed.