[firebase-br] backup via Internet (Bruno Garcia Silva)

Andrei Luís compuvale.software em gmail.com
Sex Dez 7 14:59:23 -03 2018


Falando em .cmd, segue o conteúdo de um .bat que utilizo a alguns anos,
funcionamento similar ao que o Gladiston descreveu. Utiliza gbak.

rem início do .bat
@echo off
cls

rem Formato do arquivo final (exemplo usando a data 01/01/2009 as 08:00
rem No Windows XP:    Backup_qui 01-01-2009_08h_00min.7z
rem no Windows Vista: Backup_01-01-2009_08h_00min.7z

if /I "%1" EQU "/reg" goto registrahorario
if /I "%1" EQU "/?"   goto instrucoes
goto backup

:backup
for /F "tokens=1-3 delims=/" %%A in ('echo %date%') do set ymd=%%A-%%B-%%C
for /F "tokens=1-2 delims=:" %%a IN ('time /t') DO set ymd=%ymd%_%%ah_%%bmin

rem Explicação das variáveis

rem pastabackuptmpsys    pasta temporária
rem stringbancosys       string de conexão com o banco
rem pastabackupfinalsys  pasta onde o backup será armazenado
rem pastarelatoriossys   pasta onde estão os arquivos de layout de relatório

set caminhoGbak=C:\Arquivos de programas\Firebird\Firebird_1_5\bin\gbak.exe
set caminho7Zip=C:\Arquivos de programas\7-Zip\7z.exe
set pastaBackupTmpSys=D:\Sistemas\Meu Programa\Dados
set stringBancoSys=localhost:D:\Sistemas\Meu Programa\Dados\MEU_PROGRAMA.FDB
set pastaBackupfinalSys=D:\Sistemas\Meu Programa\Backups
set pastaRelatoriosSys=D:\Sistemas\Meu Programa\Relatorios


del "%pastabackuptmpsys%\Backup_%ymd%.fbk"
del "%pastabackuptmpsys%\Backup_%ymd%.log"
del "%pastabackuptmpsys%\Backup_%ymd%.7z"

"%caminhoGbak%" -b -z -v "%stringbancosys%"
"%pastabackuptmpsys%\Backup_%ymd%.fbk" -Y
"%pastabackuptmpsys%\Backup_%ymd%.log" -user SYSDBA -password masterkey

"%caminho7Zip%" a -t7z -mx=9 -r "%pastabackuptmpsys%\Backup_%ymd%.7z"
"%pastabackuptmpsys%\Backup_%ymd%.*" "%pastarelatoriossys%"
del "%pastabackuptmpsys%\Backup_%ymd%.fbk"
del "%pastabackuptmpsys%\Backup_%ymd%.log"
copy "%pastabackuptmpsys%\Backup_%ymd%.7z" "%pastabackupfinalsys%"
del "%pastabackuptmpsys%\Backup_%ymd%.7z"

goto fim

:instrucoes
echo  Modo de uso
echo  Para criar um novo agendamento, para todos os dias da semana, na hora
desejada:
echo  backup_automatico.bat /reg 08:00
echo  onde 08:00 é o horario (hh:mm) para executar o backup
echo  Para criar agendamentos das 07:00 as 19:00 para todos os dias da
semana:
echo  backup_automatico.bat /reg all
goto fim

:registrahorario
if /I "%2" EQU "all"  goto registratodos
AT %2 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT
goto fim

:registratodos
AT 07:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 08:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 09:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 10:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 11:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 12:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 13:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 14:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 15:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 16:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 17:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 18:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT 19:00 /EVERY:segunda-feira,te,qa,qi,sexta-feira,s ,do
"%CD%\backup_automatico.bat"
AT
goto fim

:fim
rem fim do .bat








[]s
Andrei


Em sex, 7 de dez de 2018 às 09:44, Gladiston Santana <gladiston em vidy.com.br>
escreveu:

> Se estiver disposto a testar o nbackup, eu criei um script .cmd para
> executá-lo com o agendador de tarefas do windows.
> Ele tá rodando em desenvolvimento ainda não pus ele em producao porque
> ainda me restam algumas duvidas sobre ele.
> O script funciona direitinho e foi idealizado para colocar no agendador de
> tarefas do windows e rodar das 08 as 20h sendo de 1h em 1h,
> O primeiro backup nao importando o dia,é um backup nivel 0 (completo) e
> será a unica vez que faz isso, porque quando o script rodar novamente na
> proxima hora, isto é a segunda vez, fará um backup nivel 1(diferencial,
> copia apenas o que é diferente em relação ao ultimo nivel0) e quando roda
> nas vezes posteriores no mesmo dia serão todos backup nivel 2(incremental
> em relação ao ultimo nivel1). No dia seguinte, por ser um dia diferente,
> repete um novo nivel1 e sucessivos nivel2... repetindo o mesmo ciclo.
> Com esse modelo, num eventual sinistro, posso restaurar o backup nivel 0,
> escolher o dia do nivel 1 - geralmente o ultimo - e então determinar a hora
> dos arquivos nivel 2(incremental) para restaurar.
> Pelo que vi, será um nbackup -R banco.fdb arquivo-nivel0.bak
> arquivo-nivel1.bak arquivo-nivel2.bak.
> O script tá funcionando legal, mas ainda não entendi direito, porque nos
> meus testes de laboratorio eu especifiquei apenas o ultimo horario do
> backups -nivel 2 e ele restaurou! Fico imaginando, ué como ele pode
> recompor sem os outros 7 incrementais que fiz no mesmo dia.
> Você pode dizer, "ué porque se importar, afinal o importante é que
> restaurou", acontece que para mim, backup ou vocÊ compreende e usa segundo
> suas qualidades ou limitações ou é melhor nem usar.
> Então, tô aguardando respostas e horas de voo para depois prosseguir com o
> uso dele em produção, no caso de servidores Linux, será fácil migrar o .cmd
> para .sh(bash).
> Acho que vocÊ gostara desse tipo de backup porque você pode simplesmente
> usar uma conta onedrive, google drive, dropbox ou outra para sincronizar a
> pasta onde o backup esta com a nuvem. Tirando o backup nivel 0 que será
> monstruoso, os demais serao bem menores porque são cópias delta do backup
> antecessor.
>
> []´s e sucesso.
>
>
>
>
> Em qui, 6 de dez de 2018 às 18:40, Bruno Garcia Silva <
> brunogarcia69 em gmail.com> escreveu:
>
> > Obrigado pelas respostas mas esta do -v não sabia!!!
> >
> >  Na verdade o backup é feito localmente e que as vezes tenho que puxar
> uma
> > copia do BD para fazer alguns testes mais reais!
> >
> > "Pela internet"? Ou seja, seu servidor está remoto, e vc quer o
> > arquivo de backup gerado em uma máquina "local"?
> >
> > Se for isso, não use o -v com o gbak, pois oque já é lento ficará
> > absurdamente lento.
> >
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista