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
|