- Este tópico contém 14 respostas, 7 vozes e foi atualizado pela última vez 14 anos, 3 meses atrás por
fabiogalera.
-
AutorPosts
-
22 de novembro de 2011 às 9:06 pm #101743
DBA_LUCAS
ParticipanteGalera , estou tendo muitos problemas de performance … vou tentar passar meu ambiente de trabalho ….
Servidor Linux red hat 24 gigas de ram 2 tera de HD …
Tenho 20 base de dados nele …
1 de 700 gigas
2 de 300 gigas
1 de 200 gigase as demais inferiores a 100 gigas …..
Minhas configurações de memoria são:
SGA_MAX_SIZE —– 11056M
SGA_TARGET —– 0
MEMORY_MAX_TARGET —–18G
MEMORY_TARGET —– 18G….
alguem pode me ajudar ???
22 de novembro de 2011 às 9:14 pm #101744rman
Participante@DBA_LUCAS
Então… problemas de performance é muito vago… pode ser muita coisa…
Comece pelo relatório ADDM, ele pode ser o seu guia…
22 de novembro de 2011 às 11:22 pm #101752DBA_LUCAS
ParticipanteComo eu vejo o relatorio do ADDM ???
23 de novembro de 2011 às 12:19 am #101755rman
Participante@DBA_LUCAS
Qual a versão do Oracle que você está utilizando ?
Procure no Enterprise Manager por Central Advisor…
23 de novembro de 2011 às 3:10 pm #101760DBA_LUCAS
Participante11G …. não achei o central advisor….
23 de novembro de 2011 às 3:55 pm #101761felipeg
ParticipanteEntrando no Enterprise manager > Home, vá até o final da página.
Na parte de “Related Links” já tem um link direto pro Advisor Central.Isso tanto no 10g quanto no 11g.
Sugiro começar a ler a documentação da Oracle sobre os assuntos, principalmente, pra você, o documento 2 Day DBA + Performance Tuning Guide.
Outra leitura extremamente recomendada é o Expert Oracle Database Architecture 9i, 10g and 11g do Tom Kyte.
Atenciosamente,
Felipe.23 de novembro de 2011 às 4:07 pm #101762DBA_LUCAS
ParticipanteNão sei se estou no lugar certo … mas abri o CONSOLE DO ORACLE ENTERPRISE MANAGER ….
Acima tenho as abas ARQUIVO,NAVEGADOR,OBJETO,FERRAMENTAS,CONFIGURAÇÃO,AJUDA …
abaixo no canto esquerdo tenho alguns icones e pouco mais para a direita a arvore de bancos de dados …Mas não achei esse link ….
23 de novembro de 2011 às 4:24 pm #101763rman
Participante@DBA_LUCAS
O Enterprise Manager é uma interface web, você pode acessar pelo seu navergador pelo endereço:
http://IP:1158/em/
23 de novembro de 2011 às 5:39 pm #101765vieri
ParticipanteVc nunca mecheu no E.M ?
provavelmente não é DBA, está quebrando galho…
mas vamos lá…
Quando reclamarem de lentidão:
entre na aba performance,
depois principal atividade.
Vc vai ver um gráfico. Ve qual processo está consumindo um alto %.
E logo a direita vc verá um botão {EXECUTAR RELATORIO ASH} clique nele.E /OU então em qq ferramenta client:
executa as queryes abaixo.PROMPT ======================================================================
PROMPT CONTENÇÂO
PROMPT ======================================================================SELECT SUBSTR(TO_CHAR(w.session_id),1,5) W_SID, p1.spid W_PID,
SUBSTR(s1.username,1,12) Waiting_User,
SUBSTR(s1.osuser,1,8) W_OS_User,
SUBSTR(s1.program,1,20) W_Program,
s1.client_info W_Client,
SUBSTR(TO_CHAR(h.session_id),1,5) H_SID, p2.spid H_PID,
SUBSTR(s2.username,1,12) Holding_User,
SUBSTR(s2.osuser,1,8) H_OS_User,
SUBSTR(s2.program,1,20) H_Program,
s2.client_info H_Client,
o.object_name H_Object
FROM gv$process p1, gv$process p2, gv$session s1,
gv$session s2, dba_locks w, dba_locks h, dba_objects o
–WHERE w.last_convert > 120
Where h.mode_held != ‘None’
AND h.mode_held != ‘Null’
AND w.mode_requested != ‘None’
AND s1.row_wait_obj# = o.object_id
AND w.lock_type(+) = h.lock_type
AND w.lock_id1(+) = h.lock_id1
AND w.lock_id2 (+) = h.lock_id2
AND w.session_id = s1.sid (+)
AND h.session_id = s2.sid (+)
AND s1.paddr = p1.addr (+)
AND s2.paddr = p2.addr (+)
ORDER BY w.last_convert desc;SET LINESIZE 200
SET PAGESIZE 1000COLUMN username FORMAT A20
COLUMN event FORMAT A30
COLUMN wait_class FORMAT A15SELECT s.inst_id,
NVL(s.username, ‘(oracle)’) AS username,
s.sid,
s.serial#,
sw.event,
sw.wait_class,
sw.wait_time,
sw.seconds_in_wait,
sw.state
FROM gv$session_wait sw,
gv$session s
WHERE s.sid = sw.sid
AND s.inst_id = sw.inst_id and sw.event not in (‘SQL*Net message from client’)
ORDER BY sw.seconds_in_wait asc;— Call Syntax : @monitor_memory_rac
— Last Modified: 15-JUL-2000
SET LINESIZE 200
COLUMN username FORMAT A20
COLUMN module FORMAT A20SELECT a.inst_id,
NVL(a.username,'(oracle)’) AS username,
a.module,
a.program,
Trunc(b.value/1024) AS memory_kb,
sum(Trunc(b.value/1024) AS memory_kb_total
FROM gv$session a,
gv$sesstat b,
gv$statname c
WHERE a.sid = b.sid
AND a.inst_id = b.inst_id
AND b.statistic# = c.statistic#
AND b.inst_id = c.inst_id
AND c.name = ‘session pga memory’
–AND a.program IS NOT NULL
–and program like ‘%SQL%’
ORDER BY b.value DESC;select
username,
machine,
inicio_logon,
fim_logon,
sum(sess_ativas) as sess_ativas,
sum(sess_inativas) as sess_inativas,
sysdate
from (
select
s.username as username,
s.machine as machine,
(case when status = ‘ACTIVE’ then count() end) as sess_ativas,
(case when status ‘ACTIVE’ then count() end) as sess_inativas,
min(s.logon_time) as inicio_logon,
max(s.logon_time) as fim_logon
from v$session s,
v$process p
where s.paddr = p.addr
and s.username is not null
group by s.username, s.machine, s.status
) group by username, machine, inicio_logon, fim_logon order by username, machine;PROMPT ======================================================================
PROMPT ======================================================================
PROMPT EXECUÇÔES LONGAS
PROMPT ======================================================================SET LINESIZE 200
COLUMN sid FORMAT 9999
COLUMN serial# FORMAT 9999999
COLUMN machine FORMAT A30
COLUMN progress_pct FORMAT 99999999.00
COLUMN elapsed FORMAT A10
COLUMN remaining FORMAT A10SELECT s.inst_id,
s.sid,
s.serial#,
s.username,s.osuser,
s.module,
ROUND(sl.elapsed_seconds/60) || ‘:’ || MOD(sl.elapsed_seconds,60) elapsed,
ROUND(sl.time_remaining/60) || ‘:’ || MOD(sl.time_remaining,60) remaining,
ROUND(sl.sofar/sl.totalwork*100, 2) progress_pct
FROM gv$session s,
gv$session_longops sl
WHERE s.sid = sl.sid
AND s.inst_id = sl.inst_id
AND s.serial# = sl.serial#;select * from GV$SGA_DYNAMIC_COMPONENTS;
Select p.spid, p.addr, s.sid, s.serial#, s.username, s.osuser, s.status, s.server, s.logon_time, s.sql_hash_value, TO_CHAR (s.last_call_et / 3600, ‘009.99’) inatividade, s.machine, s.program, p.pga_used_mem, p.pga_alloc_mem, p.pga_freeable_mem, pga_max_mem, sql.sql_text
From v$session s, v$process p, v$sql sql
Where s.username is not null
And s.paddr = p.addr (+)
And s.sql_address = sql.address
— and s.sid = 1082
Order by s.last_call_et desc;Vai dar uma visão geral do ambiente.
Provavelmente seu S.O é linux.
Da um TOP , SAR 1 10 no prompt de comando para vermos o comportamento.
posta o resultado aqui.
23 de novembro de 2011 às 5:42 pm #101766vieri
ParticipanteFoi mal pela frase:
provavelmente não é DBA, está quebrando galho..agora que li o DBA júnior.
comece a ler sobre tuning , waits, tem mtos materiais bons na internet.
segue o roteiro que te falei que vai adiantar mta coisa, para elucidação.
ai nós vamos trocando idéia por aqui, até descobrir aonde está seu gargalo.
e a galera vai te ajudando tb.
[]s.
23 de novembro de 2011 às 8:42 pm #101770Rodrigo Almeida
ParticipantePerguntas rápidas.
1) QUAL O VALOR DE SGA PARA CADA BANCO DE DADOS?
2) TAMANHO: O 1 é 700GB, o 2º é 300GB e o 3º é 200GB. São 1.2TB.
Falta ainda 17 bases que está menos que 100GB, então, seu DISCO já deve estar FULL. Pois tem apenas 800GB livres para ocupar com datafiles, logs, traces e tudo mais.
3) ACHO, na minha opinião, que a sua máquina está MAL DIMENSIONADA! Se para 1 banco de dados está usando SGA de 11GB, com as outras 19 bases no AR está usando mais memória do que tem físicamente na máquina. E assim, SWAP! LENTO!
4) Um disco de 2TB, se é um único disco, É LENTO DEMAIS! Só me fala que está em RAID 5 também para ajudar a LENTIDÃO.
MAS! OLHE! Veja a SGA de cada banco de dados, SOMA, e veja se o TOTAL de SGA de cada BANCO DE DADOS fica até 90% do TOTAL de MEMÓRIA FÍSICA da MÁQUINA!
Abraços,
23 de novembro de 2011 às 9:03 pm #101772vieri
ParticipanteBoa rodrigo!!
Mas to achando que ele se confundiu… 20 instâncias ?!?!!?
Não são 20schemas espalhados em 4 databases?pra mim é suicidio.. isso vai ficar lento mesmo!!
manda pra gente ai um
ps -ef | grep pmone um
df -hsó vendo pra crer.
nem olhei por esse lado.Aguardo resposta…
25 de novembro de 2011 às 2:07 am #101805fabiogalera
ParticipanteDBA_LUCAS,
Acredito que você esteja dizendo “base de dados” em outro sentido.
O termo “Base de Dados”, pode simplesmente significar um mundo extremamente grande, como também um documento excel onde possui informações, isso também seria um Banco de Dados.
Vamos lá, afim de descobrir quantas instâncias você tem, execute no Linux (terminal):
ps -ef | grep pmonvocê verá algo como:
xubaca> ps -ef | grep pmon | grep -v grep
oracle 11812 1 0.0 Nov 20 ?? 0:03.90 ora_pmon_XITA
xubaca>
ora_pmon_XITA – XITA é sua Instancia.
Entre na base de dados e nos envie o retorno desses comandos
show parameter pool
show parameter cache
show parameter memory
show parameter filesystem
show parameter cursor
obs: Uma pessoa não mexer no E.M não quer dizer que não seja um DBA, é completamente aceitável ser DBA e não usar E.M. =)
25 de novembro de 2011 às 3:02 pm #101814Peterson
ParticipanteFabio, concordo com você, mas um DBA com o mínimo de contato com o Oracle já tem alguma experiência em navegação no EM.
E a maneira que é dito “base de dados” nos leva a crer se tratar de um servidor Oracle (instância + base). Para suporte, o uso de termos corretos facilita a vida de todo mundo.25 de novembro de 2011 às 7:02 pm #101836fabiogalera
ParticipanteMas qual o termo correto ?
A questão que eu quis levantar é o fato que Banco de Dados poder significar diferentes coisas em diferentes contexto.
O que pode ser um schema para os DBAs, para uma legião de programadores/desenvolvedores aquele SCHEMA é uma Base de Dados, é a BD deles.
=)
DBA_LUCAS,
Tenha a certeza de possuir as licensas de Diagnostic/Tuning Pack antes de usar ADDM e AWR.
Para executar o ADDM, basta executar
@?/rdbms/admin/addmrpt
e o awr:
@?/rdbms/admin/awrrpt
-
AutorPosts
- Você deve fazer login para responder a este tópico.