Bom dia Raul

Olha, tem bastante coisa pra analisar, dificil dizer assim, mas pra
ajudar, responda a algumas perguntas:

- Que 10g é este teu banco? 10.2.0.1? 10.2.0.5?
- Você tem os CPUs/PSUs atualizados?
- O que levou você a descobrir que seu problema é System I/O?
- A desfragmentação dos objetos foi uma tentativa de resolver o
problema ou um possível causador?
- Algum erro no alert log?


2011/6/8 raulcsneto <raulcsn...@yahoo.com>:
> Bom dia
>
> Tenho um banco de 230Gb rodando no 10G estou tendo muitos problemas de System 
> I/O, será que alguem poderia me ajudar a verificar a causa deste problema, 
> segue abaixo um resumo do meu cenário e das ações que já tomei:
>
> O Oracle 10G roda em um servidor Redhat 5 com dois processadores Quad-core 
> Xeon 2.66Ghz, 20Gb de memória, dos quais 18Gb estão alocadas para o oracle.
>
> Possuo um Disco Virtual com 8 discos SAS de 15.000Rpm e 143Gb em RAID 10, 
> totalizando 544Gb para Dados e Indices;
>
> Possuo um Disco Virtual com 2 discos SAS de 15.000Rpm e 143Gb em RAID 0, 
> totalizando 272Gb para Redo;
>
> Possuo um Disco Virtual com 2 discos SAS de 15.000Rpm e 143Gb em RAID 0, 
> totalizando 272Gb para Archives;
>
> Estes tres volumes estão em uma controladora PERC6/E todos segmentados em 
> Stripes de 512k;
>
> Possuo Tablespaces separadas para Dados e Indices criadas com alocação 
> uniforme de 512k com datafiles de 2Gb;
>
> Recentemente movi todas as tabelas e indices para tablespaces novas para 
> eliminar a fragmentação;
>
> Caso alguem conheça algo que eu possa fazer para tentar descobrir onde está o 
> problema, seria de grande valor par mim, pois já esgotei todas as minhas 
> possibilidades, e a várias noites já não sei o que é dormir direito.
>
> Seguem abaixo algumas querys que fiz, meus resultados estão de acordo em 
> todas elas:
>
> ÍNDICE DE ACERTOS NO CACHE
> ==========================
> (quanto mais BHR próximo a 1, melhor)
>
> column bhr format 9.99
> column mydate heading 'Ano  Me Di Hora'
> select to_char(end_interval_time,'yyyy-mm-dd HH24')      mydate,
>   new.name                                  "Buffer Pool",
>   (((new.consistent_gets-old.consistent_gets)+
>   (new.db_block_gets-old.db_block_gets))-
>   (new.physical_reads-old.physical_reads)) /
>   ((new.consistent_gets-old.consistent_gets)+
>   (new.db_block_gets-old.db_block_gets))    bhr
> from
>   dba_hist_buffer_pool_stat old,
>   dba_hist_buffer_pool_stat new,
>   dba_hist_snapshot sn
> where
>   (((new.consistent_gets-old.consistent_gets)+
>   (new.db_block_gets-old.db_block_gets))-
>   (new.physical_reads-old.physical_reads)) /
>   ((new.consistent_gets-old.consistent_gets)+
>   (new.db_block_gets-old.db_block_gets)) > 0
> and
>   new.name = old.name
> and
>   new.snap_id = sn.snap_id
> and
>   old.snap_id = sn.snap_id-1
> order by mydate;
>
> ÍNDICE DE ACERTOS DE CACHE PARA OBJETOS DO DICIONÁRIO DE DADOS
> ==============================================================
> (hit ratio deve estar próximo a 1 - apesar de ser inviável para alguns 
> objetos, como sequences)
>
> select
> parameter "Parametro",
> gets,
> Getmisses ,
> getmisses/(gets+getmisses)*100 "Taxa de erro",
> (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Taxa de acerto"
> from v$rowcache
> where gets+getmisses <>0
> group by parameter, gets, getmisses ;
>
> ÍNDICE DE ACERTOS NO CACHE POR SESSÃO
> =====================================
> (hit ratio deve estar próximo a 1 - apesar de 1 ser improvável)
>
> select Username,
> OSUSER,
> Consistent_Gets,
> Block_Gets,
> Physical_Reads,
> 100*( Consistent_Gets + Block_Gets - Physical_Reads)/
> ( Consistent_Gets + Block_Gets ) "Hit Ratio %"
> from V$SESSION,V$SESS_IO
> where V$SESSION.SID = V$SESS_IO.SID
> and ( Consistent_Gets + Block_Gets )>0
> and username is not null
> order by Username,"Hit Ratio %";
>
> ÍNDICES DE CONTENÇÃO DE LATCH DE REDO
> =====================================
> (quanto mais abaixo de 1 os ratios, melhor)
>
> SET feedback OFF
> COLUMN name FORMAT a15
> COLUMN gets FORMAT 99999999
> COLUMN misses FORMAT 999999
> COLUMN immediate_gets FORMAT 99999999 HEADING 'IMM_GETS'
> COLUMN immediate_misses FORMAT 99999999 HEADING 'IMM_MISSES'
> PROMPT Examining Contention for Redo Log Buffer Latches...
> PROMPT ----------------------------------------------------
>
> SELECT name, gets, misses, immediate_gets, immediate_misses,
> Decode(gets,0,0,misses/gets*100) ratio1,
> Decode(immediate_gets+immediate_misses,0,0,
> immediate_misses/(immediate_gets+immediate_misses)*100) ratio2
> FROM v$latch WHERE name IN ('redo allocation', 'redo copy');
>
> ORDENAÇÕES EM MEMÓRIA/DISCO
> ===========================
> (quanto mais memória e menos disco, melhor)
>
> SET HEADING OFF
> SET FEEDBACK OFF
> COLUMN name FORMAT a30
> COLUMN value FORMAT 99999990
>
> SELECT name, value FROM v$sysstat
> WHERE name IN ('sorts (memory)', 'sorts (disk)');
>
>
>
>
> ------------------------------------
>
> --------------------------------------------------------------------------------------------------------------------------
>>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
>
>
>



-- 
Ivan Ricardo Schuster
OCP 10g/11g
OCE RAC 10g/Linux

Responder a