Firebird 2.1: gfix -online retorna "desligamento do banco de dados"

2

Pesquisando este, não faz muita diferença, infelizmente, já que a maioria dos resultados especificam a sintaxe para onlining de um banco de dados após usar gfix -shut -force 30 (ou qualquer outro número de segundos) como gfix -online dbname , e eu executei gfix -online dbname com e sem credenciais de login para o DB em questão.

A mensagem que recebo é:

database dbname shutdown

O que é bom, exceto que eu quero trazê-lo online agora. Está fora de questão fechar o fbserver.exe (rodando em uma caixa do Windows, o afaik é o Classic Server 2.1.1 mas pode ser Super) já que temos outros bancos de dados rodando fora do que precisa de quase 24 / 7 uptime. A mensagem de fazer outro gfix -shut -force ou -attach ou -tran é Target shutdown mode is invalid for database dbname , que parece corresponder à documentação do que acontece se o banco de dados já estiver totalmente desligado. A mensagem Target shutdown mode invalid também aparece se eu usar -online single ou -online multi , mas não -online / -online normal .

Idéias e sugestões muito apreciadas, especialmente porque no momento o tempo é um fator importante para mim. Obrigado!

EDIT: O motivo de eu desligar o banco de dados é limpar as transações "ativas" que estavam vinculadas a um endereço IP específico, e esse computador é meu terminal dev (na verdade, uma máquina virtual onde desenvolvo frontends para o software de banco de dados ) mas não tive nenhum processo de conexão ao banco de dados no momento. Eles pareciam transações órfãs para mim, e eles não estavam no limbo afaik. A execução de uma varredura manual não as eliminou, pois a exclusão das linhas do MON $ STATEMENTS não funcionou, embora o Firebird 2.1 supostamente suporte o cancelamento de consultas dessa maneira. Meu último recurso foi "reiniciar" o banco de dados, daí a questão acima.

EDIT 2: Apenas notei isso em 2.1.3 notas da versão:

A regression issue surfaced with the implementation of the new gfix shutdown modes when shutdown is called with the -attach or -tran options. If connections are still alive when the specified timeout expires, the engine returns a message indicating that the shutdown was unsuccessful. However, instead of leaving the database in the online state, as it should, it puts the database into some uncertain “off-line” state and further connections are refused.

Eu usei -shut -force 30 para que não seja afetado. No entanto, após os 30 segundos a chamada não retornou corretamente, e depois de esperar aproximadamente 3 minutos eu fechei meu tty para o servidor (máquina virtual linux na caixa do servidor Windows), que pode ou não ter abortado a operação gfix. A execução de ps não mostra nenhum processo de gfix. Querendo saber se isso colocou o banco de dados em um "estado incerto" ...

    
por darvids0n 29.04.2010 / 05:40

2 respostas

4

use online

gfix  -user "SYSDBA" -password "masterkey"  -online DATA.FDB

após o banco de dados ser usado novamente

gfix  -user "SYSDBA" -password "masterkey"   -shut -force 0 DATA.FDB
    
por 07.07.2013 / 11:31
1

Eu também tive o mesmo problema, recentemente o que eu fiz foi primeiro eu parei o serviço FB e então eu matei todas as conexões fbclient no servidor. Reiniciei o fbservice e usei o cmd do servidor virtual. espero que isso ajude

    
por 30.04.2013 / 11:59