Buscar

Correção de interbase corrompido

Código

Primeiramente para evitar corrupção é ter um Nobreak  no servidor para evitar queda de energia.
 
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.
 
 
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
 
Comandos para reparar o banco de dados

Devem ser definidos primeiramente o usuário e senha de seu banco de dados.
 
  SET ISC_USER=SYSDBA
  SET ISC_PASSWORD=masterkey
  SET PATH=%PATH%;c:arquiv~1borlandinterb~1bin
 
Note que a variável SET PATH poderá mudar de acordo com o diretório de instalação do interbase.
 
 
 
Passo a) ( 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
 
 Passo b) ( 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.
 
 Passo c) ( Reparar )
  gfix -mend -full -ignore banco_de_dados.gdb
 
È recomendável que repita o passo da letra B novamente para verificar se o banco continua corrompido, caso seja positiva a corrupção faça os procedimentos seguintes.
 
Backup do Banco de Dados
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
 
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
 
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Banco de dados
Adicionada dia: 06/05/07
Por: Rogerio De Oliveira Moitinho
Visualizada: 9583 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009