Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[OT] Mysql restaurar ficheros fisicos de un backup lvmsnapshot + rsync

31 views
Skip to first unread message

Maykel Franco

unread,
Feb 2, 2016, 1:00:06 PM2/2/16
to
Buenas, trato de restaurar una determinada BBDD de la que hice un
backup. La forma de realizar el backup es usando la utilidad
mylvmbackup, que básicamente lo que hace es bloquear las tablas a modo
read only y posteriormente hacer el snapshots de /var/lib/mysql,
desbloquear las tablas, hacer el backup con rsync y cuando acaba
remover el snapshots.

Para restaurar esto, además de mirar en foros, he mirado la
documentación de Mysql:

https://dev.mysql.com/doc/refman/5.5/en/innodb-backup.html

En mi caso, creo que sería el Cold Backup, en frío y parado, puesto
que hago uso de un snapshots.

Lo que hago es instalar Mysql, parar mysql en la nueva máquina donde
quiero restaurar, coger los ficheros ibdata1, y los ib_logfile0 y
logfile1 del backup y copiarlos. Darle los permisos adecuados y
finalmente intentar arrancar Mysql...

Pero recibo estos errores:

Error : Incorrect information in file: './BBDD/list.frm'
error : Corrupt
BBDD.product
Error : Incorrect information in file: './BBDD/product.frm'
error : Corrupt
BBDD.queue
Error : Incorrect information in file: './BBDD/queue.frm'
error : Corrupt
BBDD.savingCheck
Error : Incorrect information in file: './BBDD/savingCheck.frm'
error : Corrupt
BBDD.sessions
note : The storage engine for the table doesn't support repair
BBDD.station
note : The storage engine for the table doesn't support repair
BBDD.store
Error : Incorrect information in file: './BBDD/store.frm'
error : Corrupt
BBDD.ticket
Error : Incorrect information in file: './BBDD/ticket.frm'
error : Corrupt
BBDD.transaction
Error : Incorrect information in file: './BBDD/transaction.frm'
error : Corrupt
BBDD.transactionState
Error : Incorrect information in file: './BBDD/transactionState.frm'
error : Corrupt
BBDD.user
Error : Incorrect information in file: './BBDD/user.frm'
error : Corrupt
BBDD.userList
note : The storage engine for the table doesn't support repair

Además de estos:

160202 12:15:51 [Note] Plugin 'FEDERATED' is disabled.
160202 12:15:51 InnoDB: The InnoDB memory heap is disabled
160202 12:15:51 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160202 12:15:51 InnoDB: Compressed tables use zlib 1.2.8
160202 12:15:51 InnoDB: Using Linux native AIO
160202 12:15:51 InnoDB: Initializing buffer pool, size = 128.0M
160202 12:15:51 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
160202 12:15:51 [ERROR] Plugin 'InnoDB' init function returned error.
160202 12:15:51 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160202 12:15:51 [ERROR] Unknown/unsupported storage engine: InnoDB
160202 12:15:51 [ERROR] Aborting

He ajustado el innodb_log_file_size a el valor que me dice, 50331648
en el my.cnf pero aún así no arranca...

En teoría, dice que está corrupto pero el backup se realizó bien...

Alguna idea de por qué puede ser?

Gracias de antemano.

Camaleón

unread,
Feb 2, 2016, 1:20:04 PM2/2/16
to
El Tue, 02 Feb 2016 18:51:12 +0100, Maykel Franco escribió:

> Buenas, trato de restaurar una determinada BBDD de la que hice un
> backup. La forma de realizar el backup es usando la utilidad
> mylvmbackup, que básicamente lo que hace es bloquear las tablas a modo
> read only y posteriormente hacer el snapshots de /var/lib/mysql,
> desbloquear las tablas, hacer el backup con rsync y cuando acaba remover
> el snapshots.

(...)

> Pero recibo estos errores:
>
> Error : Incorrect information in file: './BBDD/list.frm'

(...)

> note : The storage engine for the table doesn't support repair
>
> Además de estos:
>
> 160202 12:15:51 [Note] Plugin 'FEDERATED' is disabled.
> 160202 12:15:51 InnoDB: The InnoDB memory heap is disabled
> 160202 12:15:51 InnoDB: Mutexes and rw_locks use GCC atomic builtins
> 160202 12:15:51 InnoDB: Compressed tables use zlib 1.2.8
> 160202 12:15:51 InnoDB: Using Linux native AIO
> 160202 12:15:51 InnoDB: Initializing buffer pool, size = 128.0M
> 160202 12:15:51 InnoDB: Completed initialization of buffer pool InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes InnoDB: than specified in the .cnf file 0 5242880 bytes!
> 160202 12:15:51 [ERROR] Plugin 'InnoDB' init function returned error.
> 160202 12:15:51 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
> 160202 12:15:51 [ERROR] Unknown/unsupported storage engine: InnoDB
> 160202 12:15:51 [ERROR] Aborting

(...)

Hum... así a bote pronto te diría que el servidor mysql que acabas de
iniciar y donde quieres restaurar la copia de respaldo no tiene
activado el complemento de innodb, de ahí los errores. Comprueba, en
primer lugar, que esté activado ya que ese es el motor que usas en
la bdd antigua.

Saludos,

--
Camaleón

Maykel Franco

unread,
Feb 2, 2016, 1:30:04 PM2/2/16
to
No, no creo que sea eso...

mysql> show variables like "%have_innodb%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb | YES |
+---------------+-------+

show engines;

| InnoDB | DEFAULT | Supports transactions, row-level
locking, and foreign keys | YES | YES | YES |

Voy a seguir mirando...

Atilio

unread,
Feb 2, 2016, 1:50:03 PM2/2/16
to
Antes de hacer algo con el backup, fijate que en el nuevo mysql arranque sin problemas, no vaya ha hacer que por alguna configuración no arranque simplemente el motor.
y el backup tendria que copiarse con el motor en stop.

slds.

Erick Ocrospoma

unread,
Feb 2, 2016, 2:30:03 PM2/2/16
to
Hola,
Me parece curiso esto. Por lo que entiendo estas restaurando tu backup
en un servidor distinto, por ende estas usando la misma configuracion,
no? Haciendo backup con rsync, basta con tener la misma configuracion
y la misma version de MySQL.

Pareciera que usas la config por defecto, o que se te haya pasado
algun parametro. Mira este enlace a ver si te ayuda, mencionan que
esta relacion a un parametro en particular

https://www.percona.com/forums/questions-discussions/percona-xtrabackup/17446-got-ib_logfile0-is-of-different-size-when-doing-stream-backup

Y que segun ciertas versiones de MySQL, hay minimos y maximos valores
a establecer.

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_log_file_size
--



~ Happy install !





Erick.

---

IRC : zerick
Blog : http://zerick.me
About : http://about.me/zerick
Linux User ID : 549567

Maykel Franco

unread,
Feb 2, 2016, 2:40:03 PM2/2/16
to
El día 2 de febrero de 2016, 20:20, Erick Ocrospoma
<zippe...@gmail.com> escribió:
Erick me has dado buena pista... El backup lo hago desde un mysql
percona con version:

version | 5.6.26-74.0-56

Y el servidor donde lo estoy restaurando tiene la versión de mysql:

innodb_version | 5.5.47

Entiendo que la misma configuración te refieres a my.cnf.

Voy a revisar, gracias.

Maykel Franco

unread,
Feb 2, 2016, 3:30:06 PM2/2/16
to
El día 2 de febrero de 2016, 20:32, Maykel Franco
<maykel...@gmail.com> escribió:
Usando la misma versión de mysql 5.6, aunque no idéntica y copiando el
mismo my.cnf, quitando los parámetros de percona, me da este error, he
seguido el mismo procedimiento:

http://pastebin.com/s42U2k0p

Voy para atrás como los cangrejos...

Maykel Franco

unread,
Feb 2, 2016, 3:50:04 PM2/2/16
to
El día 2 de febrero de 2016, 21:21, Maykel Franco
Bueno por fin he conseguido solucionarlo... Paso el enlace:

https://bugs.mysql.com/bug.php?id=56245

Con la versión 5.6 de mysql y con este parámetro en my.cnf:

Aunque esto que dice al final no me gusta...

------

[25 Aug 2010 15:10] Valeriy Kravchuk

So, I assume the problem was a result of data corruption, not a bug in the code.

--------

Camaleón

unread,
Feb 4, 2016, 9:20:03 AM2/4/16
to
El Tue, 02 Feb 2016 19:23:41 +0100, Maykel Franco escribió:

> El día 2 de febrero de 2016, 19:14, Camaleón <noel...@gmail.com>
> escribió:

(...)

>>> 160202 12:15:51 [ERROR] Plugin 'InnoDB' init function returned error.
>>> 160202 12:15:51 [ERROR] Plugin 'InnoDB' registration as a STORAGE
>>> ENGINE failed.
>>> 160202 12:15:51 [ERROR] Unknown/unsupported storage engine: InnoDB
>>> 160202 12:15:51 [ERROR] Aborting
>>
>> (...)
>>
>> Hum... así a bote pronto te diría que el servidor mysql que acabas de
>> iniciar y donde quieres restaurar la copia de respaldo no tiene
>> activado el complemento de innodb, de ahí los errores. Comprueba, en
>> primer lugar, que esté activado ya que ese es el motor que usas en la
>> bdd antigua.
>>
>>
>>
> No, no creo que sea eso...
>
> mysql> show variables like "%have_innodb%";
> +---------------+-------+
> | Variable_name | Value |
> +---------------+-------+
> | have_innodb | YES |
> +---------------+-------+
>
> show engines;
>
> | InnoDB | DEFAULT | Supports transactions, row-level
> locking, and foreign keys | YES | YES | YES |
>
> Voy a seguir mirando...

Con eso entiendo que lo tienes habilitado en la configuración pero al
iniciarse MySQL lo desactiva por algún motivo. Intenta configurar un
motor distinto (MyIsam) y desactiva expresamente innodb (variables
"innodb" o la opción "--skip-innodb" y "default_storage_engine" aunque
las variables pueden ser distintas según la versión de MySQL que tengas.

También puedes probar a renombrar (o mover) los archivos "ib_logfile*" y
comparar de tú a tú los dos archivos de configuración del servidor MySQL,
el original y al que vas a restaurar.

Saludos,

--
Camaleón

Camaleón

unread,
Feb 4, 2016, 9:40:04 AM2/4/16
to
El Tue, 02 Feb 2016 21:42:09 +0100, Maykel Franco escribió:

> Bueno por fin he conseguido solucionarlo... Paso el enlace:
>
> https://bugs.mysql.com/bug.php?id=56245

No veo cuál es el error en el bug, simplemente apunta a corrupción en las
tablas de la bdd.

> Con la versión 5.6 de mysql y con este parámetro en my.cnf:

¿Qué parámetro? :-?

> Aunque esto que dice al final no me gusta...
>
> ------
> [25 Aug 2010 15:10] Valeriy Kravchuk
>
> So, I assume the problem was a result of data corruption, not a bug in
> the code.
> --------

El último comentario apunta al bug real, aunque el error ya aparece como
parcheado:

https://bugs.mysql.com/bug.php?id=55543

Saludos,

--
Camaleón

Maykel Franco

unread,
Feb 4, 2016, 9:50:03 AM2/4/16
to
El día 4 de febrero de 2016, 15:37, Camaleón <noel...@gmail.com> escribió:
> El Tue, 02 Feb 2016 21:42:09 +0100, Maykel Franco escribió:
>
>> Bueno por fin he conseguido solucionarlo... Paso el enlace:
>>
>> https://bugs.mysql.com/bug.php?id=56245
>
> No veo cuál es el error en el bug, simplemente apunta a corrupción en las
> tablas de la bdd.

Pero es raro porque tan sólo restaurando el ibdata1, ib_logfile0,
ib_logfile1 y la carpeta con la BBDD (además añadiendo en my.cnf el
file per table de innodb a 1) , me daba errores también como
intentando restaurar otras bbdd... Seguro que es por algo de los
ib_logfileX que almacenan cierta información.

>
>> Con la versión 5.6 de mysql y con este parámetro en my.cnf:
>
> ¿Qué parámetro? :-?

innodb_force_recovery=6

Camaleón

unread,
Feb 4, 2016, 11:10:04 AM2/4/16
to
El Thu, 04 Feb 2016 15:43:53 +0100, Maykel Franco escribió:

> El día 4 de febrero de 2016, 15:37, Camaleón <noel...@gmail.com>
> escribió:
>> El Tue, 02 Feb 2016 21:42:09 +0100, Maykel Franco escribió:
>>
>>> Bueno por fin he conseguido solucionarlo... Paso el enlace:
>>>
>>> https://bugs.mysql.com/bug.php?id=56245
>>
>> No veo cuál es el error en el bug, simplemente apunta a corrupción en
>> las tablas de la bdd.
>
> Pero es raro porque tan sólo restaurando el ibdata1, ib_logfile0,
> ib_logfile1 y la carpeta con la BBDD (además añadiendo en my.cnf el file
> per table de innodb a 1) , me daba errores también como intentando
> restaurar otras bbdd... Seguro que es por algo de los ib_logfileX que
> almacenan cierta información.

(...)

"Cierta" no... contiene información para recuperar los datos de las
tablas en caso de corrupción (similar al "journal", una base de datos de
transacciones que tienen los sistemas de archivos).

Lo raro es que esos archivos estuvieran corruptos tras la copia con rsync
ya que detuviste la bdd y seguiste los pasos correctos.

Saludos,

--
Camaleón
0 new messages