Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
¿ qué componentes de acceso usas ?

Yo uso los MDOLIB y tiene un par de componentes para hacer backup y restore (no los he probado) pero supongo es la solución.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 03-10-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Aquí les va un batch bastante grande que fui modificando a lo largo de años, con cosas de otra gente, ejemplos que fui encontrando y mías...

Espero no se enojen los autores de las diferentes partes, pues no me acuerdo de sus nombre.

Código:
@echo off
cls

rem ----------------------------------------------------------------------
rem Parametro 1 : Es el sufijo para nombrar el backup (Lunes/Martes/...)
rem nombre : nombre del backup
rem nombreBD : nombre de la base de datos. 
rem            *** Sin path ni extension. ***
rem IPori : direccion IP donde se encuentra la base de datos
rem IPdes : direccion IP donde se hará el restore
rem origen : path donde se encuentra la base de datos
rem destino : path donde se generara copia, backup y restore
rem copia : SI/NO - si se copia la base de datos (solo win a win)
rem backup : SI/NO - si se hace un backup (gbak)
rem restore : SI/NO - si se hace un restore para verificar que el gbak funciono
rem comprimir : SI/NO - utiliza Winrar para hacer la compresion del backup, restore y copia
rem ftp : SI/NO - envia los reportes del backup y restore 
rem ftpBase : SI/NO - envia el backup de la base de datos
rem optimizacion : SI/NO - hace backup/restore de la base si no esta usandose
rem                SOLO PARA WINDOWS !!!
rem deframgentar : SI/NO - ejecuta una desfragmentacion del disco C al finalizar
rem ----------------------------------------------------------------------


set nombre=NombreDelCliente
set nombreBD=NombreDeLaBD
set IPori=127.0.0.1
set IPdes=127.0.0.1
set origen=C:\Datos\
set destino=C:\Backup\
set copia=SI
set backup=SI
set restore=SI
set comprimir=SI
set ftp=SI
set ftpBase=SI
set optimizacion=SI
set defragmentar=SI

cd %destino%

set weekday_=%1

echo *******************************************************************************
echo ***                                                                         ***
echo ***                   ESTA PANTALLA SE PUEDE MINIMIZAR                      ***
echo ***                                                            (VER 070629) ***
echo *******************************************************************************
echo Copia de Seguridad %nombre% - %weekday_%
echo %date% %time% 
echo *******************************************************************************
echo ******************************************************************************** >> copia_%nombre%_%weekday_%.log
echo Copia de Seguridad %nombre% - %weekday_% >> copia_%nombre%_%weekday_%.log
echo %date% %time%  >> copia_%nombre%_%weekday_%.log
echo ******************************************************************************** >> copia_%nombre%_%weekday_%.log

if "%copia%"=="NO" goto FinCopia
   echo %date% %time% - Copia
   echo %date% %time% >> copia_%nombre%_%weekday_%.log
   echo Copia %origen%%nombreBD%.fdb "-->" %destino%%nombreBD%_%weekday_%.bak  >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   copy %origen%%nombreBD%.fdb %destino%%nombreBD%_%weekday_%.bak /y >> copia_%nombre%_%weekday_%.log

   if "%comprimir%"=="NO" goto FinComprimirBAK
      echo %date% %time% - Compresion de Copia
      echo %date% %time% >> copia_%nombre%_%weekday_%.log
      echo Compresion de %destino%%nombreBD%_%weekday_%.bak >> copia_%nombre%_%weekday_%.log
      echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
      if exist %destino%%nombreBD%_%weekday_%.bak "C:\Archivos de programa\WinRAR\WinRAR.exe" a %destino%%nombreBD%_%weekday_%.bak.rar %destino%%nombreBD%_%weekday_%.bak
   :FinComprimirBAK

:FinCopia

if "%backup%"=="NO" goto FinBackup
   echo %date% %time% - Backup
   echo %date% %time% >> copia_%nombre%_%weekday_%.log
   echo Backup - %IPori%:%origen%%nombreBD%.fdb "-->" %destino%%nombreBD%_%weekday_%.GBK >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   if exist backup_%nombre%_%weekday_%.log del backup_%nombre%_%weekday_%.log
   "C:\Archivos de programa\Firebird\Firebird_1_5\bin\gbak.exe" -t %IPori%:%origen%%nombreBD%.fdb %destino%%nombreBD%_%weekday_%.GBK -user SYSDBA -pass masterkey -y backup_%nombre%_%weekday_%.log
   type %destino%Backup_%nombre%_%weekday_%.log >> copia_%nombre%_%weekday_%.log

   if "%comprimir%"=="NO" goto FinComprimirGBK
      echo %date% %time% - Compresion de Backup
      echo %date% %time% >> copia_%nombre%_%weekday_%.log
      echo Compresion de %destino%%nombreBD%_%weekday_%.GBK >> copia_%nombre%_%weekday_%.log
      echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
      if exist %destino%%nombreBD%_%weekday_%.gbk "C:\Archivos de programa\WinRAR\WinRAR.exe" a %destino%%nombreBD%_%weekday_%.gbk.rar %destino%%nombreBD%_%weekday_%.gbk
   :FinComprimirGBK

:FinBackup

if "%restore%"=="NO" goto FinRestore
   echo %date% %time% - Restore
   echo %date% %time% >> copia_%nombre%_%weekday_%.log
   echo Restore %destino%%nombreBD%_%weekday_%.GBK "-->" %IPdes%:%destino%%nombreBD%_%weekday_%.res >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   if exist restore_%nombre%_%weekday_%.log del restore_%nombre%_%weekday_%.log
   "C:\Archivos de programa\Firebird\Firebird_1_5\bin\gbak.exe" -r %destino%%nombreBD%_%weekday_%.GBK %IPdes%:%destino%%nombreBD%_%weekday_%.res -user SYSDBA -pass masterkey -y restore_%nombre%_%weekday_%.log
   type %destino%\Restore_%nombre%_%weekday_%.log >> copia_%nombre%_%weekday_%.log

   if "%comprimir%"=="NO" goto FinComprimirGDB
      if IPdes=="127.0.0.1" goto FinComprimirGDB
      echo %date% %time% - Compresion de Restore
      echo %date% %time% >> copia_%nombre%_%weekday_%.log
      echo Compresion de %destino%%nombreBD%_%weekday_%.res >> copia_%nombre%_%weekday_%.log
      echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
      if exist %destino%%nombreBD%_%weekday_%.res "C:\Archivos de programa\WinRAR\WinRAR.exe" a %destino%%nombreBD%_%weekday_%.res.rar %destino%%nombreBD%_%weekday_%.res
   :FinComprimirGDB

:FinRestore

if "%comprimir%"=="NO" goto FinComprimir
   echo %date% %time% >> copia_%nombre%_%weekday_%.log
   echo Borrado de originales >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   if exist %destino%%nombreBD%_%weekday_%.bak del %destino%%nombreBD%_%weekday_%.bak >> copia_%nombre%_%weekday_%.log
   if exist %destino%%nombreBD%_%weekday_%.GBK del %destino%%nombreBD%_%weekday_%.GBK >> copia_%nombre%_%weekday_%.log
   if exist %destino%%nombreBD%_%weekday_%.res del %destino%%nombreBD%_%weekday_%.res >> copia_%nombre%_%weekday_%.log
:FinComprimir


if "%ftp%"=="NO" goto FinFTP
   echo %date% %time% - Envio de Reportes
   echo %date% %time% >> copia_%nombre%_%weekday_%.log
   echo FTP a servidor externo >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   if exist ftp_%nombre%_%weekday_%.txt del ftp_%nombre%_%weekday_%.txt
rem *** Poner una IP correcta
   echo open 123.123.123.123> ftp_%nombre%_%weekday_%.txt
rem ***
   echo user usuario>> ftp_%nombre%_%weekday_%.txt
   echo contrasena>> ftp_%nombre%_%weekday_%.txt
   echo cd logs>> ftp_%nombre%_%weekday_%.txt
   echo asc>> ftp_%nombre%_%weekday_%.txt
   echo send %destino%Backup_%nombre%_%weekday_%.log  backup_%nombre%.log>> ftp_%nombre%_%weekday_%.txt
   echo send %destino%Restore_%nombre%_%weekday_%.log restore_%nombre%.log>> ftp_%nombre%_%weekday_%.txt
   if "%ftpBase%"=="NO" goto FinFTPBase
      echo cd ..>> ftp_%nombre%_%weekday_%.txt
rem *** Poner carpeta correcta
      echo cd directorio>> ftp_%nombre%_%weekday_%.txt
rem *** 
      echo bin>> ftp_%nombre%_%weekday_%.txt
      echo send %destino%%nombreBD%_%weekday_%.gbk.rar>> ftp_%nombre%_%weekday_%.txt
   :FinFTPBase
   echo bye>> ftp_%nombre%_%weekday_%.txt

   FTP -n -s:ftp_%nombre%_%weekday_%.txt >> ftp_%nombre%_%weekday_%.log
   type ftp_%nombre%_%weekday_%.log >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log

:FinFTP

if "%optimizacion%"=="NO" goto FinOptimizacion
   Echo %date% %time% - Optimizacion
   Echo Optimizacion >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   Echo      Desconectando BD ...
   Echo Desconectando BD ... >> copia_%nombre%_%weekday_%.log
   "C:\Archivos de programa\Firebird\Firebird_1_5\bin\gfix.exe" -shut -attach 30 %IPori%:%origen%%nombreBD%.fdb -user SYSDBA -pass masterkey 2> errout.tmp

   echo 1> nul 2> vacio.tmp
   echo N 1> N_CR.tmp
   comp errout.tmp vacio.tmp 1> nul 2> nul < N_CR.tmp
   if errorlevel 1 GOTO ERRBDConectada

   Echo      Copia de la base antes de optimizar
   Echo Copia de la base antes de optimizar >> copia_%nombre%_%weekday_%.log
   copy %origen%%nombreBD%.fdb %destino%%nombreBD%.OPTIMIZACION /y > errout.tmp
   if errorlevel 1 GOTO ERRNoCopia

   echo      Parando Servidor Firebird ...
   echo Parando Servidor Firebird ... >> copia_%nombre%_%weekday_%.log
   NET STOP "Firebird Server - Defaultinstance" 1> nul 2>> copia_%nombre%_%weekday_%.log
   IF errorlevel 1 GOTO ERRNoParaFirebird

   echo      Arrancando Guardian ...
   echo Arrancando Guardian ... >> copia_%nombre%_%weekday_%.log
   NET START "Firebird Guardian - DefaultInstance" 1> nul 2>> copia_%nombre%_%weekday_%.log
   IF errorlevel 1 GOTO ERRNoIniciaGuardian

   echo      Haciendo Backup ...
   echo Haciendo Backup ... >> copia_%nombre%_%weekday_%.log
   if exist backup_%nombre%_Optimizacion.log del backup_%nombre%_Optimizacion.log
   "C:\Archivos de programa\Firebird\Firebird_1_5\bin\gbak.exe" -t %IPori%:%origen%%nombreBD%.fdb %destino%%nombreBD%_Optimizacion.GBK -user SYSDBA -pass masterkey -y backup_%nombre%_Optimizacion.log

   echo 1> nul 2> vacio.tmp
   echo N 1> N_CR.tmp
   comp backup_%nombre%_Optimizacion.log vacio.tmp 1> nul 2> nul < N_CR.tmp
   if errorlevel 1 GOTO ERRBackup

   echo      Haciendo Restore ...
   echo Haciendo Restore ... >> copia_%nombre%_%weekday_%.log
   if exist restore_%nombre%_optimizacion.log del restore_%nombre%_optimizacion.log
   "C:\Archivos de programa\Firebird\Firebird_1_5\bin\gbak.exe" -r %destino%%nombreBD%_optimizacion.GBK %IPori%:%origen%%nombreBD%.fdb -user SYSDBA -pass masterkey -y restore_%nombre%_optimizacion.log

   echo 1> nul 2> vacio.tmp
   echo N 1> N_CR.tmp
   comp restore_%nombre%_optimizacion.log vacio.tmp 1> nul 2> nul < N_CR.tmp
   if errorlevel 1 GOTO ERRRestore

:ACTIVAR_BASE
   echo      Activando BD...
   echo Activando BD... >> copia_%nombre%_%weekday_%.log
   "C:\Archivos de programa\Firebird\Firebird_1_5\bin\gfix.exe" -online %IPori%:%origen%%nombreBD%.fdb -user SYSDBA -pass masterkey 2> errout.tmp

   echo 1> nul 2> vacio.tmp
   echo N 1> N_CR.tmp
   comp errout.tmp vacio.tmp 1> nul 2> nul < N_CR.tmp
   if errorlevel 1 GOTO ERRNoActivaBD

   goto FinOptimizacion

:ERRBDConectada
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo ERROR : Base de Datos Conetada >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
goto FinOptimizacion

:ERRNoCopia
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo ERROR : No se pudo hacer una copia de la base de datos >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
goto FinOptimizacion

:ERRNoParaFirebird
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo ERROR : No se pudo detener el servicio Firebird >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
goto FinOptimizacion

:ERRNoIniciaGuardian
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo ERROR : No se pudo iniciar el servicio Firebird Guardian >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
goto FinOptimizacion

:ERRBackup
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo ERROR : No se pudo hacer el backup >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
goto FinOptimizacion

:ERRRestore
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo ERROR : No se pudo hacer el restore >> copia_%nombre%_%weekday_%.log
Echo Restaura la base de antes de optimizar >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
copy %destino%%nombreBD%.OPTIMIZACION %origen%%nombreBD%.fdb /y > errout.tmp
goto ACTIVAR_BASE

:ERRNoActivaBD
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo ERROR : No se pudo Activar la Base de Datos >> copia_%nombre%_%weekday_%.log
echo ************************************************************ >> copia_%nombre%_%weekday_%.log
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >> copia_%nombre%_%weekday_%.log
goto FinOptimizacion

:FinOptimizacion

if "%defragmentar%"=="NO" goto FinDefragmentar
   echo %date% %time% - Desfragmentando 
   echo Desfragmentando unidad %SystemDrive%... >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   %windir%\system32\defrag.exe %SystemDrive% -f > %destino%defrag_SD_%nombre%_%weekday_%.log
   type %destino%defrag_SD_%nombre%_%weekday_%.log >> copia_%nombre%_%weekday_%.log

   Rem comprombamos si la unidad con datos es la misma, y si no tambien se desfragmenta
   CD > errout.tmp
   for /f "tokens=1 delims=\" %%i in (errout.tmp) do if not "%%i"=="%SystemDrive%" echo Desfragmentando tambien unidad:%%i... >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log

   for /f "tokens=1 delims=\" %%i in (errout.tmp) do if not "%%i"=="%SystemDrive%" %windir%\system32\defrag.exe %%i -f > %destino%defrag_DD_%nombre%_%weekday_%.log
   type %destino%defrag_DD_%nombre%_%weekday_%.log >> copia_%nombre%_%weekday_%.log
:FinDefragmentar

echo %date% %time% - Limpieza
echo Limpieza >> copia_%nombre%_%weekday_%.log
echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log

echo ******************************************************************************** >> copia_%nombre%_%weekday_%.log
echo Finalizada copia de seguridad %nombre% - %weekday_% >> copia_%nombre%_%weekday_%.log
echo %date% %time%  >> copia_%nombre%_%weekday_%.log
echo ******************************************************************************** >> copia_%nombre%_%weekday_%.log
echo .  >> copia_%nombre%_%weekday_%.log
echo .  >> copia_%nombre%_%weekday_%.log
echo .  >> copia_%nombre%_%weekday_%.log

type copia_%nombre%_%weekday_%.log >> copia.log
if exist N_CR.tmp del N_CR.tmp
if exist vacio.tmp del vacio.tmp
if exist errout.tmp del errout.tmp
if exist ftp_%nombre%_%weekday_%.txt del ftp_%nombre%_%weekday_%.txt
if exist ftp_%nombre%_%weekday_%.log del ftp_%nombre%_%weekday_%.log
if exist copia_%nombre%_%weekday_%.log del copia_%nombre%_%weekday_%.log
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
respaldo de datos de una BD mysql desde delphi pollo_c MySQL 3 09-03-2007 08:22:09
respaldo base de datos mysql - delphi didier MySQL 2 30-09-2006 08:48:49
respaldo base de datos mysql - delphi didier SQL 1 08-08-2006 18:15:04
respaldo de base de datos con delphi 2.0 marylobita Conexión con bases de datos 2 04-05-2006 19:43:38
Restaurar base de datos (respaldo) con Delphi Delphiboy MS SQL Server 2 28-09-2005 15:46:28


La franja horaria es GMT +2. Ahora son las 13:46:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi