quarta-feira, 31 de dezembro de 2014

2014/2015

Desde o dia 29/12 estou escrevendo um post que ainda não acabei, então para não passar em branco o fim de ano, vai aqui um daqueles posts rápidos…

Desejo a todos um excelente ano de 2015, com muita realização profissional e pessoal, onde que cada um possa rever o que errou, para não fazer igual, melhorar o que acertou, e mais importante, investir em você. Seja investir seu tempo com a família, em estudos, no trabalho atual ou em um novo emprego.

Vou aproveitar para descansar durante alguns dias, deixando meu celular para trás e me desconectando. Quero relaxar e organizar mil ideias, que andam comigo todos os dias, pedindo mais atenção e dedicação.

Em 2015 tenha certeza estarei mais presente neste blog, e quem sabe com novidades…

Ah, por último e não menos importante, publiquei novas turmas da Nimbus para 2015: http://www.srnimbus.com.br/calendario/turmas/turmas-sql/
E o grande destaque vai para nossa primeira (de muitas) turma de Data Science: http://www.srnimbus.com.br/calendario/turmas/turmas-ds/

Até o próximo ano! Sucesso!

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

segunda-feira, 8 de dezembro de 2014

[SQLServerDF] Encontro XXIII - Azure Machine Learning

Nesta semana vamos aproveitar que o PFE Thiago Zavaschi está em Brasília para mais uma palestra do SQLServerDF.
Já sabem o que fazer, por favor confirmar presença com nome e e-mail no google groups. Para aqueles que não estão no grupo, basta ir até http://groups.google.com/group/sqlserverdf, fazer sua inscrição e aguardar minha moderação.

Palestra: Azure Machine Learning - AzureML
Palestrantes: Thiago Zavaschi
Data e horário: 11/12/2014, entre 18:00h e 20:00h
Local: Auditório da Microsoft - Brasília

Descrição:
Nessa sessão vamos ver o que é aprendizagem de máquina e a função de um cientista de dados, em que cenários se aplica. Vamos aprender como utilizar a plataforma de aprendizagem de máquina na nuvem da Microsoft (AzureML) e criaremos um modelo completo para verificar o seu funcionamento.

Mini-CV:
Thiago Zavaschi é mestre em computação na área de reconhecimento de padrões pela PUC-PR. Atualmente trabalha como Premier Field Engineer nas áreas de Business Intelligence e Data Warehouse na Microsoft.

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quinta-feira, 27 de novembro de 2014

[SQLServerDF] Material - Pragmatic Data Science

Na terça-feira eu e meu amigo (doido) Ivan Lima fizemos uma palestra intitulada Pragmatic Data Science para o SQLServerDF.
Atualmente estamos dedicando um bom tempo (full time no caso do Ivan), para desenvolvermos nossas habilidades relacionadas com ciência dos dados.

Quem não foi perdeu, além de instrutiva tivemos dúvidas muito interessantes a respeito da ciência dos dados, big data, Hadoop, entre outros.

Abaixo algumas referências:

• O PDF da apresentação: https://onedrive.live.com/redir?resid=E145F7753042D628!3059&authkey=!APJjc_zD_RSqsoM&ithint=file%2cpdf
• Livro de Hadoop que eu comentei em sala: http://www.amazon.com/Hadoop-Definitive-Guide-Tom-White/dp/1449311520

Se você perdeu a apresentação, basta estudar as tecnologias que estão no mapa deste artigo que você vai se dar bem: http://nirvacana.com/thoughts/becoming-a-data-scientist/

Moleza! :-)

E claro, não posso deixar de anunciar que no próximo ano teremos cursos de Data Science na Nimbus!

********* UPDATE *********

Aproveito e deixo aqui duas fotos do encontro (finalmente lembrei de tirar fotos!), uma do grupo e a outra do Ivan encontrando um serial killer.




Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quinta-feira, 20 de novembro de 2014

[SQLServerDF] Encontro XXII - Ciência dos dados, uma visão pragmática

Oi pessoal, encontro diferente no SQLServerDF na próxima semana.
Já sabem o que fazer, por favor confirmar presença com nome e e-mail no google groups. Para aqueles que não estão no grupo, basta ir até http://groups.google.com/group/sqlserverdf, fazer sua inscrição e aguardar minha moderação.

Palestra: Ciência dos Dados - Uma visão pragmática
Palestrantes: Ivan Lima e Luciano Moreira
Data e horário: 25/11/2014, entre 17:30h e 19:30h
Local: Auditório da Microsoft - Brasília

Descrição:
Abordaremos conceitos e técnicas da Ciência dos Dados através da visão de um DBA e um “ex-DBA”. Será apresentada uma visão geral sobre o assunto e em seguida veremos as principais diferenças e semelhanças da Ciência dos Dados em relação a BI e mineração de dados. Serão discutidas quais as técnicas utilizadas, algumas das ferramentas e linguagens utilizadas, os equívocos mais comuns em relação a essa nova área de atuação e, claro, uma orientação básica como encarar esse novo e promissor mercado de trabalho.

MINI-CVs:
Ivan Lima atua na área de tecnologia da informação há quase uma década. Estudante de Ciências Econômicas, atualmente se dedica a análise e mineração de dados, focando em técnicas e métodos estatísticos, econométricos e de Machine Learning, realiza palestras e treinamentos sobre o assunto, atualmente atuando como consultor da Sr. Nimbus.
Luciano Moreira [Luti] é um geek louco por bancos de dados.  Possui certificações Microsoft, IBM e é MVP, líder do grupo SQLServerDF. Sócio e consultor da Sr. Nimbus, DBA DB2 no Sicoob. O pessoal de Brasília já o conhece bem, então não vai gastar mais tempo nesse mini-cv...

Abraços,

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br www.twitter.com/luticm
www.srnimbus.com.br

sexta-feira, 3 de outubro de 2014

Sessões no PASS Summit 2014

Ontem eu montei minha agenda para o PASS Summit 2014, que acontecerá em novembro, na nossa queria Seattle. Na verdade a minha semana será bem cheia, pois em seis dias participarei do MVP Summit e do PASS Summit, então pense em sessões com muito deep dive técnico. Vai ser bbeeemm cansativo, mas excelente para qualquer sqlgeek!

Um ponto interessante deste ano é a quantidade de brasileiros vão ao evento. Muita gente mesmo, são os Brazucas invadindo Seattle! Se você está nessa condição não deixe de nos avisar, pois temos um grupo no facebook e dicas (já escrevi parte de um post) para todos.

Como não posso deixar de destacar, vejam algumas sessões do PASS deste ano... J

[DBA-502] Advanced Data Recovery Techniques – Paul Randal
[DBA-500-HD] Inside SQL Server I/O – Bob Ward
[DBA-501-HD] Locking Internals Deep Dive – Bradley Ball
[DBA-403] High Performance Infrastructure for SQL Server 2014 - Michael Frandsen

Gostou? Então já vai fazendo sua reserva financeira para o PASS do próximo ano.

Abraços,

sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

terça-feira, 30 de setembro de 2014

Material do SQLSat #325

No fim de semana que passou eu tivemos mais um SQLSat no Brasil, dessa vez em São Paulo. Novamente foi um prazer reencontrar a comunidade técnica e amigos, mas o que me surpreendeu mesmo foi a quantidade de ex-alunos da Nimbus no evento. Isso mostra que nosso público está interessado em aprender continuamente, o que justifica serem excelente profissionais em suas empresas.

Abaixo segue link para download do conteúdo e comentários sobre minhas palestras.

Entendendo o paralelismo no SQL Server
Essa foi a mesma sessão que eu apresentei no SAT de Porto Alegre, mas particularmente eu preferi essa apresentação. Acho que fui mais consistente e passei tudo o que eu queria, com uma excelente recepção por parte do público. A parte chata foi que faltando uns 20 minutos para terminar a sessão, muitas pessoas entraram e minha sala lotou, isso aconteceu porque outra sessão estava atrasada e muitas pessoas acabaram perdendo mais da metade da minha palestra, uma pena.

De qualquer forma abaixo está o conteúdo da palestra e demos, para que todos possam brincar em casa ou no trabalho:

Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma

Última sessão do dia e sobre carreira, expectativa de sala não muito cheia, o que se confirmou... E foi massa! O caráter intimista da sessão possibilitou algumas pessoas falar, conversamos sobre SQL Server, mercado no Brasil, certificações e carreira como DBA. Nem precisa falar que sobrou muita crítica, tanto para empresas como para os profissionais, e como diria o Leka, o nome da sessão deveria se chamar “verdade nua e crua”.


Agora é aguardar o próximo evento e quem sabe ano que vem eu não animo de fazer outro SAT em Brasília...

Abraços,

sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

terça-feira, 15 de julho de 2014

MVP 5.0, copa do mundo, carreira, Nimbus…

Em Julho tive a grata notícia da renovação do meu título de MVP por mais um ano. Sempre rola um frio na barriga esperando o e-mail em 1º de Julho, que é o meu ciclo de renovação, mas correu tudo bem e estou feliz por não ter que alterar minha assinatura de e-mail. Legar também ver que Fabiano Amorim e Diego Nogare renovaram, e tivemos a nomeação do Marcelo Fernandes, outro conhecido da comunidade SQL Server.

Conhecendo os MVPs, meu recente contato com outras tecnologias e a comunidade técnica de SQL Server, digo com certeza: Agradeça por existir uma comunidade tão vibrante em torno de um produto! É muito satisfatório poder participar de encontros técnicos, SQLSats, eventos online e continuamente aprender sobre um produto com diferentes pessoas.

E o que espero para 1º de Julho de 2015? Que eu escreva um post de MVP 6.0, mas quero que a cada ano esse e-mail seja mais “suado”, não porque minhas contribuições vão diminuir, pelo contrário, porque torço para que sempre outros candidatos a MVPs estejam surgindo e contribuindo bastante, para que novos experts surjam e que as discussões fiquem cada vez mais avançadas. Assim vamos criando uma cultura positiva e ajudando uns aos outros.

Em Julho também foi o encerramento da nossa copa do mundo, campeonato que eu vivi intensamente. De um início onde eu não estava me importando (veja P.S.1!), mesmo sendo viciado em jogar futebol, até o dia em que um amigo me liga e diz: comprei os jogos de Brasília, só falta você transferir o dinheiro (de graça não foi, infelizmente! :-)). Depois do primeiro jogo da seleção, da ida ao estádio, de cantar o hino nacional e resolver torcer para valer, eu estava envolvido. E sofri demais na humilhação dos dois últimos jogos, principalmente no 7x1 da Alemanha, em que não saí da frente da televisão até o apito final.

E o que a copa e a surra da Alemanha têm a ver com esse blog? Ouvi de uma pessoa que foi apenas um jogo, perdeu e pronto, nada demais... Será??? Discordo, e quem pensa isso acho que poderia aproveitar melhor o contexto e exemplos que lhe são oferecidos. Tivemos uma demonstração do que a aplicação, trabalho em equipe e planejamento podem trazer, que somente a raça ou talento de poucos não ganha jogo (muito menos estilo duvidoso e cabelo pintado!). Quem não consegue traçar um paralelo disso com sua carreira ou trabalho, está realmente perdido.

Muitos querem ser como os campeões Alemães, ganhar excelentes salários, ter destaque nas suas empresas, reconhecimento pelo trabalho bem feito e saborear a maravilhosa sensação depois de grandes conquistas. Porém poucos tem a coragem de correr atrás de um objetivo maior, de aceitar o desafio e tentar se superar, de entender quais são seus defeitos, de pedir ajuda e estar continuamente melhorando. E assim esses serão atropelados por outros profissionais (P.S.2!), equipes ou empresas, e ficarão atordoados, como o time do Brasil ficou, e boa parte da nação também.

São esses momentos que colocam a gente para pensar, todo mundo passa por isso na vida, no meu caso pelo menos uma vez por ano. Depois de um triste episódio no ano passado parei para refletir e decidi experimentar a vida de DBA DB2 no Sicoob, decisão que não me arrependo, porém inevitavelmente diminuiu o ritmo da Nimbus... Situação que está mudando recentemente, também depois de longos períodos de reflexão, e espero que você que aprecia treinamentos diferenciados ministrados por Profissionais, possa aproveitar.

Em um mundo de constantes mudanças, principalmente para quem vive na área de tecnologia, o dia de amanhã vai trazer novas surpresas. Cabe a você decidir se quer estar preparado e receber uma boa notícia, ou continuar achando que a vida é injusta e que o jeitinho brasileiro vai resolver tudo na hora H, como funcionou extremamente bem na copa do mundo. :-(

Um grande abraço de um geek que continuamente pensa que não sabe merda nenhuma, mas acredita que está indo no caminho certo, e quer aproveitar com intensidade o que essa vida tem a oferecer.

sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br


P.S.1: Temos muita coisa errada nesse país, que muito dinheiro foi desperdiçado e roubado para essa copa do mundo acontecer, mas não vou entrar nesse mérito aqui. Acho que temos sim que lutar por melhorias e que muito começa em casa, sendo um processo paulatino, mas que ainda batalharemos por muitas mudanças.

P.S.2: Mas fique tranquilo que mesmo com profissionais melhores, você não ficará sem emprego, pois o mercado é uma mãe! O déficit de profissionais gera vaga para todo mundo, então qualquer um zé mané tem vaga hoje, mas quem sabe essa situação não muda...

sábado, 14 de junho de 2014

Novas turmas na Sr. Nimbus

Pessoal, recentemente anunciamos duas turmas do treinamento Mastering SQL Server 2012 (onde já pretendo falar um pouco das novidades do SQL Server 2014), uma para Brasília e outra para São Paulo:
·         Brasília – Noturno – 04/08 a 15/08
·         São Paulo – Integral – 22/09 a 26/09
Além disso, o Fabiano Amorim publicou um novo treinamento de performance, chamado “SQL Server Performance with nowait”, que já está bombando e você pode se inscrever aqui: http://www.srnimbus.com.br/calendario/sql25_spout2014/. Mais detalhes ele publicou no blog dele http://blogfabiano.com/2014/05/29/treinamento-tuning-em-so-paulo-outubro-2014/.
Já temos muitas reservas para os treinamentos, então acessem o link acima e façam a sua reserva.
Abraços,
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

SQLSat #325 - São Paulo

Como muitos já devem saber em Setembro teremos mais um SQLSat no Brasil, dessa vez em São Paulo. Acho que o evento dispensa apresentações, mas se você não sabe muito sobre os SQLSats recomendo que visite o site: http://www.sqlsaturday.com/.
Na semana anterior eu estarei em SP ministrando o treinamento Mastering SQL Server 2012 (antigo Internals) e aproveitei para submeter três sessões, que ainda não formam aprovadas (espero que no máximo duas sejam aprovadas, senão estou lascado!).

Título: Database Engine Internals: SQL Server x DB2
Descrição: Profissionais de banco de dados deveriam conhecer o funcionamento da engine de seu banco de dados, para poder tirar o máximo de proveito dos recursos e não somente usar as ferramentas disponíveis. O objetivo desta sessão é fazer um comparativo entre a engine do SQL Server e a do DB2, mostrando as semelhanças e os pontos fortes e fracos de cada uma delas, explorando assuntos como gerenciamento de memória, processamento de requisições, lock manager, entre outros aspectos. Idealmente o profissional já deve possuir experiência com bancos de dados relacionais e saber que na sessão não será defendido um produto ou o outro, mas sim uma análise imparcial. (http://www.sqlsaturday.com/viewsession.aspx?sat=325&sessionid=23469)

Título: Entendendo o paralelismo no SQL Server
Descrição: Um assunto recorrente em discussões sobre SQL Server é o uso do paralelismo, e sempre fica a pergunta, é bom ou ruim? Nessa sessão vamos ver detalhes do paralelismo no SQL Server, configurações que influenciam seu uso (MAXDOP = 1?), entender o famoso wait type CXPACKET e analisar diversas consultas paralelas. Ao fim da sessão você vai poder olhar para o paralelismo com um olhar crítico e realista! (http://www.sqlsaturday.com/viewsession.aspx?sat=325&sessionid=23468)

Título: Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Descrição: Nesta sessão vamos conversar e, provavelmente, discutir um pouco sobre o mercado de SQL Server. Além de discutir quais são as atividades relacionadas ao SQL Server, vamos entender quais são as vagas que andam em destaque, o valor e caminho da certificação e a realidade de se tornar um DBA multiplataforma. (http://www.sqlsaturday.com/viewsession.aspx?sat=325&sessionid=23470)

A primeira sessão é a novidade que trago para esse SQLSat, onde se aprovada pretendo fazer um fast deep dive nas engines do SQL Server e DB2, comparando aspectos que considero mais relevantes. Acredito que ainda estou longe de saber detalhes do DB2 como eu sei do SQL Server, mas o exercício de ministrar a palestra e a preparação sempre me ajuda a estudar mais. Se você espera que eu vá ficar lá defendendo o SQL Server, está enganado. Será um comparativo direto e sem preconceito, mas claro que vou expor minha opinião sobre diversos assuntos.
A segunda sessão que submeti é sobre paralelismo e é a mesma que fiz no SQLSat em Porto Alegre, que foi classificada como a segunda melhor sessão do evento (para os curiosos, a sessão do Fabiano Amorim foi classificada como a melhor! #DisputaNimbus). Gostei bastante da sessão que montei, mas pretendo melhorar algumas coisinhas para SP.
Por fim a última sessão é voltada para carreira e baseada na sessão que fiz no SQLSat de Brasília no ano passado, claro que com as devidas atualizações, novas impressões e muito criticismo.
O SQLSat não é um evento que deve passar em branco. Então veja tudo sobre o evento no site: http://www.sqlsaturday.com/325/eventhome.aspx
Abraços,
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

segunda-feira, 31 de março de 2014

DB2 trap problem determination

Durante minha vida profissional pude observar muitas análises ruins quando se está tentando determinar a causa raiz de um problema. O x da questão usualmente não é a qualidade técnica do profissional, mas sim a metodologia adotada detalhar a situação para se criar uma linha de eventos válida, somada a uma frequentemente falta de paciência em varrer os logs e analisar com calma as evidências.
Pensando nisso eu escrevi um pequeno passo a passo para uma identificação de causa raia que fiz em uma instância do DB2 que uso para meus testes, onde sem querer esbarrei em um bug do DB2. Espero que sirva como um bom exemplo de análise, independente do produto que você trabalha.

Cenário: em meu ambiente de laboratório eu notei que uma instância do DB2 recorrentemente parava de funcionar na madrugada, sendo necessário um db2start para coloca-la operacional.

Como fiz a análise...

1.      Partindo de um momento perto do horário em que o serviço foi interrompido analisa-se o diaglog, onde encontro uma entrada muito importante:

2014-03-26-00.43.45.477605-180 I38149015A601        LEVEL: Error
PID     : 9475                 TID : 4383345469712  PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000           DB   : HCOREDB
APPHDL  : 0-10765              APPID: *LOCAL.db2inst1.140326052243
AUTHID  : DB2INST1             HOSTNAME: db2luti
EDUID   : 5674                 EDUNAME: db2agent (HCOREDB) 0
FUNCTION: DB2 UDB, base sys utilities, sqleagnt_sigsegvh, probe:1
MESSAGE : Error in agent servicing application with coor_node:
DATA #1 : Hexdump, 2 bytes
0x000003FC9380996C : 0000

2.      Em seguida começamos a ver diversas entradas no diretório do FODC (First Ocurrence Data Capture). Analisando o diretório FODC temos N diretórios com o timestamp do trap, o de nosso interesse é FODC_Trap_2014-03-26-00.43.45.300571_0000.
3.      Neste diretório temos diversos artefatos que foram gerados, mas para essa análise o que nos interessa é o arquivo com trap, que é um snapshot do estado do DB2 quando o stack dump foi capturado (*.trap.txt).
a.      Neste caso foi gerado o 9475.5674.000.trap.txt;
b.      Notem o PID e EDUID destacados no diaglog, o nome do arquivo do trap é iniciado pelo process ID do db2sysc no Linux e o EDU ID do agente;

4.      O arquivo do trap tem diversas informações, entre elas a stack que fica um pouco chata de ler por conta dos nomes gerados pelo compilador. Então para analisar o arquivo e limpar o nome dos métodos, peçam ajuda ao c++filt:

cat 9475.5674.000.trap.txt | c++filt | less

a.      Signal #11 Indica um erro inesperado (9 é o SIGKILL, 2 é o SIGINT, etc..;)

Signal #11 (SIGSEGV): si_addr is 0x000003FC2640A000, si_code is 0x00000002 (SEGV_ACCERR:Invalid permissions for mapped object.)

b.      A entrada <POFDisassembly>  (POF = Point Of Failure) é o método que estava sendo executado quando o problema aconteceu.

<POFDisassembly>
sqldHashZValue32(int, sqlz_value**, sqld_sortkey**) + 0x0116   (/home/db2inst1/sqllib/lib64/libdb2e.so.1)

c.       Isso já dá um ótimo filtro de pesquisa no Google ou Bing, tentem: db2 10.1 “sqldHashZValue32”
                                                              i.      De cara a primeira saída é interessante: http://www-01.ibm.com/support/docview.wss?uid=swg1IC92798 (IC92798: RUNNING MULTIPLE CONCURRENT SAMPLED DETAILED INDEX RUNSTATS MIGHT CAUSE A SERVER ABEND OR INACCURATE INDEX STATISTICS)

d.      Na APAR temos o detalhamento do problema e stack trace de interesse:

sqloEDUCodeTrapHandler
sqldHashZValue32
sqlis_touch_page
sqliProcessColStats
sqlischs
sqlistat
sqldIndexStats
sqlrLocalRunstats

e.      Para garantir que se trata do mesmo problema, vamos comparar a stack no arquivo de trap:

0x000003FFFAAC4888 sqloEDUCodeTrapHandler + 0x0250 (/home/db2inst1/sqllib/lib64/libdb2e.so.1)
0x000003FC93809DF0 address: 0x3fc93809df0
0x000003FFF8BB97D6 sqldHashZValue32(int, sqlz_value**, sqld_sortkey**) + 0x0116
                (/home/db2inst1/sqllib/lib64/libdb2e.so.1)
0x000003FFFBFC8A92 sqlis_touch_page(unsigned long, schs_cluster_data*) + 0x00ca
                (/home/db2inst1/sqllib/lib64/libdb2e.so.1)
0x000003FFFBFB0C46 address: 0x000003FFFBFB0C46 ; dladdress: 0x000003FFF74C9000 ; offset in lib: 0x0000000004AE7C46 ;
                (/home/db2inst1/sqllib/lib64/libdb2e.so.1)
0x000003FFFBFB5B32 sqliProcessColStats(schs_data*, SQLI_CB*, unsigned int*) + 0x052e
                (/home/db2inst1/sqllib/lib64/libdb2e.so.1)
0x000003FFFBFB7314 sqlischs(SQLI_CB*, SQLD_ISTAT*, SQLD_CSTAT*, SQLD_TSTAT*, schs_data*, int) + 0x0e4c  (/home/db2inst1/sqllib/lib64/libdb2e.so.1)
0x000003FFFC143CF2 sqlistat(sqeAgent*, SQLD_CCB*, unsigned int, SQLD_IXCB*, SQLD_ISTAT*, SQLD_CSTAT*, SQLD_TSTAT*) + 0x100e
                (/home/db2inst1/sqllib/lib64/libdb2e.so.1)
0x000003FFF8CBA094 sqldIndexStats(sqeAgent*, unsigned short, unsigned short, unsigned char, unsigned short, int, unsigned int, SQLD
_ISTAT*, SQLD_TSTAT*, char*, int, char*, int, unsigned int, bool&) + 0x0b58
                (/home/db2inst1/sqllib/lib64/libdb2e.so.1)
0x000003FFFAF28004 sqlrLocalRunstats(sqlrr_cb*, sqlrrstring*, sqlrrstring*, sqlrrstring*, ….

f.        Coincidência? A APAR diz que o problema foi corrigido no fix pack 3, e qual a nossa situação.

Ø  db2level

db2inst1@db2luti:/db2/db2inst1/diaglog> db2level
DB21085I  This instance or install (instance name, where applicable: "db2inst1") uses "64" bits and DB2 code release "SQL10012" with level identifier "0203010E".
Informational tokens are "DB2 v10.1.0.2", "s121127", "IP23396", and Fix Pack "2".

g.      Analisando a CRONTAB do servidor db2luti temos um agendamento marcado para executar todos os dias exatamente 00:43h. Que bate exatamente com o timestamp do diaglog (00.43.45.477605).

43 00 * * * /home/db2inst1/scripts/runstats.ksh hcoredb
43 00 * * * /home/db2inst1/scripts/runstats.ksh hcoredb1
43 00 * * * /home/db2inst1/scripts/runstats.ksh hcoredb2
43 00 * * * /home/db2inst1/scripts/runstats.ksh hcoredb3
43 00 * * * /home/db2inst1/scripts/runstats.ksh hcoredb4


Conclusão

O agendamento que eu criei para testar variações da rotina de runstats é executada em cinco bancos de dados no mesmo horário, o que nos coloca no cenário do bug. Como paliativo podemos alterar o agendamento, mas a solução definitiva é aplicar o Fix Pack 3 do DB2.

Claro que a análise em si levou mais tempo, pois foi necessário varrer em maior detalhe o diaglog, correlacionar eventos, analisar a APAR, entre outros. É esse cuidado que muitos não têm e como resultado são feitas análise incorretas, onde já vi sugestão de se aplicar fix em que a mensagem de erro é igual, mas com uma stack totalmente diferente, o que significa não se tratar do mesmo problema.

Para quem está procurando material de referência, infelizmente não tenho um link específico, mas participei de um bom seminário em 2013 no IDUG em Barcelona (http://www.idug.org/emea2013) chamado “DB2 LUW Problem Determination and Troubleshooting Workshop”, com o Pavel Sustr e Samir Kapoor. Eles estarão presentes no IDUG 2014 em Phoenix (que acontecerá agora me Maio), então se estiverem por lá eu recomendo participar deste workshop de um dia.

Espero que o exemplo seja útil, não para esse caso em si, mas para ilustrar um pouco a prática na análise de problemas. Espero postar aqui mais casos de análise.

Abraços,

sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br