RES: [oracle_br] Problemas cursor: pin S wait on X e Cache buffer chains

2012-03-09 Por tôpico Alessandro Guimarães
Oi,

Uma sessão esperando por este evento esta tentando pegar um mutex pin em
modo shared

Tem algo a ver com  a mudança gradativa da Oracle de mudar alguns latchs
(principalmente os de library cache) para mutex (Esse evento até onde sei só
acontece na versão 10.2.X ou maior).

Algumas causas: 

 * Dependendo da versão do banco pode ser bug (Mais comum)

* Frequencia alta  de Hard Parses

* Voce pode ter um quantidade muito grande de versões do comando. Oracle
pode “perder” muito tempo examinando esta cadeia de versões o que pode
causar a espera por este evento.

Alessandro Guimarães

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de candiurudba
Enviada em: sexta-feira, 9 de março de 2012 08:21
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Problemas cursor: pin S wait on X e Cache buffer chains

 

  

Bom dia colegas,

De vez em quando me deparo com estes latchs no meu Oracle de produção e até
hoje, não encontrei uma documentação muito boa sobre o assunto.

Até mesmo com relação a encontrar o hot block para o Cache Buffer Chains.

Alguem poderia me ajudar a entender melhor o que significam e como trata-los
?

Obrigado




-- 

--
*Este email é enviado por uma empresa de tecnologia da informação e contém 
informações que podem ser privilegiadas e confidenciais. Se você não é o 
destinatário da mensagem por favor apague-a e comunique-nos o fato de 
imediato.*
--


[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




[oracle_br] Re: sql tuning advisor oracle

2012-03-09 Por tôpico José Laurindo
  Bem, sobre o Tuning Advisor, 
http://www.oracle-base.com/articles/10g/AutomaticSQLTuning10g.php é uma 
excelente referência, bem como o manual de tuning, mas esteja ciente de alguns 
pontos :
  
  - pra ter direito de usar esse cara vc TEM QUE TER licenciadas as opções 
EXTRAS necessárias, que tem custo à parte - iirc são o Oracle Tuning Pack e o  
Oracle Diagnostic Pack, mas confira direitinho no manual de licenciamento da 
sua versão (a qual, pra variar, vc não diz mas isso vale pra todas as versões 
suportadas hoje em dia, creio)
  
  - esse cara *** NÃO *** faz milagre : ele é útil, te dá alguns insights 
interessantes às vezes (tipo sugerir índices e sql profiles), mas nem sempre 
acerta, Especialmente quando é um join relativamente complexo de muitas tabelas 
: então vale a pena o tentar, mas não tenha a expectativa de ele ser o salvador 
da lavoura, que nem sempre isso acontece
  
  - há outros elementos de Tuning de SQL no 10g e acima, 
http://www.vldb.org/conf/2004/IND4P2.PDF dá uma visão geral, embora (óbvio) não 
substitua o estudo via manual de tuning e manual de referência, Bem Como bons 
livros de referência, como os do Guy Harrison, do Tom Kyte, Jonathan Lewis, 
Christian Antognini ...  
  
   Sobre a query em si, alguns comentários :
   
   - vi que vc está chamando uma função  wm_concat no meio de uma query, via de 
regra se der pra evitar chamar funções é melhor
   
   - vc modifica algumas colunas, com nvl , trunc e coisas do tipo : alguma 
chance dessas colunas serem indexadas e a modificação estar fazendo perder o 
uso do índice ?
   
- imagino que vc saiba que esse /*+ APPEND */ num SELECT é ** absolutamente 
**, ** totalmente ** indevido e não funcional, esse HINT só funciona com 
INSERTs , e em situaçõe smuito específicas

- vi que vc usa bastante sub-queries com SELECT MAX  , provavelmente 
pra buscar o maior valor de uma informação : SE isso só precisa ser feito uma 
vez, pense com carinho na possibilidade de usar WITH , SE não dá um look em 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:9843506698920
 e 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0P11_QUESTION_ID:1594885400346999596
 para algumas discussões relacionadas e idéias 
  
 == Pelo situação que vc descreve, porém, penso que nenhuma dessas obs vai te 
ajudar muito, e não tem jeito, é fazer MESMO o processo de tuning da query...   
 Observo que :
 
 a. passo ZERO, antes de vc fazer qquer coisa, é ENTENDER O PROBLEMA : é 
rigorosamente IMPOSSÍVEL vc fazer um bom tuning se não tem certeza de quais 
tabelas são obrigatórias e quais não, se os OUTER JOINs que tão aí são 
REALMENTE necessários, a ordem em que a informação deve ser lida, quais Índices 
existem e de que tipo, a Cardinalidade (qtdade de linhas) total e a retornada 
por cada SELECT pra cada tabela) , uma BOA idéia da distribuição de dados (ie, 
qual condição retorna mais ou menos linhas, se uma dada condição é Predominante 
nos seus dados, etc),sem saber fisicamente como as tabelas e índices estão 
criados/distribuídos (isso principalmente pra poder avaliar se um eventual 
table scan está lendo muito bloco em branco, se tem HWM extremamente alto, se 
tem tabela com cópia de dados recém-criada em uso, tipo isso), tem que saber 
Exatamente COMO  QUANDO as estatísticas estão sendo coletadas, coisas assim
 
 b. com a info toda nas mãos, aí é tentar extrair o Plano real de execução 
desse negócio , encontrar os trechos mais complexos/demorados,  testar a query 
com esses trechos removidos (ou super-simplificados ao extremo), re-escrever 
usando métodos de acesso diferentes, que resultem em planos diferentes (vale 
até pra testes inserir HINTs no meio), é por aí 
 
 []s
 
   Chiappa

--- Em oracle_br@yahoogrupos.com.br, Samuel Santos samuel.gsantos@... escreveu

 Pessoal,
 Bom Dia!
 
 Tenho uma consulta no qual está demorando (3 horas) muito tempo para retorar 
 os dados, sendo assim gostaria de utilizar sql tuning advisor - oracle.
 Nunca utilizei este recurso, mas gostaria de aprender a utilizar de modo que 
 me auxilie a indentificar os problemas encontrados em minha consulta.
 
 
 Será que podem me ajudar?
 
  
 Segue a consulta abaixo
 
 
 
 select /*+APPEND*/
    ac.id id_atendimento,
    ca.numero contrato,
    tp.numero_protocolo,
    fu.nome_login as login_usuario,
    pe.nome as nome_usuario,
    gp.nome as area,
    acm.nome as motivo,
    ac.observacao_usuario,
    ac.numero_protocolo as numero_registro,
    --'' numero_registro,
    ac.data_inicio,
    ac.data_criacao data_abertura,
    ac.data_fim,
    ac.id_dono_contrato_assinante,
    tp.inicio_atendimento,
    fim_atendimento,
    p.nome as nome_cliente,
    p.cgc_cpf,
    c.nome as cidade,
    e.copia_bairro as bairro,
    e.copia_cep as cep,
    e.copia_uf as uf,
    (select wm_concat(decode(ct.meio, 'A', 'AD',
  

[oracle_br] Re: Tudo sobre Certificações!

2012-03-09 Por tôpico Vitor Ugo Roda da Rosa Junior
Recomendo :D


Att,/Regards,


Vitor Jr.
Infraestrutura / Infrastructure Team
Oracle 11g DBA Certified Professional - OCP
Oracle Database 11g Performance Tuning Certified Expert - OCE
Oracle Exadata 11g Certified Implementation Specialist
mail, gtalk e msn: vitorj...@gmail.com
skype: vjunior1981



On 09/03/2012, at 12:34, Milton Bastos Henriquis Jr. wrote:

 Olá amigos DBA's!
 
 Gostaria de apresentar a vocês blog Certificação BD, nascido dia 
 08/03/2012, com a intenção de ser o maior portal especializado em 
 certificações de banco de dados do Brasil. Como todo recém-nascido, ele se 
 apresenta ainda pequeno e modesto – mas promete crescer em passos firmes e 
 constantes.
 Aqui vocês terão acesso a qualquer tipo de informações a respeito de 
 Certificação dos principais bancos de dados do mercado. Iniciaremos com mais 
 artigos sobre ORACLE e MySQL. Mas os profissionais de outros databases não 
 precisam ficar chateados: futuramente publicaremos artigos também sobre SQL 
 Server, DB2, Sybase, Postgres, entre outros. Aproveitem!
 
 http://certificacaobd.wordpress.com
 
 -- 
 
 Att,
 
 
 
 
 
 -- 
 Você está recebendo esta mensagem porque se inscreveu no grupo DBA10g dos 
 Grupos do Google.
 Para postar neste grupo, envie um e-mail para dba10...@googlegroups.com.
 Para cancelar a inscrição nesse grupo, envie um e-mail para 
 dba10gii+unsubscr...@googlegroups.com.
 Para obter mais opções, visite esse grupo em 
 http://groups.google.com/group/dba10gii?hl=pt-BR.



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




[oracle_br] Re: Oracle RAC - configuração do Oracle NET

2012-03-09 Por tôpico Alessandro Guimaraes
Opa Marcio que bom que resolveu. São muitos detalhes no RAC
Segui o seu link e vi la o listener.ora.mycluster.
Ainda acho que eh como se fosse algum backup do listener.ora. Também trabalhos 
com ambientes RAC11gR2 e nunca vi um arquivo com este nome
Espero poder ajudar mais na proximna
Abraços
Alessandro Guimarães

--- Em oracle_br@yahoogrupos.com.br, MARCIO CASTRO marciomouracastro@... 
escreveu

 Caro Alessandro:
 
   Antes de mais nada, muito obrigado por me ajudar!
   Logo após enviar o email ao grupo, eu tomei um café, molhei o rosto, 
 efetuei umas flexões... e me lembrei do LOCAL_LISTENER, resolvendo o problema 
 com:
 
 -- na instância 012:
 Alter system set 
 LOCAL_LISTENER=(address=(protocol=tcp)(host=FRBORARAC02-VIP)(port=1522)) 
 scope=spfile sid='ORAPRD012'; 
 Alter system set 
 LOCAL_LISTENER=(address=(protocol=tcp)(host=FRBORARAC02-VIP)(port=1522)) 
 scope=memory sid='ORAPRD012'; 
 ALTER SYSTEM REGISTER;
 
 -- na instância 011:
 Alter system set 
 LOCAL_LISTENER=(address=(protocol=tcp)(host=FRBORARAC01-VIP)(port=1522)) 
 scope=spfile sid='ORAPRD011'; 
 Alter system set 
 LOCAL_LISTENER=(address=(protocol=tcp)(host=FRBORARAC01-VIP)(port=1522)) 
 scope=memory sid='ORAPRD011'; 
 ALTER SYSTEM REGISTER;
 
   E tudo voltou a funcionar lindamente!!!
   A página é do material da própria Oracle:
 
 http://docs.oracle.com/cd/E11882_01/install.112/e24660/undrstnd.htm
 
 
   E se refere ao RAC do 11g R2 (o meu caso) - Understanding the Oracle Real 
 Application Clusters Installed Configuration. O exemplo copiado está no ítem 
 7.9.4 How Oracle Database Uses the Listener File (listener.ora).
 
   Mas ainda não estou entendendo de onde saiu o listener.ora.mycluster...
 
  
 
 Atenciosamente,
 
 
 Márcio de Figueiredo Moura e Castro
 
 
 Oracle 11g DBA OCA
 OPN Certified Specialist
 Oracle 10g DBA OCA
 Oracle PL/SQL Developer OCA
 
 
 
  De: Alessandro Guimaraes alessandro@...
 Para: oracle_br@yahoogrupos.com.br 
 Enviadas: Sexta-feira, 9 de Março de 2012 12:01
 Assunto: [oracle_br] Re: Oracle RAC - configuração do Oracle NET
  
 
   
 
 Marcio,
 Respondendo a suas perguntas
 
 1- Voce usa o Listener do GRID_HOME
 2- Voce não precisa configurar/editar o Listener.ora (embora voce possa 
 faze-lo),uma vez que o Oracle vai fazer o registro das instancias 
 automaticamente. Não existe um arquivo listener.ora.mycluster Deve ter sido 
 um erro do cara que fez o material ou podemos entender (não conseguir achar o 
 seu link) como um backup que ele fez o listenere.ora dele
 Acho que seu arquivo listener.ora esta correto. 
 Para tentar lhe ajudar mais voce poderia responder as perguntas abaixo:
 1- Voce chegou a conectar utilizando o scan antes de mudar o banco pra modo 
 Archive, ou seja, ele chegou funcionar alguma vez ?
 2- O Scan só funciona para clientes 11GR2 é o seu caso ?
 3 - Poderia nos mostrar qual o erro quando voce tenta conectar e o status do 
 comando  crsctl stat res -t
 
 Atc
 Alessandro Guimarães
 
 --- Em oracle_br@yahoogrupos.com.br, MARCIO CASTRO marciomouracastro@ 
 escreveu
 
  Caros colegas:
  
    Foi necessário instalar, nesta madrugada, um RAC composto por somente 
  dois nós em um cliente no seguinte ambiente, utilizando o DNS e SCAN:
  
  Windows Server 2008 R2 64 em VMWare
  Oracle Grid Infrastructure 11.2.0.1.0
  Oracle Database 11.2.0.1.0
  
    Mas houve uma falha no final da instalação, e o ambiente de rede não foi 
  configurado, e eu tive de fazê-lo na mão.
  
    Após diversos testes rebootando as duas máquinas, e com o scan 
  funcionando, resolví colocar o banco no modo archive, e reiniciei novamente 
  as máquinas, mas agora eu só consigo me conectar localmente no banco!
    O grid e o banco estão instalados em uma mesma Oracle Home, em 
  C:\app\11.2.0\grid e em C:\app\oracle\product\11.2.0\dbhome_1.
  
    Meu conhecimento em RAC é mínimo, e a experiência também, e algumas 
  coisas não ficaram claras na documentação, portanto, venho solicitar um 
  auxílio à lista para me responder a algumas perguntas, mas vou começar 
  apenas pela seguinte:
  
  a - cada home tem de ter o seu próprio LISTENER, correto?
  
  Este é conteúdo do LISTENER do GRID:
  
  LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER#
   line added by Agent
  LISTENER_SCAN3=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN3#
   line added by Agent
  LISTENER_SCAN2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2#
   line added by Agent
  LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1#
   line added by Agent
  ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON# line added by Agent
  ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2=ON# line added by Agent
  ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3=ON# line added by Agent
  ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON# line added by Agent
  
  
    Mas conforme a documentação em