[firebase-br] Antivirus Servidor de Banco

Gladiston Santana gladiston em vidy.com.br
Seg Maio 16 16:03:03 -03 2016


O aplicativo a que se refere pode ter sua execução agendada pelo Windows?
se sim, tá resolvido o problema.
Mas calma aí, não é muito saudável fazer atualizações com o banco em uso,
mesmo que o banco permita, você deve considerar o cenário que tem em mãos.

A execução dum script que contenha um ALTER/DROP pode encontrar um recurso
em uso e aí o script não prossegue enquanto o utilizador do recurso não
concluir, mas se o script já deu o ponta pé inicial em algumas atualizacoes
 então os usuarios que se conectarem ao recurso atualizado terão também um
deadlock ou um timeout então temos um bloqueio simultâneo, igual ao
tabuleiro de damas onde a peça não pode se deslocar para frente e nem para
trás, deu mico e o jeito é esperar por um timeout dos usuários que pode não
ocorrer porque estão sempre dando retry e tentando de novo.

Por não saber o que está acontecendo o mais provável é que alguém
responsável pela manutenção do servidor e que desconhece o problema culpe o
sistema politico, a microsoft, o firebird e reinicie o sistema ao invés dum
procedimento de shutdown do banco e reinicia o servido e você tem um
cenário muito ruim de transações interrompidas abruptamente e talvez
perdido buffers que não foram despachados para o disco.
O servidor, no próximo reinicio tentará se recuperar voltando o
versionamento ao ultimo checkpoint estável, os usuários reclamarão de dados
que sumiram na melhor das hipoteses, na pior, o script aplicou certas
atualizações e deixou outras e você tem frank.fdb ou uma base corrompida.

Atualização de base que envolvam scripts com CREATE, ALTER e DROP são
críticos e o programador do script deve fazê-lo de um jeito previsível de
forma a ser "pessimista" .

Um procedimento mais cauteloso com atualização de banco de dados seria
encadear os passos:
1. banco de dados em modo de atualizacao (fecha as conexoes e só o sysdba é
aceito)
2. Faz o backup
3. então prossegue com a execução do script.
4. Shutdown em modo online para liberar todos usuarios usufruirem dele.
Cada vez que um dos passos for concluido então testar o  'exit status=0' -
que significa sucesso - então ir para o passo seguinte.

Essa ordem de execução você pode fazer com o agendador de tarefas do
Windows num horário mais conveniente desde que um dos programas envolvidos
não tenha que ser assistido, isto é, espere alguém clicar no botão para
prosseguir porque aí quebra suas pernas e terá de fazer hora extra.



Mais detalhes sobre a lista de discussão lista