Como Hacer Copias De Seguridad Mysql


Ir a la página 1, 2  Siguiente

Objetivo: Como Hacer Copias De Seguridad Mysql
pues eso el asunto lo dice todo, como puedo hacer copias de seguridad de tablas mysql desde gambas?

Perfil MP  
Objetivo: 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.

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: Re: Como Hacer Copias De Seguridad Mysql
Hola Soplo, lo siento per no me funciona me dice NULL OBJECT
no consigo que funcione

Perfil MP  
Objetivo: 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.

Ir a la página 1, 2  Siguiente

Página 1 de 2


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4606s (PHP: -67% SQL: 167%)
Consultas SQL: 48 - Debug off - GZIP Activado