sexta-feira, 28 de novembro de 2008

Diário de um DBA

Infelizmente qualquer semelhança com a realidade não é mera coincidência e os
fatos que são relatados neste diário são reais e podem ser encontrados em
muitas empresas brasileiras.



*07h:50. Chegada ao trabalho. Chego 10 minutos mais cedo para ver se consigo
adiantar alguma coisa antes que todos os analistas e o chefe cheguem, apesar
de ter saído mais tarde ontem. Como sempre acontece neste horário, um dos
analistas está com as duas páginas principais do jornal esportivo Lance!
abertas em cima da sua mesa. Ele me dá um olá e começa a comentar sobre os
melhores lances da partida do dia anterior.*

*08h:10. Finalmente o analista percebe que não estou interessado nos erros
do bandeirinha. Sento na minha desconfortável cadeira (o chefe é o único que
possui uma cadeira de couro e boa) e me logo na estação. 25 e-mails não
lidos, 8 são discussões a respeito de um usuário insatisfeito com um
sistema, 10 são spam, 1 é parabéns pelo aniversário de um funcionário que
não conheço. Os demais não consigo entender porque foram encaminhados para
mim, já que são sobre a especificação de um sistema que ainda nem foi
contratado.*

*08h:50. Após checar os logs de erros dos servidores descubro que um SQL
Server de uma filial foi reiniciada e não subiu. Logo pela VPN e já inicio o
serviço. Enquanto isso os analistas se divertem mandando os estagiários
atenderem os telefonemas dos usuários e dizer que os sistemas estão fora
porque os usuários pressionaram um botão errado. Sem sinal do chefe.*

*09h:05. Digitando um e-mail para o pessoal de infra cobrando uma explicação
do problema do reinício e demais pendências, entre elas: compra de mais
memória para o servidor (atrasado 1 semana), compra do novo nó do cluster do
SQL Server (atrasado 1 mês), instalação do service pack nas máquinas (já
perdi a conta do atraso) e autorização para acessar o site
www.microsoft.com que foi bloqueado pelo Firewall por engano. Ah, não
posso esquecer de mandar o e-mail para o help desk trocar o meu monitor
que apresenta uma faixa verde no meio da tela faz 3 semanas. Na última vez
que eles vieram trocaram o meu mouse ótico por um analógico e nem sequer
repararam no monitor.*

*09h:25h. Os analistas começam a receber os telefonemas dos usuários
enquanto eu vou pegar um café. Sem nenhuma surpresa descubro que o café é
basicamente o que sobrou de ontem requentado. Preparo um chá de camomila
enquanto ouço um analista conversando com um usuário:*

*"bla bla bla... o sistema funciona... bla bla bla... você quer que eu
resolva da maneira certa ou da maneira rápida? Bla bla bla..."*

*Penso comigo mesmo: lá vem. Ainda sem nenhum sinal do chefe.*

*09h:50h. Tentando voltar um backup em fita para o analista resolver o
problema do usuário que apagou uma linha da tabela de clientes por engano. A
fita de backup LTO contém 100 GB de dados, mas vou ter que arrumar um
servidor para descompactar o banco inteiro apenas para recuperar uma linha
que foi apagada pelo usuário. E o mais rápido possível, porque o analista
prometeu resolver "a parada" para o usuário em 5 minutos. Paro o processo de
remoção de arquivos contendo pornografia no servidor deixados pelo analista
que pediu demissão na semana passada. Começo a procurar a fita de backup no
meio do armário que é a casa de duas lagartixas e um aranha (apelidada
carinhosamente de Lady Aracnea, quase um mascote do setor).*

*10h:15. Perco uma aposta. Todo dia fazemos uma aposta para ver qual será o
horário que o analista conhecido como Irmão chegará. Desta vez ele chegou às
10:15, ainda longe de bater o seu recorde, que foi às 11:40. O ganhador foi
o estagiário que ficou 75 centavos mais rico. Na próxima eu acerto!*

*10h:45. O backup está restaurado com sucesso. Em cinco minutos volto uma
linha com o cliente que foi removido. Detalhe: somando todos os campos
tínhamos menos de 75 caracteres, que o usuário se negou a digitar novamente.
Volto aos meus afazeres já atrasados: reescrever uma stored procedure que
utiliza cursores em uma tabela de 100.000 linhas e que não continha nenhum
índice. Nada do nosso pouco-amado chefe.*

*11h:15. Temperatura Wars. Enquanto os analistas montam uma gang para
abaixar o ar condicionado, os estagiários, programadores e demais membros se
unem para aumentar a temperatura. Já posso ouvir o som de correntes e facas
sendo afiadas. Tento me isolar desta guerra e me concentrar na stored
procedure que tem nomes de variáveis iguais aos nomes de planetas: SATURNO1
para armazenar o código do cliente, PLUTÃO69 é o saldo do estoque de um
produto....*

*11h:32. Entrada triunfal do chefe. Posso ouvir o pressionar das teclas
ALT+TAB em cascata e conversas sendo abruptamente interrompidas. De fundo
quase dá para ouvir a marcha imperial do STAR WARS enquanto o chefe se
dirige à sua mesa que está no final da sala, onde ele pode ver o que está
sendo apresentado em todos os monitores.*

*11h:45. Início das discussão sobre o local do almoço pelo MSN. Uns querem
ir no restaurante por kilo e outros querem ir na padoca-barata-na-parede
porque é mais barato. Digo que vou em qualquer lugar, desde que aceite o meu
ticket de R$ 6,50 e dê para comer algo digno. O chefe se levanta e fala que
vai em uma reunião e volta só depois do almoço. Enquanto isso o Transaction
Log de um banco criado por um analista estoura e a HD do servidor fica sem
espaço. Preparo o meu Taser para fritar o desgraçado que criou um banco de
dados sem passar por mim.*

*11h:55. Ápice da produtividade. Posso ouvir mais de um teclado trabalhando
ao mesmo tempo na sala: o meu e mais o da analista consultora que trabalha
por hora e que é a única mulher do departamento. Finalmente decide-se que o
almoço vai ser na barraquinha de cachorro quente do tiozão em frente à
delegacia, pois de lá é possível ver os presos chegando e tirar um sarro com
a cara deles, de acordo com um programador.*

*11h:59. Ninguém respira. Todos os olhares apontados para o relógio da
parede. A tensão cresce, o suor escorre no rosto dos analistas. E eu rodando
um profiler no servidor de produção para descobrir qual sistema está
sobrecarregando o servidor de produção do ERP e do CRM. Resultado: um
programa de terceiro faz um loop para pegar a mesma linha dez vezes sem
nenhuma otimização na consulta.*

*12h:00. Saída para o almoço. Há um tunelamento de pessoas na porta do setor
que não é nada comparado à fila do elevador. Escolho descer 8 andares de
escada, onde passo pelos fumantes, o cara do almoxarifado dando uns amassos
na moça da copa e uma série de caixas de papelão contendo o servidor com o
nó de cluster que pedi! Finalmente descobri porque ninguém sabia onde ele
estava....*

*12h:15. Espera dos companheiros para o almoço já fora da empresa. Sempre
tem um que se desculpa dizendo que encontrou com o chefe no corredor.
Preciosos 15 minutos perdidos.*

*13h:05. Retorno do almoço. Obviamente alguns colegas se atrasam porque
foram passar no banco ou na farmácia. Como sempre, vem aquela solicitação
para o DBA rodar um UPDATE na tabela que contém o horário de entrada e saída
para almoço. Digo que vou pensar no caso.*

*13h:10. Começa o rodízio da ida ao banheiro. Como o departamento possui
apenas um toilette masculino, há muito tempo foi definida uma ordem de quem
vai escovar os dentes e outras "tarefas". O segundo analista que sai do
banheiro levanta os braços orgulhoso e diz que "a coisa tá feia". Com a
porta aberta começamos a sentir a radiação emanada pelo local. A consultora
faz o sinal da cruz e eu vendo a minha vez para ir ao banheiro para o
estagiário que decidiu comer três cachorros quentes com direito a todos os
acompanhamentos.*

*13h:20. Retorno meus afazeres montando uma rotina de expurgo. O sistema de
vendas da empresa tem pedidos desde 1980 armazenados na mesma tabela, que
diariamente recebe reclamações dos usuários a respeito da lentidão. Lembro
que comentei isso com o chefe, mas ele me reprimiu dizendo energicamente que
"talvez precisem dos dados um dia desses e devemos mantê-los na base".
Resultado: tenho que otimizar de outra forma.*

*13h:45. Soneca time. Com a barriga cheia e calor típico do nosso pais é
possível observar o fenômeno da cochilada presente no departamento. O
primeiro a dormir é o analista responsável pelo sistema de estoque, que
possui mais de 15 chamados em aberto (um bug está desde 2001 sem correção).
Há uma disputa para ver quem consegue fotografar com o celular primeiro a
performance da soneca.*

*14h:00. Vou para uma reunião com o pessoal de infra para cobrar as
pendências e, de acordo com o chefe, "alinhar o posicionamento estratégico
do nosso departamento com as demais áreas". Depois de 15 minutos esperando
chega o coordenador do suporte e de infra. Cobro as memórias, o nó do
cluster e a aplicação dos services pack. Eles me dão os parabéns por ter
achado o servidor perdido no corredor. Depois de 5 minutos não dá mais para
a continuar a reunião porque os celulares deles não param de tocar. Reunião
adiada para semana que vem.*

*14h:30. Volto para o departamento. Um analista me chama à sua mesa para que
eu dê uma olhada no diagrama entidade relacionamento que ele montou. Quando
cito a terceira forma normal ele faz uma cara de quem viu a Dercy Gonçalves
sem roupa. Perco mais 20 minutos tentando explicar o que é normalização,
dependência funcional, chaves primárias compostas...*

*14h:52. O chefe liga para mim desesperado e diz que ainda está no almoço.
Ele quer um plano de ação para a instalação de um novo servidor de banco de
dados em uma filial nova da empresa, que será criada em uma cidade com menos
de 50.000 habitantes. Ah, ele quer este documento no e-mail dele em 10
minutos, sendo que eu nunca tinha feito um plano de ação antes.*

*15h:20. Fiz o meu melhor para montar o plano de ação, mas quando estava no
final o link com a Internet cai. Ao primeiro sinal que ninguém mais consegue
checar o e-mail vejo tabuleiros de dama, dominós, baralhos e até uma gaita
aparecerem no departamento. Ligo para a infra e descubro que "por um motivo
desconhecido" a redundância de link com a Internet não foi acionada. Sem
previsão de retorno. Pego o meu caderno e começo a organizar as pendências,
tarefas e demais assuntos. Aproveito a pausa para fazer algumas ligações:
ligo para a empresa do sistema de catracas que exigiu que a senha do login
fique em branco para que o sistema funcione. Cobro novamente o meu monitor
com o suporte. Fico 15 minutos no telefone com o pessoal do Data Center para
explicar a eles que a estratégia de backup é falha, insegura e que é preciso
uma revisão no processo.*

*16h:00. O chefe chega do almoço nervoso e após dar dois socos na mesa
resolve ele mesmo descer até o departamento de infra e cobrar o retorno do
acesso à Internet. Milagrosamente o link volta depois de 2 minutos que ele
saiu da sala.*

*16h:20. Há um chamado urgente do suporte que é encaminhado ao analista: o
sistema de RH está lento e se continuar assim não será possível fechar a
folha de pagamento a tempo. Pressão psicológica, imagino eu, pois se o
sistema não voltar a funcionar teoricamente ninguém recebe o pagamento no
final do mês e a culpa é da TI. O analista não tem a menor idéia do que o
módulo faz, pois não foi ele quem desenvolveu e esta parte sempre funcionou
bem. Lá vou eu parar o que estava fazendo para rodar um profiler, analisar
plano de execução, seguir a seqüência de encadeamento de triggers. Nem me
preocupo em perguntar sobre a documentação para o analista, pois aprendi da
pior maneira que a palavra documentação por aqui representa um mito.*

*17h:00. Descobrimos o erro. Havia dois triggers com cursores encadeados
dentro da tabela que armazena os recebimentos da empresa. Após retirar os
cursores, otimizar os triggers e testar o sistema convenço o analista a
gerar uma nova versão e atualizar o executável. Como resposta do usuário
recebo um "ainda bem que a TI resolveu desta vez". Mais um feliz usuário que
não tem a menor idéia da complexidade do sistema e do banco de dados.*

*17h:05. O chefe vai embora. Depois de olhar o documento que eu me esforcei
para montar (o tal do plano de ação) ele me diz que a diretoria resolveu
cancelar a criação da nova filial hà cinco minutos. Mais uma vez, ele vai
embora e diz que todas as horas extras vão para um banco de horas que será
negociado no futuro. Alguns analistas já mantêm uma atualização diária do
currículo. Volto a trabalhar na rotina de expurgo.*

*17h:40. Com os dedos cruzados torço para ir para casa no horário. Atualizo
a planilha de tarefas semanais e bate uma tristeza quando vejo que faz 10
dias que não consigo sair antes das 19:00.*

*17h:55. Tensão no departamento. Todos já estão devidamente enfileirados
para ir embora quando o telefone toca. Todos olham uns para os outros e
ninguém se arrisca a atender. Como é o telefone da minha mesa sobra para
mim. Resultado: a filial da região Sul perdeu o HD e é preciso instalar
novamente o banco de dados inteiro, pois amanhã é dia de grande movimento.
Enquanto procuro os CDs de instalação do SQL Server 2000 (sim, ainda não
houve migração para o 2005) ouço todo mundo ir embora e fazer piadinhas
sobre a vida dura que é ser um DBA.*

*19:35. Finalmente terminei. Instalação, restoração de backup, configuração
de opções do servidor, criação de logins, permissões, servidores linkados,
dispositivos de backups, jobs, alertas, acerto da collation, recriação e
reindexação de índices. Tudo isso pronto em quase uma hora e meia. Já estou
ficando bom nisso, porque da outra vez eu demorei três horas para fazer tudo
isso de madrugada. Pego minhas coisas e vou embora quando já é noite, apenas
para descobrir que o estacionamento da empresa cobra taxa adicional para
saídas fora do horário normal.*

Nenhum comentário:

Postar um comentário