[oracle_br] Oracle RAC 11g problema memória
Pessoal, não sei se vocês passam por isso, mas tenho um oracle rac (11g R2) e de tempos em tempos (coisa de 15 dias) preciso reiniciá-los para liberar memória, já apliquei alguns patches mas sem solução, alguém já passou por isso? Oracle Database 11g Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production CORE11.2.0.3.0 Production TNS for Solaris: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production Oracle Interim Patch Installer version 11.2.0.3.4 OPatch version: 11.2.0.3.4 OUI version : 11.2.0.3.0 Oracle Database 11g 11.2.0.3.0 There are 1 products installed in this Oracle Home. Interim patches (2) : Patch 16902043 : applied on Tue Oct 29 17:59:40 GMT-03:00 2013 Unique Patch ID: 16755734 Patch description: Database Patch Set Update : 11.2.0.3.8 (16902043) Created on 26 Sep 2013, 22:45:39 hrs PST8PDT Patch 17076717 : applied on Tue Oct 29 17:55:51 GMT-03:00 2013 Unique Patch ID: 16788431 Patch description: Grid Infrastructure Patch Set Update : 11.2.0.3.8 (HAS Components) Created on 11 Oct 2013, 08:43:06 hrs UTC Rac system comprising of multiple nodes Local node = t4-rac1 Remote node = t4-rac2 Máquina após reiniciar last pid: 27371; load avg: 2.45, 2.41, 2.25; up 0+00:46:54 09:31:39 407 processes: 402 sleeping, 5 on cpu CPU states: 96.6% idle, 2.4% user, 0.9% kernel, 0.0% iowait, 0.0% swap Kernel: 27662 ctxsw, 22187 trap, 41650 intr, 42282 syscall, 320 flt Memory: 32G phys mem, 5849M free mem, 32G total swap, 32G free swap Máquina depois de 16 dias load averages: 4.01, 4.03, 4.14; up 16+17:59:12 07:16:39 390 processes: 385 sleeping, 5 on cpu CPU states: 93.9% idle, 4.3% user, 1.7% kernel, 0.0% iowait, 0.0% swap Kernel: 21231 ctxsw, 13670 trap, 21134 intr, 32224 syscall, 713 flt, 32 pgin Memory: 32G phys mem, 1171M free mem, 32G total swap, 28G free swap aparentemente este processo vai consumindo cada vez mais memória 2982 root 11 100 -20 6497M 1188M sleep 770:15 0.05% osysmond.bin chegando a 500MB livres o sistema operacional (Solaris) fica sem memória e preciso reiniciar o banco de dados.
Re: [oracle_br] Problema com Proc enviando e-mail
wilson, Deixa eu ver se entendi... Você quer um único email... então o envio deve ser fora do loop. se o tamanho é pequeno então o coloque com 32760. CREATE OR REPLACE PROCEDURE WJOB_AGENDADOS AS -- PROC PARA ENVIAR E-MAIL DOS AGENDAMENTOS DO DIA POSTERIOR V_EMAIL_CORPO VARCHAR2(32760); Z_NOME_CLI OS_AGENDA.CLIENTE_NOME%TYPE; Z_DATA_AGENDADA OS_AGENDA.DATA_AGENDADA%TYPE; Z_QUEM_AGENDOU OS_AGENDA.QUEM_ABRIU%TYPE; Z_OBSERVACOES OS_AGENDA.OBSERVACOES%TYPE; Z_TECNICO SERVICOS_TECNICOS.NOME%TYPE; CURSOR C_AGENDA IS SELECT A.CLIENTE_NOME, TRUNC(A.DATA_AGENDADA), A.QUEM_ABRIU, B.DESCRICAO, S.NOME FROM OS_AGENDA A, PRISMA_BOX B, SERVICOS_TECNICOS S WHERE A.PRISMA = B.PRISMA AND S.COD_TECNICO = B.COD_TECNICO AND A.COD_CLIENTE 1 AND TRUNC(A.DATA_AGENDADA) = TRUNC(SYSDATE) + 1; BEGIN OPEN C_AGENDA; V_EMAIL_CORPO :=NULL; LOOP FETCH C_AGENDA INTO Z_NOME_CLI, Z_DATA_AGENDADA, Z_QUEM_AGENDOU, Z_OBSERVACOES, Z_TECNICO; EXIT WHEN C_AGENDA%NOTFOUND; V_EMAIL_CORPO :=V_EMAIL_CORPO|| ('CLIENTE:' || Z_NOME_CLI || ' / DATA AG.:' || Z_DATA_AGENDADA || ' / CONSULTOR: ' || Z_QUEM_AGENDOU || ' / TECNICO: ' || Z_TECNICO); END LOOP; WENVIA_EMAIL_3(P_ASSUNTO = 'TESTE ASSUNTO', P_MENSAGEM = V_EMAIL_CORPO, P_REMETENTE = 'em...@email.com.br', P_DESTINATARIO = 'em...@email.com.br'); CLOSE C_AGENDA; END; - Original Message - From: wilson junior87 wilson.junio...@yahoo.com To: oracle br oracle_br@yahoogrupos.com.br Sent: Domingo, 9 de Março de 2014 23:53:29 Subject: [oracle_br] Problema com Proc enviando e-mail Galera, gostaria de contar com a ajuda de vocês .. estou com pequeno impasse para resolver. Na verdade o problema é simples, mas infelizmente não consegui resolver do jeito que quero. No final do expediente, o analista de crédito daqui da empresa precisa receber uma lista do clientes agendados para o dia seguinte, para que ele analise e libere ou não o crédito para o cliente efetuar uma compra a prazo. Eu fiz a procedure abaixo para ser executada através do job e até aí tubo bem, MAS, ao enviar e-mail para o analista, a proc envia um e-mail para cada registro que o select retorna. Eu preciso que seja enviado um e-mail só, com todos os clientes agendados, e não consegui. Alguém poderia me dar uma força para solucionar esse problema? rsrs Agradeço desde já! CREATE OR REPLACE PROCEDURE WJOB_AGENDADOS AS -- PROC PARA ENVIAR E-MAIL DOS AGENDAMENTOS DO DIA POSTERIOR V_EMAIL_CORPO VARCHAR2(4000); Z_NOME_CLI OS_AGENDA.CLIENTE_NOME%TYPE; Z_DATA_AGENDADA OS_AGENDA.DATA_AGENDADA%TYPE; Z_QUEM_AGENDOU OS_AGENDA.QUEM_ABRIU%TYPE; Z_OBSERVACOES OS_AGENDA.OBSERVACOES%TYPE; Z_TECNICO SERVICOS_TECNICOS.NOME%TYPE; CURSOR C_AGENDA IS SELECT A.CLIENTE_NOME, TRUNC(A.DATA_AGENDADA), A.QUEM_ABRIU, B.DESCRICAO, S.NOME FROM OS_AGENDA A, PRISMA_BOX B, SERVICOS_TECNICOS S WHERE A.PRISMA = B.PRISMA AND S.COD_TECNICO = B.COD_TECNICO AND A.COD_CLIENTE 1 AND TRUNC(A.DATA_AGENDADA) = TRUNC(SYSDATE) + 1; BEGIN OPEN C_AGENDA; LOOP FETCH C_AGENDA INTO Z_NOME_CLI, Z_DATA_AGENDADA, Z_QUEM_AGENDOU, Z_OBSERVACOES, Z_TECNICO; EXIT WHEN C_AGENDA%NOTFOUND; V_EMAIL_CORPO := ('CLIENTE:' || Z_NOME_CLI || ' / DATA AG.:' || Z_DATA_AGENDADA || ' / CONSULTOR: ' || Z_QUEM_AGENDOU || ' / TECNICO: ' || Z_TECNICO); WENVIA_EMAIL_3(P_ASSUNTO = 'TESTE ASSUNTO', P_MENSAGEM = V_EMAIL_CORPO, P_REMETENTE = 'em...@email.com.br', P_DESTINATARIO = 'em...@email.com.br'); END LOOP; CLOSE C_AGENDA; END;
[oracle_br] RE: Oracle RAC 11g problema memória
Dá um look na nota metalink Cluster Health Monitor (CHM/OS) osysmond.bin High Resource (CPU, Memory and FD etc) Usage (Doc ID 1554116.1) que vc acha Diversos bugs desse cara consumindo em excesso, e CONFIRME com um Chamado no Suporte Oracle em qual/quais vc pode estar caindo E Como vc vai notar, Diversos deles foram corrigidos em PSUs recentes (os quais ao que parece vc Não Aplicou nenhum, pois tua versão está 11.2.0.3.0, com algum PSU ela iria para 11.2.0.3.x) e/ou no patchset 11.2.0.4 : muito provavelmente o Suporte vai INSISTIR para que vc, se não puder aplicat p atchset 11.2.0.4, que ao menos vc aplique o PSU mais recente... E é claro, o Cluster Health Monitor é um processo ** auxiliar e Opcional ** , absolutamente nada impede vc de o parar (via crsctl stop resource ora.crf -init , normalmente) para estabilizar o ambiente enquanto vc investiga mais... []s Chiappa
[oracle_br] RE: Problema com Proc enviando e-mail
Depende : ** SE ** vc tem total certeza que os dados / registros sendo lidos absolutamente nunca ultrapassam o limite máximo de uma variável string no PL/SQL (ie, 32767 bytes), vc simplesmente redimensiona a variável V_EMAIL_CORPO para varchar2(32767), continua concatenando cada registro lido nela que nem vc faz hoje e apenas MOVE a chamada da WENVIA_EMAIL_3 para fora do loop Já se pode acontecer do tamanho total do corpo do email (contando cabeçalhos e todos os registros de dados lidos/concatenados) crescer mais que isso, aí a solução é vc gravar um arquivo-texto (com UTL_FILE) com os dados e alterar a rotina de envio de email para que envie o arquivo como um attachment : se for esse o caso, nos diga a versão exata do banco e nos diga se a tal WENVIA_EMAIL_3 usa UTL_MAIL ou UTL_SMTP pra enviar o email, que a gente pode indicar links e refs []s Chiappa
[oracle_br] (RESOLVIDO) RE: Problema com Proc enviando e-mail
Olá, bom dia! Humm .. na verdade nunca vai ultrapassar esse tamnho, porque temos disponíveis apenas 36 horários disponíveis em cada loja, e pensando em um dia de movimento a oficina teria 36 clientes agendados por dia, sendo que cada registro retornaria no máximo 80 bytes cada .. não teria como estourar o tamanho de 32760. Testei aqui e deu certo com a dica de vocês. Fico MUITO grato pela ajuda, vai evitar muita reclamação do responsável pela análise de crédito. Abraços e mais uma vez, muito obrigado. - Wilson.
[oracle_br] Aplicar PSU ou não?
Pessoal, tudo bem? Eu considero importante sempre manter o Oracle com os patchs mais recentes, mas e quanto aos PSUs, devo seguir a mesma regra ou apenas aplicar quando identificar um problema real que afeta a base em questão e que ele possa corrigir? Abs, *Marcelo Santino* DBA SQL Server / Oracle www.bau-de-dev.com http://www-bau-de-dev.com +55 21 98206-9930 http://www.facebook.com/CelaoRJ http://br.linkedin.com/in/msantino http://twitter.com/#!/msantino
Re: [oracle_br] Aplicar PSU ou não?
Marcelo, por boa prática procuro sempre aplicar os psu's também. O último que apliquei, entretanto, 11.2.0.3.7 não trouxe boas experiências. Apareceram vários bugs com mviews que só foram corrigidos com off patchs ou no psu posterior 11.2.0.3.8 e pra cima. No geral é aquilo: - aplica em hlg - homologa - aplica em prod Afinal, é bom lembrar e ressaltar que GERALMENTE esses psu's vem pra ajudar, com correção de bugs e afins. Em alguns casos isolados, como esse que relatei, temos um problema. Abraço. Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - OCE Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist Oracle Certified Associate, MySQL 5 mail, gtalk e msn: vitorj...@gmail.com http://certificacaobd.com.br/ skype: vjunior1981 https://mybizcard.co/vitor.jr.385628 Em 10 de março de 2014 21:59, Marcelo Santino e...@marcelosantino.com.brescreveu: Pessoal, tudo bem? Eu considero importante sempre manter o Oracle com os patchs mais recentes, mas e quanto aos PSUs, devo seguir a mesma regra ou apenas aplicar quando identificar um problema real que afeta a base em questão e que ele possa corrigir? Abs, *Marcelo Santino* DBA SQL Server / Oracle www.bau-de-dev.com http://www-bau-de-dev.com +55 21 98206-9930 http://www.facebook.com/CelaoRJ http://br.linkedin.com/in/msantino http://twitter.com/#!/msantino
Re: [oracle_br] Aplicar PSU ou não?
Bem, é uma questão um pouco complexa, não há verdade absoluta. Já fui questionado por cliente do porquê de não ter aplicado um patch existente em um ambiente novo que falhou por bug já conhecido. Por outro lado, patchsets, PSUs, CPUs, etc corrigem diversos bugs mas podem trazer bugs novos. Se eu tenho aplicados os últimos patches existentes, quem vai me salvar quando eu encontrar um bug novo introduzido pelo ultimo PSU lançado? Aí é esperar a boa vontade da Oracle em corrigi-los. 2014-03-10 21:59 GMT-03:00 Marcelo Santino e...@marcelosantino.com.br: Pessoal, tudo bem? Eu considero importante sempre manter o Oracle com os patchs mais recentes, mas e quanto aos PSUs, devo seguir a mesma regra ou apenas aplicar quando identificar um problema real que afeta a base em questão e que ele possa corrigir? Abs, *Marcelo Santino* DBA SQL Server / Oracle www.bau-de-dev.com http://www-bau-de-dev.com +55 21 98206-9930 http://www.facebook.com/CelaoRJ http://br.linkedin.com/in/msantino http://twitter.com/#!/msantino
Re: [oracle_br] Aplicar PSU ou não?
Pois é, pode acontecer de uma PSU corrigir vários bugs que NUNCA afetaram teu ambiente, mas daí o mesmo PSU trazer um bug novo que afeta diretamente tua aplicação. Haja testes! Em 10 de março de 2014 22:37, Ivan Ricardo Schuster ivanr...@gmail.comescreveu: Bem, é uma questão um pouco complexa, não há verdade absoluta. Já fui questionado por cliente do porquê de não ter aplicado um patch existente em um ambiente novo que falhou por bug já conhecido. Por outro lado, patchsets, PSUs, CPUs, etc corrigem diversos bugs mas podem trazer bugs novos. Se eu tenho aplicados os últimos patches existentes, quem vai me salvar quando eu encontrar um bug novo introduzido pelo ultimo PSU lançado? Aí é esperar a boa vontade da Oracle em corrigi-los. 2014-03-10 21:59 GMT-03:00 Marcelo Santino e...@marcelosantino.com.br: Pessoal, tudo bem? Eu considero importante sempre manter o Oracle com os patchs mais recentes, mas e quanto aos PSUs, devo seguir a mesma regra ou apenas aplicar quando identificar um problema real que afeta a base em questão e que ele possa corrigir? Abs, *Marcelo Santino* DBA SQL Server / Oracle www.bau-de-dev.com http://www-bau-de-dev.com +55 21 98206-9930 http://www.facebook.com/CelaoRJ http://br.linkedin.com/in/msantino http://twitter.com/#!/msantino