Ver Mensaje Individual
  #2  
Antiguo 09-02-2008
Avatar de rruz
[rruz] rruz is offline
Miembro Premium
 
Registrado: jun 2006
Posts: 146
Reputación: 18
rruz Va por buen camino
Hola una posible solucion seria

RESPALDO

1. generar una tabla de registros de respaldos (fecha,hora,ruta,bdd) con esto podrias generar un mantenedor de respaldos y restaurar a tu antojo el respaldo que tu desees. (OPCIONAL)

2. ejecutar proceso de respaldo
2.1 Crear directorio de respaldo ej: C:\Backups\mibdd_20080208_2354 (Ruta fija + nombre bdd + fecha + hora)
2.2 dentro de un Tquery o Adoquery (segun corresponda) ejecutar "SHOW tables from mibdd" con esto obtenemos los nombres de las tablas a respaldar
2.3 Luego recorrer el Dataset anterior ejecutando con otro Query SELECT * INTO OUTFILE 'c:\\Backups\\mibdd_20080208_2354\\'+AdoQuery1.Fields[0].Value+'.dat' FROM '+AdoQuery1.Fields[0].Value

con esto estamos respaldando cada tabla en el directorio definido por nosotros.

RESTAURACION

Ahora para restaurar (recuerdas el punto 1?) seleccionamos un respaldo especifico.

1. extraemos la ruta a leer
2. cargamos la lista de los archivos respaldados
3. y ejecutamos lo siguiente para cada archivo dentro de un Query (TQuery, Adoquery, etc)

'LOAD DATA INFILE '+RutaArchivo+Archivo'+' REPLACE INTO TABLE '+nombre tabla.

recuerda que debes agregar las validaciones correspondientes a este esquema como:

1. Existencia de tablas de origen y destino.
2. Agregar la sentencia LOCAL a los comandos para poder respaldar en la maquina cliente.
3. Agregar algun esquema de chueque de integridad de datos CRC o algo asi.
4. Etc.



Espero que te sirva es solo una idea.

Saludos
Responder Con Cita