Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-02-2008
Avatar de laukri
laukri laukri is offline
Miembro
 
Registrado: dic 2007
Posts: 38
Poder: 0
laukri Va por buen camino
Question backup firebird

Hola a todos! tengo que hacer un .bat que me genere el backup de mi base de datos en FireBird 2.0 de forma automatica... para ello utilizo GBAK... Pero lo que no puedo hacer todavia y no se como es parar la base de datos y despues de q se genera el backup volver a levantarla....
Si alguien me puede ayudar se lo voy a agradecer mucho
saludos!
Responder Con Cita
  #2  
Antiguo 01-02-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por laukri Ver Mensaje
Hola a todos! tengo que hacer un .bat que me genere el backup de mi base de datos en FireBird 2.0 de forma automatica... para ello utilizo GBAK... Pero lo que no puedo hacer todavia y no se como es parar la base de datos y despues de q se genera el backup volver a levantarla....
Si alguien me puede ayudar se lo voy a agradecer mucho
saludos!
El gbak no necesita detener el servidor, puedes trabajar tranquilamente mientras se hace el backup
Responder Con Cita
  #3  
Antiguo 01-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
El gbak no necesita detener el servidor, puedes trabajar tranquilamente mientras se hace el backup
¿Ahhh si?, No lo sabia , pero me imagino que solo se pueden hacer consultas, porque en caso de modificar, insertar o borrar un dato, tendriamos una inconsistencia de los mismos a la hora de hacer el restore ¿o me equivoco?.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 01-02-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Te equivocas

El backup se hace en una transacción, por lo que todo lo que ve el backup es lo que ha sigo grabado definitivamente (commit).

Última edición por duilioisola fecha: 01-02-2008 a las 14:54:31.
Responder Con Cita
  #5  
Antiguo 01-02-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Te envío un bat que utilizo en los clientes.

La mayor parte es mia, (yo la he tecleado).
La parte de optimización no me acuerdo de quien la saqué. La modifiqué un poco para que calzara en este bat.

A ser utilizada bajo cuenta y riesgo propio. No asumo ninguna responsabilidad por perdidas ocasionadas por la utilizacion del bat.


Normalmente lo ubico en C:\Backup
Lo llamo backup.bat
A este "backup.bat" lo llamo desde "Tareas programasas" en el panel de control a medianoche con "C:\Datos\backup.bat Lunes"
Si la base está en un linux, IPOri será lo IP del linux (p.ej. 192.168.1.1) y origen será "/base/"

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 sweep : SI/NO - si se hace un sweep, para cerrar transacciones terminadas
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=Cliente023
set nombreBD=base023
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
set sweep=SI

rem Saca el dia de la semana
echo.| date | find "actual" > tmp$$$.bat
echo set weekday_=%%4> la.bat
call tmp$$$
cd %destino%

set weekday_=%1

echo *******************************************************************************
echo ***                                                                         ***
echo ***                   ESTA PANTALLA SE PUEDE MINIMIZAR                      ***
echo ***                                                            (VER 080111) ***
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 "%sweep%"=="NO" goto FinSweep
   echo %date% %time% - Sweep
   echo %date% %time% >> copia_%nombre%_%weekday_%.log
   echo %date% %time% - Sweep %IPori%:%origen%%nombreBD%.fdb >> copia_%nombre%_%weekday_%.log
   echo GFix %IPori%:%origen%%nombreBD%.fdb >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   "C:\Archivos de programa\Firebird\Firebird_1_5\bin\gfix" -sweep %IPori%:%origen%%nombreBD%.fdb -user SYSDBA -pass masterkey
:FinSweep

if "%ftp%"=="NO" goto FinFTP
   echo %date% %time% - Envio de Reportes
   echo %date% %time% >> copia_%nombre%_%weekday_%.log
   echo FTP a repositorio >> copia_%nombre%_%weekday_%.log
   echo -------------------------------------------------------------------------------- >> copia_%nombre%_%weekday_%.log
   if exist ftp_%nombre%_%weekday_%.txt del ftp_%nombre%_%weekday_%.txt
   echo open 192.168.1.250> ftp_%nombre%_%weekday_%.txt
   echo user tec>> ftp_%nombre%_%weekday_%.txt
   echo paralelogramo>> 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
      echo cd cliente023>> ftp_%nombre%_%weekday_%.txt
      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 tmp$$$.bat del tmp$$$.bat
if exist la.bat del la.bat
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

Última edición por duilioisola fecha: 01-02-2008 a las 14:58:12.
Responder Con Cita
  #6  
Antiguo 01-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por duilioisola Ver Mensaje
Te equivocas

El backup se hace en una transacción, por lo que todo lo que ve el backup es lo que ha sigo grabado definitivamente (commit).
Si, pero, ¿Si se hace un Commit mientras se esta haciendo el Backup?, supongo que el backup no tomara en cuenta ese ultimo Snapshot ¿O si?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #7  
Antiguo 01-02-2008
gendelphi gendelphi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Tlaxcala Mexico
Posts: 73
Poder: 21
gendelphi Va por buen camino
Por supuesto que no se tomará en cuenta, ya que ese COMMIT realmente pertenece a otra transacción distinta a la transacción bajo la que se está ejecutando el respaldo. El respaldo solo contendrá los datos que existan en la base de datos al momento de que se inicia la transacción del respaldo.
Responder Con Cita
  #8  
Antiguo 01-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por gendelphi Ver Mensaje
Por supuesto que no se tomará en cuenta, ya que ese COMMIT realmente pertenece a otra transacción distinta a la transacción bajo la que se está ejecutando el respaldo. El respaldo solo contendrá los datos que existan en la base de datos al momento de que se inicia la transacción del respaldo.
mmm, entendido . Entonces el SnapShot sera el que es al momento de iniciar el Backup, garantizando que no habran inconcistencias en el restore, pero si hay nuevas transacciones que generen nuevos cambios a los datos en el momento que se este realizando el Backup, se perderan en caso de reemplazar la base de datos "original" por una restaurada...
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #9  
Antiguo 01-02-2008
danilo_candales danilo_candales is offline
Miembro
 
Registrado: nov 2007
Posts: 28
Poder: 0
danilo_candales Va por buen camino
Si. Está claro... Varios motores de bases de datos tienen esa posibilidad. Al menos es algo.. Si se quiere garantizar un backup "completo" entonces hay que hacerlo en un horario donde se sepa que no hay movimientos...
Si es una base de datos de carga constante las 24 horas, con esta funcionalidad, si sucede algún desastre, es lo mismo que con cualquier otra base de datos, la recuperación es el último backup y lo perdido... perdido está...
Una gran ventaja por encima de otros, que debe detenerse el servico y parar la operación. Digo yo....
Responder Con Cita
  #10  
Antiguo 01-02-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jhonny Ver Mensaje
¿Ahhh si?, No lo sabia , pero me imagino que solo se pueden hacer consultas, porque en caso de modificar, insertar o borrar un dato, tendriamos una inconsistencia de los mismos a la hora de hacer el restore ¿o me equivoco?.
Tal y como te han respondido, el backup se realiza como una 'transaction' más y, obviamente, los datos nuevos, modificados y borrados durante la transaction no se copiarán, en el backup irá la "realidad del mundo" que existía justo cuando se inició el backup.

Pero cuando un sistema está trabajando las 24 horas del día, y no se puede parar para hacer un backup, es una suerte contar con esta característica.



P.d.: esta misma mañana estaba conectado mediante ultravnc a uno de nuestros clientes y necesité hacer un backup antes de "tocar" la base de datos, por si acaso, es mejor prevenir. Entré en la opción de copias de seguridad de nuestra gestión comercial y apareció el mensaje: "Ahora mismo hay 35 usuarios conectados al sistema, ¿hacer el backup?" ... y pulsé en el botón "Sí"
Sin problemas, evidentemente.

Última edición por Casimiro Notevi fecha: 01-02-2008 a las 20:37:54.
Responder Con Cita
  #11  
Antiguo 01-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Muchas gracias por la aclaración amigos . Realmente no lo sabia... A ver, pero como dicen en alguna parte, "Si no gana la empata" , me confundio un poco la palabra que usan, osea Transacción, para referirse al SnapShot, tengo entendido que una transacción es una cosa que se le pida o envie a la BD, ya sea un select, update, insert, create, drop, alter, etc... pero un SnapShot es una "foto" consistente de los datos al momento de iniciar una transacción.

Bueno, ustedes me diran si por lo menos logre empatarla .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #12  
Antiguo 02-02-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jhonny Ver Mensaje
pero un SnapShot es una "foto" consistente de los datos al momento de iniciar una transacción.

Sí, esa descripción es más real y entendible.
Responder Con Cita
Respuesta



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
Problemas a restaurar un backup en firebird 2.0.1 IVAND Firebird e Interbase 3 04-11-2007 17:02:32
Backup en Firebird Val Conexión con bases de datos 2 26-06-2007 12:11:24
Backup en Firebird JulioGO Firebird e Interbase 4 15-12-2006 22:03:12
Problemas en backup, Firebird 1.5... Berto2003 Firebird e Interbase 0 13-12-2006 12:26:18
Backup desde un cliente de Firebird Kira Firebird e Interbase 9 03-03-2004 16:49:56


La franja horaria es GMT +2. Ahora son las 07:55:21.


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