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

      Caros amigos , estou precisando mais uma vez da ajuda de vocês. Tenho um servidor onde acontece varios acessos a varios schemas . Ocasionando varias sessoes ao mesmo tempo . É um servidor para teste de softwares , porém estou ficando com muitas sessões no servidor inativas,as vezes fica 5 sessoes da mesma pessoa inativa e 1 ativa , preciso saber qual o custo disso ? um jeito para matar essas sessoes ?

      #101318
      leandrolbs
      Participante

        sessão inativa significa que o usuário não está dando manutenção, ou executando nada…. porem se vc matar esta sessão terá erros quando usuário for utilizar aquele aplicativo aberto;
        O custo de sessões inativas não é significativo, custa mesmo é de parametros como processes..etc
        Taduzindo, não iria pelo caminho de sessions inativas.

        #101319
        DBA_LUCAS
        Participante

          Digo porque li uma vez sobre reciclar a sessao torando-as SNIPED , pois mesmo depois que os usuario saem do sistema as sessoes ficam la e são essas que eu queria eliminar …

          #101320
          vieri
          Participante

            PROMPT ======================================================================
            PROMPT ======================================================================
            PROMPT Consumo de memoria por usuários
            PROMPT ======================================================================

            SET LINESIZE 200

            COLUMN username FORMAT A20
            COLUMN module FORMAT A20
            COLUMN osuser FORMAT A10

            SELECT a.osuser,a.status,a.inst_id,
            NVL(a.username,'(oracle)’) AS username,
            a.module,
            a.program,
            trunc(b.value/1024) AS memory_kb
            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
            — incluir filtroAND a.osuser in(‘gchaves’,’mdamasceno’)
            ORDER BY b.value DESC;

            O proprio banco coloca em sniped, até aonde eu sei não existe um comando que faz isso!! Com a query acima vc pode acompanhar oque cada sessão consome de memoria.. esse é o custo de sessões inativas dentor do seu cenário. Mas isso ai é normal em qq ambiente.. o problema é qdo temos excessos.

            #101322
            DBA_LUCAS
            Participante

              Uso de profiles no Oracle — Limite de Tempo inativo da Sessão
              Posted by: admin In: Administração

              Usando profiles para eliminar sessões que ficam inativas por um longo tempo
              consumindo recursos do servidor Oracle.

              1). Altere o parâmetro de inicialização RESOURCE_LIMIT para TRUE, vem default FALSE

              ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=BOTH;

              2). Crie um profile com um nome desejado por você

              Create profile Meu_profile
              limit idle_time 1 — Tempo em Minutos (1 minuto)
              ;

              3). Crie um usuário ou associe um pré-existente

              create user teste identified by teste
              profile meu_profile;

              grant create session to teste;

              1. Conecte-se ao Oracle com este usuário

              Connect teste/teste@ORCL

              SELECT SYSDATE FROM DUAL

              SYSDATE
              ——————–
              09-MAR-2009 10:39:43

              /
              SELECT SYSDATE FROM DUAL
              *
              ERRO na linha 1:
              ORA-02396: tempo inativo máximo excedido; conecte-se novamente

              5). Verifique o que ocorreu na sessão do usuário Teste com outro usuário (SYSTEM)

              SQL> select username,status
              2 from v$session
              3* where username is not null

              USERNAME STATUS
              —————————— ——–
              TESTE SNIPED
              SYSMAN ACTIVE
              SYSMAN INACTIVE
              SYSMAN INACTIVE
              SYSMAN INACTIVE
              DBSNMP ACTIVE
              SYSMAN INACTIVE
              DBSNMP INACTIVE
              SYSTEM ACTIVE

              9 linhas selecionadas.

              Neste ponto sua sessão inativa foi morta pelo Oracle. Também podemos controlar diversos outros recursos de CPU e senha como mostrado abaixo:

              #101323
              rman
              Participante

                @DBA_LUCAS

                Creio que se você implementar isso, só vai gerar descontentamento dos usuários finais, e nem vai ter um ganho de performance notável.

                #101326
                leandrolbs
                Participante

                  como lhe disse, sessão inativa não consome processo de hardware, apenas limita os parameters do banco….

                  @Rman, concordo com vc, pois finalizar um programa inativo, não é sempre viavel, pois dependendo da forma que aplicação foi desenvolvida, o usuario tera que fechar e abrir toda a aplicação novamente;

                  #101331
                  jspaulonci
                  Participante

                    Acredito que a colocação do Vieri é boa, criação de profile para matar as sessões inativas acho pesado.
                    Penso que a solução é encontrar o meio termo, excesso de sessões ativas pode ser problema.

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