Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Como Hacer Copias De Seguridad Mysql
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Hacer Copias De Seguridad Mysql 
 
pues eso el asunto lo dice todo, como puedo hacer copias de seguridad de tablas mysql desde gambas?
 



 
desoljor - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
Prueba con ésto:
Programa de copias de Seguridad de MySQL

Lo hice para mi empresa y es lo que utilizamos desde hace un tiempo.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
Vale lo probare a lo largo de esta mañana y ya te cuento gracias por tu ayuda
 



 
desoljor - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
¿Y para qué quieres un programa para hacer copias de seguridd cuando mysql ya tiene a mysqldump y a mysqlhotcopy?

El segundo es específico para copias de seguridad y el primero sirve para todo (y también para hacer copias de seguridad)

Con mysqldump tanto puedes hacer copias de seguridad como transferir una base de datos a otro servidor.

mysqldump --opt mibase > copia_seguridad.sql

y para restaurar

mysql mibase < archivo.sql

Yo me hice un script en su día para automatizar eso y así que las copias se hicieran sistemáticamente.


# declarar variables
logfich="/var/log/mysqlbackup.log"
backup="/backup"
fecha=`date +%Y%m%d_%H%M`
usuario=$1
clave=$2

# borrar log anterior
rm $logfich

cd $backup

# hacer copia de seguridad de todas las bases de datos a las que el usuario tiene acceso
 for BBDD in $( mysql -u $username --password=$password -h localhost -Bse 'show databases' ); do
 echo "Creando copia de seguridad de $BBDD"
  
# Volcamos la base de datos en un fichero temporal
 mysqldump --user=$usuario --password=$password $BBDD > datos.sql

# comprimirlo
 tar cvjf mysql-$BBDD-$fecha.tar.bz2 *.sql
  
# El nombre del fichero resultante contiene el nombre de la base de datos y la fecha de la copia.
  
 echo "Backup completo en la base de datos: $BBDD (mysql-$BBDD-$fecha.tar.bz2)" >> $logfile
  
# Borramos el fichero temporal
 rm datos.sql
 done
 


Puedes pasar eso con el cron si quieres que te lo haga el sistema o puedes usar una aplicación gambas y usar el timer por ejemplo para que periodicamente haga la copia. solo necesitas pasarle como parámetro el usuario y clave que haga la copia de seguridad. Se hacen copias de todas las bases a las que ese usuario tiene acceso. Las copias quedan en un directorio creado al efecto (en el que el usuario debe tener permiso de escritura), debidamente comprimidas, con la fecha en el nombre y para restaurarlas hay que darle usuario y clave.

En mi caso. la clave esá encriptada en md5 para que no se pueda restaurar la copia sino es a traves de la aplicación que tengo al efecto a fin de evitar equivocaciones y accidentes. Tengo pensado hacerle algún cambio para que la copia en vez de quear en el directorio backup quede en otra máquina pero soy un perezoso y está por hacer.
 



 
última edición por soplo el Miercoles, 02 Marzo 2011, 19:20; editado 3 veces 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
Gracias soplo, vamos a ver yo tengo una aplicación echa en gambas y en el apartado de mantenimiento esta la opción de hacer coppias de seguridad de las diferentes tablas o de toda la BDD, yo lo que quiero es hacer las copias de seguridad de las Tablas no de toda la BDD
Opcion 1

  General.conectar
  General.$Con.Exec("mysqldump -u  " & General.$Con.User & " -p " & General.$Con.Password & " Desoljor " & Mantenimiento.Etiqueta & " > " & Archivo)
  General.$Con.Close
Desoljor = BDD
Mantenimiento.Etiqueta = Nombre de la Tabla
Archivo = Archivo de destino .sql
me da un error de sintaxis
Opcion 2

SHELL "mysqldump -u  " & General.$Con.User & " -p " & General.$Con.Password & " Desoljor " & Mantenimiento.Etiqueta & " > " & Archivo

Error=NULL OBJECT
 



 
última edición por desoljor el Miercoles, 02 Marzo 2011, 17:48; editado 1 vez 
desoljor - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
El problema, Soplo, no son las copias, que eso lo hace el mysqldump muy bien hecho. El problema, al menos para mí son las restauraciones. Cuando utilizas la herramienta de Mysql la salvaguardia de las tablas y demás se hace por orden alfabético de tabla. La restauración lo mismo. Con eso te encuentras con que a la hora de restaurar, si utilizas integridad referencial, no es posible en la mayoría de los casos por cuanto las tablas de referencia no siguen ese orden.
Eso te lleva a tener que procesar la copia tabla a tabla, y muchas veces a eliminar índices y dependencias para restaurar los datos y volver a crearlos, etc. etc.

Con mi programa eso se soluciona. Al menos tal y como yo trato las bases MySQL.

Pero, como tú siempre dices, para gustos los colores.

Suerte
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
En eso no había caído shordi. Visto así supongo que tienes razón. Lo que pasa es que con mysqldump también puedes hacer copia de tablas concretas (y voy a mirar si se puede elegir el orden en que las procesa que no me extrañaría con la cantidad de posibilidades que tiene). En todo caso con mysqldump podrías resolver tu problema haciendo en el peor de los casos copias de tablas selectivas (osea una primera copia con tablas A, C y E y otra segunda copia con tablas B, D y F).

desoljor
Citar:
SHELL "mysqldump -u " & General.$Con.User & " -p " & General.$Con.Password & " Desoljor " & Mantenimiento.Etiqueta & " > " & Archivo

pon así
dim s as string, f as file
HELL( "mysqldump -u " & General.$Con.User & " -p " & General.$Con.Password & " Desoljor " & Mantenimiento.Etiqueta) to s
f=open archivo for create
print #F,s
close f


Y en el exec está mal porque no es un comando del gestor de base de datos sino una utilidad adicional com lo es mysql_admin por ejemplo así que lo ejecutas como una aplicación mas. Puedes hacerlo con un shell o con un exec. y controlar ese proceso como cualquier otro.
 



 
última edición por soplo el Miercoles, 02 Marzo 2011, 19:22; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
Las copias selectivas ya lo probé, pero el problema es que si cambias el nombre de una tabla, o creas una nueva dependencia o visata o lo que sea tienes que estar de tejemanejes con los scripts, etc.
Mi programa vale para cualquier base que contenga tablas, relaciones y vistas hasta cinco niveles de vistas (es decir vistas sobre tablas, vistas sobre esas vistas, vistas sobre las vistas de las vistas, etc.) . Además se puede añadir al cron, que tiene las dos maneras de ejecución, gráfica o ejecutando las opciones por defecto sin gráficos. Creo que tiene algunos bugs que no me molesté en corregir (sobre todo en lo que a restaurar una base de datos sobre otra inexistente, donde en teoría debería crear la base con el nuevo nombre... pero no sé si lo hace bien) por ser ocasiones no habituales.

Saludos
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
Hola Soplo, lo siento per no me funciona me dice NULL OBJECT
no consigo que funcione
 



 
desoljor - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Copias De Seguridad Mysql 
 
SHELL "mysqldump" & " " & "--opt" & " " & "base" & " " & ">" & " " & "ruta" WAIT

A mi esto me funciona muy bien.

Copio toda la base. luego yo restauro lo que quiero.


Eso  a mi me crea un archivo sql con las tablas, para restaurar las tablas que quiero, solo tengo que borrar las que no me interesan.
 



 
pittusa - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Generador De Copias De Seguridad Para MySQL shordi Aplicaciones/Fragmentos de Código 5 Miercoles, 04 Agosto 2010, 21:04 Ver último mensaje
abarzuaf
No hay nuevos mensajes Sobre Seguridad En Gambas Con Mysql A Nive... shordi General 2 Martes, 01 Octobre 2013, 18:53 Ver último mensaje
shordi
No hay nuevos mensajes Como Hacer Un Filtro A Mysql Por Id Y Pres... yaga Bases de Datos 0 Martes, 05 Abril 2016, 16:31 Ver último mensaje
yaga
No hay nuevos mensajes Consejos Para Nombrar Archivos De Copias D... Shell General 11 Lunes, 12 Junio 2017, 08:54 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron