Ir ao conteúdo
  • Cadastre-se

Outro Usando o GBAK em múltiplos bancos via linha de comando


Posts recomendados

Boa tarde, estou criando uma nova rotina para gerar backup dos arquivos de banco de dados através do GBAK do firebird, porém ele só permite que eu faça o backup de 1 banco por vez.

 

Queria criar uma .bat que executa o gbak pasta por pasta (salvando o backup dentro da própria pasta do banco), porém não tenho ideia de como fazer isso, pensei em até dentro de cada pasta com o banco de dados deixar um .bat com o gbak, porém a cada adição de um novo banco essa tarefa ficaria muito complicada.

 

A estrutura das pastas está abaixo, podem me ajudar?

 

c:\DADOS
         ├───Banco1

                         └───Banco.fdb 
         ├───Banco2

                         └───Banco.fdb
         ├───Banco3
                         └───Banco.fdb

Link para o comentário
Compartilhar em outros sites

O que exatamente o bat deve fazer? Esse Gbak permite comandos através do prompt?

 

P.S: Pelo que eu vi aqui é deve ser algo assim:


@echo off

gbak -t -user SeuUsuario -password SuaSenha dbserver:/db/Banco1.fdb C:\dados\Banco1\banco.fdb

gbak -t -user SeuUsuario -password SuaSenha dbserver:/db/Banco2.fdb C:\dados\Banco2\banco.fdb

gbak -t -user SeuUsuario -password SuaSenha dbserver:/db/Banco3.fdb C:\dados\Banco3\banco.fdb

Link para o comentário
Compartilhar em outros sites

16 horas atrás, ricardo_br disse:

O que exatamente o bat deve fazer? Esse Gbak permite comandos através do prompt?

 

P.S: Pelo que eu vi aqui é deve ser algo assim:

 


@echo off

gbak -t -user SeuUsuario -password SuaSenha dbserver:/db/Banco1.fdb C:\dados\Banco1\banco.fdb

gbak -t -user SeuUsuario -password SuaSenha dbserver:/db/Banco2.fdb C:\dados\Banco2\banco.fdb

gbak -t -user SeuUsuario -password SuaSenha dbserver:/db/Banco3.fdb C:\dados\Banco3\banco.fdb

 

Ele permite, mas o asterisco(*) por exemplo não funciona nele. Nesse esquema aí eu sei que dá certo, porém a cada adição de um novo banco eu teria que editar o .bat, eu queria um que não fosse preciso fazer isso, porém não consegui pensar em uma forma de fazer isso

 

Edit: Eu consigo salvar uma lista de todos os .fdb usando o dir, se eu conseguisse percorrer linha por linha desse arquivo salvando na variável e executando o gbak eu conseguiria meu objetivo também

 

Edit2: Consegui fazer a regra de backup que eu queria, obrigado pela ajuda, meu código ficou assim:

dir /b /s /ad /l c:\Dados >c:\lista.txt
set a=gbak -user SYSDBA -pas masterkey localhost:"
set b="\banco.fdb
set c="\banco.fbk
cd C:\Program Files\Firebird\Firebird_3_0
for /f "delims=" %%d in (C:\lista.txt) do %a%%%d%b% "%%d%c%

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...