Estoy usando TDolphin de Daniel , http://tdolphin.blogspot.com.es/ y estoy realizando el soporte de copia de seguridad.
He encontrado un problema a la hora de hacer la restauración de la copia, y es debido a al uso del motor InnoDB, y las claves foráneas.
El problema es que no puedes crear, por ejemplo, la tabla albaran cuando depende esta de la tabla cliente.
La solución es bastante simple;
function Restore_backup( ) Local oErr Local cFile := ChooseFile( "Selecciona fichero backup" ) try oServer:Execute( "SET FOREIGN_KEY_CHECKS = 0;" ) oServer:Restore( cFile ) oServer:Execute( "SET FOREIGN_KEY_CHECKS = 1;" ) Msginfo( "Restauracion completada" ) catch oErr MsgStop( oErr:Description ) end return nil |
Lo que hacemos es desconectar el chequeo de la clave foránea, restaurar la BD y después, volvemos a activarlo.
Otra problema con el que tuve que liar fue con los permisos necesarios para el usuario en cuestión pudiese hacer la copia de seguridad y posterior restauración en MySql.
Tan simple como ejecutar estas lineas en el cliente de Mysql, solo cambia el usuario backup y el de la BD , basededatos, por el tuyo;
Otra problema con el que tuve que liar fue con los permisos necesarios para el usuario en cuestión pudiese hacer la copia de seguridad y posterior restauración en MySql.
Tan simple como ejecutar estas lineas en el cliente de Mysql, solo cambia el usuario backup y el de la BD , basededatos, por el tuyo;
mysql> grant select on basededatos.* to ‘backup’@'localhost’ with grant option; mysql> grant lock tables on basededatos.* to backup@localhost; mysql> grant reload on *.* to backup@localhost; |
No hay comentarios:
Publicar un comentario