Oracle Certified Professional

21/Nov/2014 2 comments

 

Minha jornada de certificações

 

Sigo, sem querer, o estranho padrão de me certificar de 3 em 3 anos.

A primeira certificação de Oracle foi em 2007, Oracle 9i Introduction to SQL (1Z0-007). Havia escolhido essa porque, pelas pesquisas que fiz, era a mais fácil dentre as opções de certificações que serviam de pré-requisito para prestar a OCA 11g depois. Ou talvez tenha sido o código James Bond que me prendeu a atenção. Hoje, não me lembro se foi realmente fácil ou não. Lembro que estava nervoso. Era a primeira prova à qual eu era submetido com as seguintes condições: computador cronometrando o tempo, ambiente monitorado, o medo de ter pago caro (em dólar) e não passar… Pra minha surpresa, comecei com o pé direito e o resultado foi “PASSED”!

Três anos depois, em 2011, fui buscar a OCA 11g (1Z0-052). Assim como na preparação da prova 007 anterior, admito agora que estudei por meios lícitos (livros preparatórios e documentação) e por meios ilícitos, com testkings. Culpado, confesso. Não ostento ter passado nessa porque a prova foi exatamente como estava no meu testking. Roubei? Pode-se dizer que sim. Não me orgulho, entretanto não vou omitir. Sujo ou limpo, conquistei o título de Oracle Database 11g Administrator Certified Associate.

OCA11g-Logo

Neste ano de 2014, por empolgação de outros colegas se certificando, saí do marasmo e retomei a trilha no meu certification path. Abri um livro daqueles “Guia para OCP 11g” e fui nas ferramentas de busca de torrents procurar algum testking dessa prova também (só para garantir, né!). Por incompetência minha ou por competência da fiscalização, não achei nenhum para a prova 1Z0-053. E isso foi a melhor coisa que podia ter acontecido.

Eu já tinha a intenção de estudar direitinho. O importante é absorver mais conhecimento para ser mais capacitado. O problema era a má companhia… Minha amiga, aquela viadinha da insegurança, me dizia a todo momento pra procurar um meio de garantir o resultado. Frustrando essa colega, tive que seguir somente os meios oficiais de estudo. Li o livro (quase) todo. Relembrei conceitos básicos, reforcei conceitos mais avançados. Cimentei conhecimentos de outros cursos e palestras que frequentei nos últimos anos. Iluminei algumas áreas de conhecimento que eram escuras até então e notei outros cantos que ainda se escondem no breu, aguardando serem revelados.

Fui para a prova. Eram 120 minutos cronometrados para respoder 78 questões. Estava nervoso como na primeira vez. A insegurança continuava segurando minha mão, fazendo-a suar. Marquei muito mais questões para revisão do que deveria. Cheguei ao fim da prova faltando 7 minutos para o encerramento e eu tinha umas 30 questões para revisar! Afoito, comecei a revisão e não consegui revisar todas. Quando o tempo acabou e o programa encerrou meu acesso às perguntas e respostas, creio que 2 ou 3 questões devam ter sido invalidadas sem resposta, ou com resposta incompleta. Rumei para casa e a esperança resolveu ficar pra trás na primeira esquina. Probabilidade baixa de ter passado com esse péssimo gerenciamento de tempo na prova e não tendo respondido com confiança muitas perguntas. Alinhei a expectativa pro pior, como de costume.

Após 30 minutos de lamentos e mensagens de baixo astral para amigos mais íntimos, explodi de alegria ao ver o resultado no site da Oracle: “PASSED”! Dias depois, já poderia exibir o certificado digital:

 

OCP11g-eCertificate

 

Esse sim, que orgulho! Conquistado com as mãos limpas, sem malandragem!

Pra quem está trilhando o mesmo caminho, aprenda com meus erros e acertos. Não sou melhor por ter conquistado o certificado mais difícil, dos 3 que conquistei, sem o uso de um artifício. Tão pouco sou pior por ter usado artimanhas nos outros 2. Só que a consciência e o orgulho de uma vitória assim é um prazer pessoal que me dá mais segurança, mais auto-estima mais confiança nas minhas capacidades. O que muda minha postura, minha presença ao fazer uma entrevista de emprego e ao trabalhar no dia-a-dia.

Considere essa minha experiência no seu planejamento de carreira. =]

 

Hot Topics 1Z0-053

 

Para quem for estudar para a 1Z0-053, listo abaixo os tópicos que mais apareceram na minha prova, em ordem do que mais caiu para o que menos caiu. Entre parênteses, um número aproximado de questões daquele assunto, só pra ter uma idéia. Data da prova: 03/Nov/2014.

  • RMAN backup, recovery, catalog, vipcat (25)
  • Tecnologia Flashback (15)
  • Space Management (5)
  • Memory & Performance (5)
  • RMAN Duplicate (3)
  • ADR (3)
  • Transportable Tablespaces (3)
  • Resources, Plans, Directives (2)
  • ASM (2)
  • Scheduler (2)
  • Resumable Session (1)

Mais do que isso, corra que a polícia vem aí.

 

Advertisements

Search Engine Terms

21/Nov/2012 4 comments

 

Fala, pessoal!

Antes de mais nada, preciso publicar minhas sinceras desculpas. Não atualizo o blog com frequência. Isso é falta de disciplina e empenho. A descrição do blog não condiz com o que ele é hoje, mas ainda há tempo para mudanças.

Há tempo para mudar essa situação, mas não vai ser hoje! Hahaha!
Hoje vamos aproveitar para dar um pouco de risada!

A parte mais divertida de ter o blog é ler os termos pesquisados nos sites de pesquisa que levaram algumas pessoas a chegarem aqui. Vejo que, possivelmente, ajudei bastante gente procurando algo sobre blocos anônimos e PL/SQL e também aquele erro que passei para iniciar o ocssd.bin uma vez. Mas também vejo que, algumas pessoas, realmente não encontraram o que queriam ao cair no meu blog.

Lendo os termos usados, eu caio na gargalhada! Vou listar os mais engraçados de 2012 até hoje, que eu recebi.
Sigam-me os bons!

Obs: Minha intenção não é ridicularizar ninguém que estava buscando informação, longe disso… Apenas permita-me fazer um pouco de graça com o contexto das palavras escolhidas que você digitou, okay? 🙂

And the Oscars goes to…

 

CATEGORIA: RELACIONAMENTO PESSOAL

“mercado, dba, mulher”
Ih, rapaz… Nesse mar não tem muito peixe. Mas se procurar bem e tiver a isca certa, você acha!

“sql viagem a lua de mel”
Pelo amor de Odin! Não misture essas coisas, meu amigo!!! Ninguém merece estragar a lua de mel com trabalho!

“o que eu levo na bolsa para o plantao”
Notebook, fonte, modem 3g, músicas, energético, paciência, sudoku… Mas deixa o sono em casa.

“dba acaba sem mulher”
É, pois é. É o futuro de muitos DBAs. Pra não cair nessa tem que ter mais de 5 anos de experiência na feature “jogo de cintura” do 11g.

 

CATEGORIA: RELACIONAMENTO SOCIAL E FILOSOFIA

“como vee um dba como ele realmente e”
Para ver um DBA como ele realmente é, você tem que extrair o DDL de criação dele do DNA. Insere um fio de cabelo no drive de CD, vai até o drive pelo Prompt do DOS, chama o SQL*Plus e executa dbms_metadata.get_ddl(…).

“galera do trabalho dba”
É nóis, mano! DBA na veia! As mina pira!

“encaminhar a outra pessoa sql”
Então, pode ser de várias maneiras. Você podia escrever o código no papel e mandar por carta. Pouca gente recebe carta de colegas hoje em dia, você iria fazer a diferença.

“o que significa dar privilégio dba para outrem”
Olha, fazia tempo que não lia o termo “outrem”. Com esse vocabulário parece até um cara que trabalha comigo, por isso não vou zoar! Hahaha!

“como faço para colocar nome em um bloco anonimo”
Só porque o bloco é anônimo você quer dar nome pra ele? Se tivesse nome você ia querer tirar. DoContra…

“nome de bloco anonimo para carnaval”
Eu ja falei num dos primeiros posts! “Bloco Anonimo” é o melhor nome para um bloco de carnaval (que só os DBAs e Desenvolvedores vão entender). E é anônimo por definição!

 

CATEGORIA: FUTURO NA PROFISSÃO

“a profissao dba vai acabar??”
Bom, há um tempo atrás, ferreiro era uma profissão muito importante e reconhecida. Ao contrário de DBA, que não é importante e nem reconhecido em muitas empresas por aí.

“vaga dba empresa games”
Espertinho! Quer unir o útil ao agradável! Não quer mais nada, né? Eu nunca pensei nisso e, pensando agora, deve ser bem legal… Cara, se você achou uma empresa de games e trabalha como DBA lá, LEVA MEU CURRÍCULO POR FAVOR!

“dba sempre trabalha em plantão”
Sim. É mais verdadeiro que “o pão sempre cai com a manteiga pra baixo”.

“dba trabalhar madrugada demanda”
Idem. Se você tá de plantão, o horário mais provável de te ligarem é de madrugada. A única vez em que não fiquei bravo foi quando me ligaram 3 da manhã, mas, coincidentemente, eu estava saindo de um motel, então estava bem relaxado! Se ligassem pouco antes disso, eu ia ficar MUITO bravo. Dica: nem vá pro motel se estiver de plantão. Pode ser um corta-tesão do caramba…

“quando a empresa depende demais do dba”
Hahahaha! Conheço uns DBAs que levam a empresa nas costas mesmo. Azar (ou sorte) deles.

 

CATEGORIA: LEVE-ME PELA MÃO

“depois de criar um scrip cite os passos para executa-lo”
Clica em “START”, depois em “Programas”… Só pode estar de sacanagem, né!

 

CATEGORIA: FOFOCA

“casos de dbas”
Olha, não sou de espalhar boatos, mas uma vez um DBA disse à sua esposa que tinha uma change/RDM/migração até tarde e que o celular não pegava no CPD/DataCenter. Quando pegava, mal dava pra ouvir porque o ar condicionado faz muito barulho lá dentro. Só que, na verdade… Foi exatamente isso que aconteceu! DBA não mente, NUNCA!

 

CATEGORIA: WTF?!

“o que significa e anônimo ainda”
Resposta: 42

“dizimo com oca”
Hahaha! É… Tira OCA, começa a trampar e aí pode pagar o dízimo com esse dinheiro. Sounds like a plan.

“precauções ciclanos”
Cuidado sempre é bom. Fulano sempre me disse que esses Ciclanos não prestavam… Watch out.

“dba maluco”
É nóis que avôa, bruxão!

 

 

1º GUOB 2012

31/Mar/2012 Leave a comment

 

GUOB Tech Day with Craig Shallahamer

 

In my feedback about last GUOB event (on March 24th, 2012) I will mainly talk about Mr. Craig Shallahamer, who enlighted us with two brilliant lectures.

I decided to write this post in English so Craig would understand what I am saying about him. I think it wouldn’t be fair to write in Portuguese.

Well, GUOB Tech Day. Once again, I shall compliment Eduardo Hahn and staff for a very well organized event, very nice coffee breaks and all the work/effort backstage we can’t see but is vital for a great outcome.

From my point of view, as a DBA working with Oracle, last GUOB Tech Day wouldn’t be very interesting if it wasn’t for Craig’s lectures. Aside from Craig’s, the others were more like product’s advertisements: “This is my software, it does everything you need fast and accurately. Buy it now and be happy”.

Don’t get me wrong, I’m not making fun of those softwares. The point is I wasn’t there to hear about new tools to work with or learn what they are capable of. I usually go to GUOB events expecting to get some tips about my job as DBA, advices on how to manage databases more efficiently, to understand more of Oracle internals, to know what more experienced DBAs consider as best practices, that kind of stuff. And I expect to hear it from widely known professionals. Don’t blame me, blame GUOB’s staff that already brought us Tom Kyte, Graham Wood, Arup Nanda, Francisco Muñoz, Kai Yu…

I wasn’t the target audience for those 2 specific presentations. Probably a lot of other people enjoyed it. But this is my blog and I’m writing about what matters to me and my fellow DBAs. 😉

That said, 50% of the presentations scheduled meant nothing to me. Fortunately, Mr. Craig came to save the day!

I want to praise Craig’s speeches not by the value of their content, not by how much what he said make sense to me and allowed me to understand Oracle’s internals in a different way, but by how he managed to share his knowledge on the subject with the audience.

What I loved about Craig’s way of speech, was his enthusiasm while speaking to us. It’s completely different to hear a speech from someone that master the subject but stands there, in front of the crowd like it’s just another day in his life than from someone who also masters the subject, but shows he really loves talking about it, with shine on his eyes, with passion for what he chose to study and work with. It’s inspiring.

His struggle to make a picture of what happens behind the scenes in Oracle memory made a huge difference and was really worth it (at least to me). It could’ve been a completely acceptable speech without all that pictures and gestures but by drawing in the air and interacting in the created scene (reminded me of Minority Report, the movie) he transformed all that abstraction into “invisible-visible” objects and I will never forget the “LRU-modified²” (touch-count) algorithm. 🙂

I think he nailed it as a professor transferring (a tiny little bit of) his knowledge to his students. That’s how I felt.

I had the chance to talk to him during coffee break. Craig is very friendly and seems to enjoy talking to people face to face, not only while lecturing. This changes the impersonality lectures usually carry into something much more comfortable and personal between speaker and audience.

Hope he can come back to Brazil many more times to inspire us again with new lectures!

You don’t know him yet? Well, you should!

Twitter: @CShallahamer
Company: Orapub Inc.
Blog: A Wider View

 

Thank you very much, Mr. Craig!

 

 

crsctl start crs… FAILURE!

27/Mar/2012 13 comments

 

Puta que pariu! Não subiu!

 

Perdoem-me o palavrão, mas foi isso que ecoou na minha cabeça quando recebi a mensagem abaixo:

[root@machine bin]# ./crsctl start crs
Attempting to start CRS stack
Failure at scls_scr_create with code 1
Internal Error Information:
Category: 1234
Operation: scls_scr_create
Location: mkdir
Other: Unable to make user dir
Dep: 2

Eu não achei nada relevante na internet sobre esse erro! Nem no Metalink estava claro. Agora sei a solução e, por isso, compartilho com vocês!

 

 

Detalhes do ambiente

 

• Servidor Enterprise Linux 5 (EL5) 64 bits
• Oracle DB Enterprise 10.2.0.5 com PSU 10.2.0.5.6 aplicado, single instance
• Usando ASM

 

 

Mas… “Crsctl” sem ser ambiente RAC?

 

Em ambientes não RAC mas com ASM, temos um processo no SO chamado “ocssd.bin” ativo também. Esse processo fica responsável pela comunicação entre a instância do BD e a instância ASM, ou seja, é vital para o funcionamento do seu BD single instance usando ASM como controlador de arquivos.

Exemplo desse processo ativo em um dos meus servidores agora:

[ prod_db@machine /home/oracle ]: ps -ef |grep ocssd |grep -v grep
oracle 20168 19928 0 Mar23 ? 00:00:13 /oracle_home/bin/ocssd.bin

Esse processo pode estar ativo mesmo se você não estiver usando ASM ou mesmo antes de você criar uma instância (foi iniciado por padrão após instalação de algum produto).

 

Rápido adendo:

Antes de aplicar um patch ou se não vai usar ASM nesse servidor e quer parar o serviço, você pode parar/iniciar esse serviço com o comando “init.cssd stop”/”init.cssd start”, estando logado como root. Comando válido para ambientes NÃO-RAC. Com RAC esse processo também é vital, tome cuidado.

 

 

A parte que interessa: Por que aconteceu? Como corrigir?

 

No meu caso, fui contemplado com o erro após trocarmos o IP e hostname desse servidor. O banco foi instalado com o servidor tendo o hostname=A e IP=X, já estava tudo rodando bonitinho (ASM, DB, usuários trabalhando).

Só que precisávamos trocar o hostname e IP. Durante a janela de manutenção planejada, seguimos os seguintes passos:

• Parei a instância de banco
• Parei o ASM
• Parei o ocssd.bin (com “crsctl stop crs”)

O analista de Linux trocou o hostname de A para B e o IP de X para Y.
Fui todo contente fazer os passos inversos e, ao mandar o primeirão “crsctl start crs”, levo na fuça um direto de um punho com soco inglês cravando esse log na minha testa:

[root@machine bin]# ./crsctl start crs
Attempting to start CRS stack
Failure at scls_scr_create with code 1
Internal Error Information:
Category: 1234
Operation: scls_scr_create
Location: mkdir
Other: Unable to make user dir
Dep: 2

 

Para sanar o erro acima, tive que reconfigurar o CSS seguindo os passos:

1. Se houver algum processo do CSS executando, mate-o:
$ kill -9

2. Com o usuário root, vá até o $ORACLE_HOME/bin
$ cd $ORACLE_HOME/bin

3. Faça a reconfiguração do CSS
$ localconfig reset $ORACLE_HOME

4. Inicie o processo do CSS
$ /etc/init.d/init.cssd start

 

Agora sim! O CSS subiu normalmente e eu pude iniciar o ASM e, depois, o BD!

O porquê de acontecer isso e os detalhes técnicos eu não sei ainda. Não achei documento que explicasse. No máximo, em um PDF chamado “ASM Best Practices” que achei, diz que “If CSS does not start automatically on reboot or if there is a hostname configuration change. The following command (localconfig reset) can be used to reconfigure CSS on that host”.

É tudo que sei! Se for trocar hostname por aí, fique ligado nisso.

 

Obs: Essa solução funcionou para meu ambiente, mas pode não funcionar no seu. Use por sua conta e risco!

 

 

SQL Magazine!

25/Feb/2012 3 comments

 

Publicação

 

Galerinha, saiu uma publicação de um artigo meu na revista SQL Magazine!

É o artigo que fiz durante minha Pós-Graduação como trabalho final (tipo TCC), do qual extraí um pedaço que publiquei no post explicando sobre latches. O assunto abordado são algumas das opções de tuning para problemas de performance devido grande ocorrência de hard parses.

Infelizmente, não posso republicar meu artigo inteiro aqui no blog, pois ele está na revista, normas editoriais. Mas vocês podem adquirir a revista ou ler online. A prévia do artigo está aqui, SQL Magazine edição 95.

Essa é notícia velha, é verdade, o artigo saiu no começo do ano, eu que não consegui me organizar para vir atualizar o blog.

Estou tirando algumas teias de aranha daqui agora. =)
Obrigado a todos pelos incentivos e pelo carinho.

 

Gotta keep moving! Go go GO!

 

 

2011 in review

02/Jan/2012 Leave a comment

The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.

Here’s an excerpt:

A San Francisco cable car holds 60 people. This blog was viewed about 1,700 times in 2011. If it were a cable car, it would take about 28 trips to carry that many people.

Click here to see the complete report.

Categories: Uncategorized Tags:

Latches – Conceito

02/Sep/2011 7 comments

 

Briefing

Pessoal, esse é um post simples e direto. Só irei explicar o que é um Latch.

Se você, estudante do banco de dados Oracle, começar a ler sobre a arquitetura desse SGBD, vai encontrar esse termo e, não sabendo o que é, pode interferir no entendimento. Nesse momento a minha expectativa é que você abra o Google e pesquise “o que é latch?” ou “o que são latches?” e, com sorte, caia exatamente aqui nessa página!

Esse texto é parte de um artigo que escrevi como TCC da Pós-graduação e minha intenção era publicá-lo na íntegra aqui no Blog, mas não será possível. Felizmente é por um bom motivo! Esse artigo foi publicado na SQL Magazine e, pelas normas editoriais, não pode ser publicado em outros meios. Confiram o artigo completo na revista! =)

O trecho abaixo eu já tinha publicado antes de trabalhar com a revista SQL Magazine, então vou mantê-lo aqui.

Espero que ajude tanto quanto o post sobre Blocos Anônimos (esse aqui) me parece que têm ajudado.

Não é um conceito direcionado aos iniciantes, está mais ligado a análises de tuning mas, enfim, não vai fazer mal saber o que é, ter uma noção sobre latches. Se eu li, aprendi um pouco e me foi útil, também pode ser pra você.

[Super Mario] Here we gooooo! [/Super Mario]

 

 

Latch – Extraído do meu artigo sobre Hard Parses

Latch é um mecanismo de alocação de estruturas na memória SGA serializado e desenhado para que sejam alocados por curtos períodos de tempo. Ele controla os vários processos que desejam acessar áreas compartilhadas da SGA, permitindo que somente um processo de cada vez acesse a estrutura requisitada, evitando corrupção da memória, ou seja, mantendo a integridade.

Latch não implementa fila de espera, como acontece com outros tipos de locks (travas). Se, ao tentar obter um latch, é identificado que outro processo já o obteve, sua sessão irá aguardar algum tempo e, depois, tentará novamente obter o latch.

Quando o latch for liberado pelo processo que o obtinha, se houver vários processos que precisam do mesmo latch, o primeiro processo que solicitá-lo após a liberação terá sucesso, os demais continuarão tentando aleatoriamente até conseguir ou até esgotar o tempo de tentativas.

Atente-se que não houve fila de espera e, portanto, pode ser que o primeiro processo que chegou para obter o latch bloqueado não seja o primeiro a consegui-lo após a liberação do latch.

Quando um processo fica em loop tentando obter o latch e há várias sessões tentando a mesma coisa, tal processo ficará um tempo ocupando CPU na esperança que o latch seja liberado logo (como o latch foi desenhado para durar curtos períodos, presume-se que a chance de ser liberado em breve é alta). Somente após algum tempo em CPU tentando obter o latch e falhando, o processo liberará a CPU e tentará de novo mais tarde. Isso indica, normalmente, um cenário em que há várias sessões tentando obter o mesmo latch, ao invés de uma sessão única alocando o latch por um longo tempo, como acontece com outros tipos de locks.

Tanto essa espera na CPU quanto a saída e a volta para a CPU para tentar novamente são gastos com recursos primários devem ser evitados, se possível.

Hard parse é uma operação que utiliza latches para ser completada. Portanto, temos a seguinte relação: quanto mais hard parses, mais latches. Aumentar o número de latches significa ter mais processos alocando as estruturas compartilhadas da memória (alta concorrência) e, consequentemente, aumenta a chance de que outro processo tenha que aguardar para obter seu latch ao invés de obtê-lo instantaneamente.

Quanto menos hard parses, menos latches, maior a chance de um processo obter seu latch instantaneamente (baixa concorrência), menor a chance de espera, mais rápido será o fluxo através dos mecanismos internos e mais rápido será o término da operação executada.

 

Caso o trecho tenha te deixado ainda mais confuso, peço que aguarde o post com o artigo completo. Se esse capítulo extraído não fez sentido no contexto onde você leu sobre latch, fará dentro do artigo. 😉