[oracle_br] Oracle RAC 11g problema memória

2014-03-10 Por tôpico Ever Santoro
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

2014-03-10 Por tôpico Sérgio Luiz Rodrigues Chaves
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

2014-03-10 Por tôpico jlchiappa
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

2014-03-10 Por tôpico jlchiappa
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

2014-03-10 Por tôpico wilson.junior87
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?

2014-03-10 Por tôpico Marcelo Santino
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?

2014-03-10 Por tôpico Vitor Junior
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?

2014-03-10 Por tôpico Ivan Ricardo Schuster
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?

2014-03-10 Por tôpico Milton Bastos Henriquis Jr.
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