![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Respaldo Base de Datos
Un cliente me ha solicitado que le de un script para hacer un respaldo de la base de datos y despues con un software que el tiene se programen los respaldos de toda la informacion que desee. Hasta aqui no hay duda. Le envie el script con el comando gbak sin embargo me indica que su software de respaldo antes de ejecutar el comando verifica que no se este ejecutando el servicio, por lo que al detectar que el firebird esta funcionado aborta ese respaldo. Existe algun comando para detener la base de datos y otro para arrancar la base de datos? y asi poder insertar estos al principio y fin de mi script? ![]() |
|
#2
|
|||
|
|||
|
puedes hacer un .bat
echo RESPALDANDO Firebird Server NET STOP "Firebird Server - DafaultInstance" COPY c:\direcorio\base.fdb c:\Respaldos\ NET START "Firebird Server - DafaultInstance" Siempre y cuando lo tengas funcionando como un SERVICIO de Windows.. Si utilizas el Guardian seria asi: echo RESPALDANDO Firebird Guardian NET STOP "Firebird Guardian - DafaultInstance" COPY c:\direcorio\base.fdb c:\Respaldos\ NET START "Firebird Guardian - DafaultInstance"
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton Última edición por pcicom fecha: 03-10-2007 a las 18:29:05. |
|
#3
|
|||
|
|||
|
los backups se pueden hacer en "caliente", no hace falta parar la base de datos en realidad.. y es más seguro que hacer un copy.. yo buscaría en internet por ese lado
salu2 |
|
#4
|
||||
|
||||
|
¿ 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. |
|
#5
|
||||
|
||||
|
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
|
|
#6
|
||||
|
||||
|
No me funciona el NET STOP fbserver.
Código:
C:\>NET STOP fbserver Error de sistema 1060. El servicio especificado no existe como servicio instalado. C:\>NET STOP fbguard Error de sistema 1060. El servicio especificado no existe como servicio instalado. Tengo el Firebird 1.5 Server instalado como servicio. y ya que estamos... ¿cómo se puede ver una lista de los nombre de los servicios? |
|
#7
|
|||
|
|||
|
debe se ser como sigue:
Si lo tienes como SERVICIO NET STOP "Firebird Server - DefaultInstance" Si lo tienes con el Guardian NET STOP "Firebird Guardian -Default Instance" Y para INICIARLOS Si lo tienes como servicio NET START "Firebird Server - DefaultInstance" Si lo tienes como Guardian. NET START "Firebird Guardian - DefaultInstance" Y Listo... De echo el comando NET START / NET STOP detiene cualquier servicio de WINDOWS siempre y cuando no sean del sistema, y puedes usarlo como tu quieras... La ventaja que le veo a este METODO de detener el servicio, es la simplesa, ya que no requiere comandos complejos, simplemente cambiar los datos de tu .bat y Listo SALUDOS..
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
|
#8
|
|||
|
|||
|
si firebird tiene un programa de backup en caliente porque todo el mundo insiste en parar el servidor... vamos que no es tán dificil de usar..
=) |
|
#9
|
|||
|
|||
|
Graci por los mensajes
Hola, lo de parar el servidor tiene una razon.
Mi cliente me indica que su software de respaldos valida que no este ejecutandose ningun proceso. Esa es la razon. Saludos |
|
#10
|
|||
|
|||
|
BacKups
Opino, humildemente que no hay que parar el servidor, Firebird realiza backups en caliente, de la ultima transacción aceptada, y en el directorio o disco que le indiques.
En ese respaldo, no se ejecuta ningún proceso, ja que es un simple fichero. En cualquier sistema operativo, siempre se estan ejecutando procesos. Las cintas de backups, no realizan copias de ficheros abiertos, la base de datos firebird, puede o no estar levantada, dependiendo de que algun usuario este accediendo. Pero lo que seguro, no esta abierta es la copia de seguridad. Puedes realizar cualquier utilidad de GBack, incluso programarte ( jo lo tengo asi ) un pequeño ejecutable, con los IBX o MDO, i desde programador de tareas de Windows, programo las veces que quiero arrancar ese ejecutable, que me realiza la copia. Tengo respaldo de la base de datos, las veces que se me antoje al cabo del dia. Si a la noche una cinta, me recoje los backup. Pues casi a prueba de bombas. Bueno eso creo Saludos
__________________
Gabriel |
|
#11
|
||||
|
||||
|
Con respecto a ese sotware de respaldos
1. No me gusta. ![]() 2. Quizás sea configurable y se le pueda decir que pase por alto los procesos de Firebird 3. Solo debería hacer copia del backup. Hacer copia de la base no garantiza que se pueda usar posteriormente. |
|
#12
|
||||
|
||||
|
Cita:
|
|
#13
|
||||
|
||||
|
Se han mezclado dos técnicas y hay que aclarar ambas.
1- pcicom en su primer mensaje:Copiar el fichero de la base de datos. Como ya han dicho, no garantiza que después se pueda acceder. Se trata de parar el servicio, copiar el archivo fdb y después poner en marcha el servicio2- Gabriel: Realizar Backup propiamente dicho. Usar Gbak creando un fichero *.FBK Si el cliente pide que se pare el servicio, tendrás que lanzar el gbak y cuando termine, entonces parar el servicio Firebird. Y cuando quieras volver a arrancarlo. Realmente no es necesario parar el servicio Firebird.Es importante no mezclar las dos técnicas, porque si paras el servicio de Firebird, ¡¡nadie podrá conectarse a ninguna base de datos Firebird en ese ordenador!! y eso incluye a la utilidad gbak, gfix, tu programa Delphi, etc. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 04-02-2008 a las 17:08:48. |
|
#14
|
|||
|
|||
|
Respaldos Firebird
Hola
Como comente antes Llevo años realizando copias de seguridad con GBack, sin parar el servicio Firebrid. He tenido que recuperar, algunas, (no demasiadas, Firebrid es demasiado bueno) solamente un par por caidas de rallos. Recuperar copia (echa en caliente) i listo a trabajar de nuevo. Como comente tambien, tengo un ejecutable echo con IBX, para ir mas rapido i no tener que teclear. Por cierto, desde la version Interbase 6.0 i luego Firebird 1, sin problemas. Asegurado No hay que parar el servicio. Por cierto para recuperar una copia, tiene que estar el servicio levantado, pero ningun usuario conectado. Saludos
__________________
Gabriel |
|
#15
|
||||
|
||||
|
Hay algun comando que desconecte a todos los usuarios o que suspenda el servicio parcialmente (para que solo se pueda usar el gbak) o algo asi?
|
|
#16
|
|||
|
|||
|
Restaurar Base de Datos
Creo, que si, pero ahora mismo lo desconozco.
Jo, lo que hago, es desconectar el servidor de la red y recuperar la copia. Pero como te comente antes, Firebird, falla muy poco. En años, creo que he tenido que recuperar 2 o 3 copias, por rayos e incluso una vez, por que llenaron el disco, donde estaba la base de datos. Pero, el que te comento, que he tenido que recuperar un par de copias, lo tengo montado, en mas de 70 ordenadors. mas o menos cada 20 atacan a un servidor diferente. Tengo una utilidad, que la activo, con el programador de tareas de windows, y me hace un par de copias diarias.
__________________
Gabriel |
|
#17
|
||||
|
||||
|
Podrías usar mensajes.
Cuando entras para realizar una tarea, ejecutas un procedimiento almacenado que tiene un "post_event 'Salir-Usuarios' ". Todos los usuarios que estan conectados a la base de datos, reciben ese evento, (tu aplicación usará un TIBEvents para detectarlo), y pones en marcha una cuenta atrás para cerrar tu aplicación. A veces los usuarios se van a tomar café y dejan el equipo encendido, así puedes cerrar por código Delphi la conexión al servidor y la base de datos. Si paras el servicio, tendrás que adaptar tu aplicación para capturar ese error y sustituir el mensaje "Database unavailable" por "Se está realizando un mantenimiento en la base de datos". Si quieres hacer un gbak en caliente, podrías crear un archivo en el servidor (si tienes permisos) "HaciendoMantenimiento.txt" y tu aplicación detectar si existe. Cuando termines el gbak, borras ese archivo para que todos puedan entrar de nuevo. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 06-02-2008 a las 10:19:15. |
![]() |
|
|
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 |
|