Pular para o conteúdo
  • Este tópico contém 14 respostas, 7 vozes e foi atualizado pela última vez 14 anos, 3 meses atrás por fabiogalera.
Visualizando 15 posts - 1 até 15 (de 15 do total)
  • Autor
    Posts
  • #101743
    DBA_LUCAS
    Participante

      Galera , 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 gigas

      e 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 ???

      #101744
      rman
      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…

        #101752
        DBA_LUCAS
        Participante

          Como eu vejo o relatorio do ADDM ???

          #101755
          rman
          Participante

            @DBA_LUCAS

            Qual a versão do Oracle que você está utilizando ?

            Procure no Enterprise Manager por Central Advisor…

            #101760
            DBA_LUCAS
            Participante

              11G …. não achei o central advisor….

              #101761
              felipeg
              Participante

                Entrando 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.

                #101762
                DBA_LUCAS
                Participante

                  Nã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 ….

                  #101763
                  rman
                  Participante

                    @DBA_LUCAS

                    O Enterprise Manager é uma interface web, você pode acessar pelo seu navergador pelo endereço:


                    http://IP:1158/em/

                    #101765
                    vieri
                    Participante

                      Vc 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 1000

                      COLUMN username FORMAT A20
                      COLUMN event FORMAT A30
                      COLUMN wait_class FORMAT A15

                      SELECT 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 A20

                      SELECT 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 A10

                      SELECT 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.

                      #101766
                      vieri
                      Participante

                        Foi 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.

                        #101770
                        Rodrigo Almeida
                        Participante

                          Perguntas 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,

                          #101772
                          vieri
                          Participante

                            Boa 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 pmon

                            e um
                            df -h

                            só vendo pra crer.
                            nem olhei por esse lado.

                            Aguardo resposta…

                            #101805
                            fabiogalera
                            Participante

                              DBA_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 pmon

                              você 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. =)

                              #101814
                              Peterson
                              Participante

                                Fabio, 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.

                                #101836
                                fabiogalera
                                Participante

                                  Mas 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

                                Visualizando 15 posts - 1 até 15 (de 15 do total)
                                • Você deve fazer login para responder a este tópico.