Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 06 de Outubro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
88 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Reparando Banco de Dados Interbase e Firebird
Publicado por johnklaus : Segunda, Agosto 07, 2006 - 10:36 GMT-3 (12670 leituras)
Comentários 19 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Um dos problemas mais sérios na corrupção do banco de dados interbase é a queda de energia no servidor de banco de dados durante o processo de gravação de dados de alguma aplicação. A interrupção do processo de gravação poderá resultar na gravação de dados incompletos ou corrompidos.

Precauções Básicas

É de extrema importância que o Administrador do Sistema e o próprio usuário tome os cuidados necessários para evitar este tipo de acidente.

 

Outra medida importante, é configurar adequadamente o modo de escrita (gravação) no banco de dados. O Interbase possui dois modos de escrita:

 

Síncrona e Assíncrona

 

Síncrona - Dados são gravados em disco imediatamente.

Assíncrona - É a escrita considerada "cuidadosa", pois os dados são gravados assim que a transação for commitada. A desvantagem é que em ambiente de trabalho windows, estas instruções são ignoradas, uma vez que o próprio sistema operacional controla estas tarefas. Em sistemas como Linux e/ou Unix, este tipo de escrita funciona muito bem.

 

A vantagem deste tipo de escrita é a performance, uma vez que o sistema operacional irá gerenciar o cache de dados. Mas é preciso ter uma política muito boa de backup, para o caso de acontecer algum problema de corrupção.

 

Na versão 6 do Interbase, assíncrona é a escrita padrão.

 

Ajustando a escrita

  gfix -write sync banco_de_dados.gdb
  //ajusta em modo Síncrono

  gfix -write async banco_de_dados.gdb
  //ajusta em modo Assíncrono

 

Reparando o banco

Inicialmente, poderíamos utilizar vários programas para proceder com a recuperação do banco de dados, mas o próprio Interbase possui uma excelente ferramenta para isso.

 

Esta ferramenta é o GFIX que se encontra instalado no diretório BIN do banco de dados, e funciona em linha de comando no Prompt do MS-DOS.

 

A primeira coisa a ser definida, para facilitar e muito o trabalho, é incluir variáveis de ambiente no sistema operacional, onde iremos definir usuário, senha e localização (path) do GFIX. Para tanto, inclua as linhas abaixo no arquivo AUTOEXEC.BAT e depois disso reiniciar o computador:

 

  SET ISC_USER=SYSDBA
  SET ISC_PASSWORD=masterkey
  SET PATH=%PATH%;c:\arquiv~1\borland\interb~1\bin

 

Note que a variável SET PATH poderá mudar de acordo com o diretório de instalação do interbase.

 

Caso o sistema operacional seja o Windows 2000, Windows 2000 Server ou Windows XP, você poderá incluir estas variáveis na opção "Variáveis de Ambiente" nas Propriedades do Sistema (Painel de Controle)

 

Lembrando que, a deverá ser observada a condição de Case-Sensitive para usuário e senha.

 

1º Passo ( Cópia e Acesso )

Sempre utilize uma cópia do banco de dados corrompido, além de possuir acesso exclusivo ao mesmo.

 

Proceda então com uma cópia utilizando o próprio windows explorer ou o MS-DOS, ex:

  copy banco.gdb copia.gdb

 

2º Passo ( Verificar )

Verifique se o banco de dados realmente se encontra corrompido utilizando o seguinte comando:

  gfix -v -full banco_de_dados.gdb

 

Caso o comando tenha indicado algum tipo de problema, aí sim iremos começar as rotinas de reparo do banco a seguir.

 

3º Passo ( Reparar )

  gfix -mend -full -ignore banco_de_dados.gdb

 

Após este procedimento, deveremos novamente verificar se o banco foi reparado, utilizando o comando do 2º Passo. Caso ainda assim o banco continue apresentando erros, o próximo passo será efetuar um backup completo e depois restaurá-lo conforme descrito adiante.

 

Backup do Banco de Dados

Da mesma maneira como utilizamos o GFIX do Interbase, poderemos utilizar o utilitário de backup, o GBAK, que também se encontra instalado no diretório Bin do Interbase / Firebird e funciona em linha de comando. Veja alguns comandos descritos abaixo:

  gbak -backup -v -ignore banco_de_dados.gdb arquivo_de_backup.gbk

 

Este é o comando em sua forma mais simples. Caso houver necessidade, por falhas no procedimento, por exemplo, poderá optar em incluir outras opções, como descrito abaixo:

 

Ignorar o "garbage collection".

  gbak -backup -v -ignore -garbage banco_de_dados.gdb arquivo_de_backup.gbk

 

Ignorar transações em limbo:

  gbak -backup -v -ignore -garbage -limbo banco_de_dados.gdb arquivo_de_backup.gbk

 

Após proceder com o backup, poderemos agora finalmente tentar a restauração do mesmo, descartando informações danificadas, corrompidas, etc.

 

Restaurando o Banco de Dados

Para a restauração do banco, podemos continuar a utilizar o utilitário GBAK, conforme descrito abaixo:

 

Restauração básica:

  gbak -create -v arquivo_de_backup.gbk novo_banco.gdb

Caso este procedimento relate erros, tente as seguitnes opções:

 

Não ativar indices durante a restauração:

  gbak -create -v -inactive arquivo_de_backup.gbk novo_banco.gdb

Após a conclusão da restauração, você deverá ativar os índices manualmente.

 

Restaurar uma tabela de cada vez:

  gbak -create -v -one_at_time arquivo_de_backup.gbk novo_banco.gdb

 

Este procedimento fará com que cada tabela seja restaurada e em seguida commitada, portanto desta maneira você poderá conseguir ao menos restaurar uma parte do banco de dados.

 

John Klaus Kanenberg - johnklaus
http://kanenberg.sytes.net



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados