Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 7 anos, 1 mês atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #108934
    Avatar de airoospairoosp
    Participante

      Boa noite pessoal,

      Aqui no ambiente RAC o arquivo listener.log esta com 10GB, este ambiente tem 2 nós. Posso fazer neste ambiente os comandos para parar a geração do log do listener, remover o arquivo e depois iniciar a geração do log novamente como é feito no single instance?

      lsnrctl> stop log_status off

      remover arquivo

      lsnrctl> start log_status on

      Não sei se alguém já fez isso, criar um script para verificar o tamanho do arquivo listener.log, se atingir um tamanho X, parar a geração, remover arquivo, e reiniciar a geração do log.

      Se alguém tiver alguma dica, agradeço.

      Obrigado.

      Airton

      #108935
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Blz ? Então, primeira coisa a notar é que ** de forma alguma ** vc é Obrigado a ter um nível alto de LOG no seu listener : se está crescendo tanto assim, ao ponto de rapidamente ficar com 10 GB e mais, muito provavelmente vc deve estar com nível de log default (que loga TODA e QUALQUER conexão)… SE vc quiser é ** BICO ** desativar o log…Mas eu, pessoalmente, a não ser que o ambiente esteja ** seriamente ** pressionado por espaço em disco, prefiro mesmo manter o log e de vez em quando fazer o rotate, sim…

        Respondendo então :

        a) SIM, RAC ou não o listener ** CONTINUA ** funcionando como sempre, sim… Única coisa, se fosse RAC 11g ou superior como sabemos haveriam ** vários ** listeners (ie, o listener comum E o SCAN listener) mas como vc diz que é 10g, sem probs…

        b) O procedimento para se poder renomear/copiar pra outro local o listener.log sim, seria a ** mesma ** coisa, RAC ou não : é desativar a geração de log temporariamente, copiar/mover (ou deletar simplesmente, se é isso que vc quer) o arquivo, depois reativar a geração de log, sim… OBVIAMENTE, num ambiente RAC vc vai ter Listeners em cada um dos nós, então o procedimento TEM que ser feito em Todos os nós…

        E claro, DA MESMA MANEIRA que no single-instance, sempre há a opção de, ao invés de Desativar o log temporariamente, vc TROCAR o nome do log file do listener temporariamente, renomear o listener.log e depois voltar o nome do arquivo de log para listener.log…

        c) Não é rocket science escrever um .BAT que automatiza os comandos – inclusive, já que o utilitário lsnrctl aceita vc passar um só comando na linha de comando que ele executa e sai sozinho (diferente do sqlplus, que Demandaria um script .SQL) seria simplesmente escrever uma chamada ao lsnrctl em cada linha do .BAT…
        Eu não tenho aqui um dos que já escrevi mas seria algo similar ao mostrado em https://oracleinarms.wordpress.com/2014/08/26/batch-script-to-rename-listener-log-file-tweak-it-to-use-it-for-any-file/ , usa esse cara como exemplo….
        ** IMPORTANTE ** : eu disse EXEMPLO, Estude e Entenda a lógica, e (** óbvio !! **) adapte ao SEU ambiente com os SEUS nomes, camonhos/diretórios, etc…

        ==> O IMPORTANTE é vc entender que a geração de log ** Não é Obrigatória ** para que a conexão possa acontecer, assim sendo se vc temporariamente suspender o log ou temporariamente mandar o log ser gerado num outro arquivo vc Não deve Ter interrupção do serviço, salvo eventuais BUGs…. OK ?? Até por isso vc VAI TESTAR DIREITINHO no seu ambiente teste / homo / desenv / whatever antes de sair fazendo em PROD, claro…

        []s

        Chiappa

        OBS :

        1. Evidentemente, eu estou SUPONDO aqui que teu listener Não Está Protegido com password – se estiver Certamente vc vai ter que montar um script mais complexo, que envia a senha do listener pro lsnrctl antes de executar o comando de desativar log e/ou de mudar destino do log

        2. vc vai ver que o shell script de exemplo que indiquei está obtendo via comando FOR o atributo de DATA do arquivo : para vc adaptar o exemplo pra fazer o que vc quer de obter e comparar Tamanho de arquivo, vc pode usar a técnica mostrada em https://stackoverflow.com/questions/1199645/how-can-i-check-the-size-of-a-file-in-a-windows-batch-script , é basicamente obter o atributo %z do argumento enviado para o FOR…

        #108937
        Avatar de airoospairoosp
        Participante

          Chiappa,

          Mais uma vez agradeço as tuas respostas, só que acabei errando a versão do banco que esta o RAC, é 11g, como aqui temos o single instance em 10g e estava mexendo nos ambientes, na hora de escrever a dúvida fiz confusão.

          Sim, este ambiente do RAC tem muitas transações durante o dia e acaba gerando muitas sessões no banco.

          Vou ver os exemplos nos links que você passou.

          Obrigado.

          Airton

          #108938
          Avatar photoJosé Laurindo Chiappa
          Moderador

            Blz : só tome cuidado pois como eu disse no 11g muda bastante de figura, já que além do listener de conexão presente em cada nó nós iremos ter listeners outros, certamente com OUTROs NOMEs, ie, os SCAN listeners (que se vc tiver múltiplos VIPs vc vai ter múltiplos SCAN Listeners)… Outro coisa é que no RAC 10g era recomendado mas opcional mas PORÉM no 11g passou a ser mais “obrigatório” vc usar os executáveis do LISTENER do ASM, que provavelmente vão estar instalados numa ORACLE_HOME diferente da HOME do banco E num usuário “GRID” ou algo assim, e não no mesmo usuário “ORACLE” que instalou e roda o banco… Seu script vai ter que ser um pouco mais “inteligente” para poder lidar com N listeners com N nomes de listener diferentes, E talvez tenha que ser criado e rodar com outro usuário que não o usuário ‘oracle’ no Sistema Operacional… Mas nada tãããão diferente do que foi exemplificado aqui…

            []s

            Chiappa

            OBS :

            a. já que vc está atuando nisso, Não Deixe de criar TAMBÉM algum tipo de log rotate/limpeza/compactação para os ALERT LOG files também, não só de cada instância de banco MAS de cada instância ASM de cada nó E TAMBÈM para os DIVERSOS log files que o software de RAC (ie, o GRID CONTROL) gera, como os logs do CHM/Cluster Health Manager, do CRS/Cluster Ready Services, do ASM, do CSS/Cluster Synchronization Services, etc… Em aguns casos eles podem crescer bastante… E é claro : no RAC 11g sob Linux a Oracle já automatiza muito do rotate desses logs extras através de comandos do próprio SO, já no Windows não é tão completa essa automação, caberá a você monitorar o ambiente e confirmar qual/quais logs demandam alguma atuação de sua parte…

            b. o RAC, sendo um ambiente que oferece muito mais recursos é naturalmente muito mais complexo do que um stand alone : assim sendo, não só muitos logs são gerados por seus componentes mas também podem ser gerados muitos TRACE FILES também, até para servirem de WARNING/AVISO – não só quando dá pau/dá erro o RAC gera traces…. Os trace files normalmente não são grandes mas podem ser gerado um grande número deles : não deixe de Verificar se eles também demandam algum tipo de limpeza/armazenamento/remoção de sua parte… SE for necessário, muito desse trabalho pode ser automatizado com o utilitário adrcl, que faz parte dos binários do grid control/clusterware….

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