Pular para o conteúdo principal

Novo processo PMAN - Oracle 12.2

Se você já testou ou migrou para versão 12c do Oracle Database, já deve ter notado a quantidade de novos processos. Hoje precisei investigar uma situação que terminou na descoberta de um novo processo que surgiu na versão 12.2.

Tenho alguns scripts que fazem checagem nas instâncias Oracle e uma das linhas era:

 ps -ef | grep ora_pm

Não lembro o motivo de não ter colocado o nome completo do processo "ora_pmon", porque o objetivo dessa checagem era verificar os processos PMON das instâncias que estavam nessa máquina.

Hoje quando migrei um banco de 12.1 para 12.2, o script estava retornando um erro. Após análise, vi que ele estava retornando mais de uma linha e "correto", até a versão 12.1, era apenas uma. Executei o comando e retorno foi:


Então fui procurar na documentação sobre esse novo processo PMAN - Process Manager. Em resumo, ele assumiu algumas atividades executadas nas versões anteriores ao 12.2 pelo nosso amigo PMON. 

A parte de monitorar e gerenciar os dispatchers, shared servers e job queue agora é tudo com o PMAN. O PMON - Process Monitor ficou com  a parte de checar processos mortos ou que encerraram abruptamente. Além disso, também na versão 12.2,  ele não faz mas a limpeza, ele apenas coordena. A limpeza é feita pelo processo CLMN e seus escravos CLnn.


Se quiser mais detalhes aqui tem o link para a documentação.

Comentários

Postagens mais visitadas deste blog

Configurando a política de retenção de backups no RMAN

                       Configurando a politica de reten çã o de backups no RMAN        O objetivo deste post é explicar como podemos configurar a reten çã o de backups na poderosa ferramenta de backup do bando de dados Oracle RMAN. Podemos configurar nossa pol í tica tendo por base dois tipos: janela de recupera çã o (recovery window) ou redundãncia (redundancy). Abaixo iremos abordar os dois tipos.       Para identificar qual dos dois tipos o RMAN está usando, use: RMAN> show retention policy; Política baseada em redundância CONFIGURE RETENTION POLICY TO REDUNDANCY 1; Política baseada em janela de recuperação CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS; ·        Política baseada em redund â ncia ( REDUNDANCY )       De uma maneira bem simples e objetiva, o par â metro REDUNDANCY especifica quantos backups full ou incremental level 0 de cada datafile o RMAN vai manter, os demais são considerados obsoletos. Veja o exemplo abaixo

Permissões necessárias para criar triggers no Oracle

Há pouco tempo passei por um problema durante a criação de uma trigger de LOGON na versão 12c do banco de dados Oracle. Estava com alguns problemas em uma aplicação que tinha uma trigger de Logon. A trigger em si era bem simples, vou por o código mais abaixo, o problema é que ela estava criada dentro do usuário SYSTEM. Provavelmente foi a maneira mais fácil e preguiçosa de criar o objeto, uma vez que o SYSTEM já possui todas as permissões necessárias para criação. Porém isso não uma boa prática. Então resolvi tirar do SYSTEM e jogar para o usuário dono dos objetos da aplicação. Quando fui tentar criar o objeto no SCHEMA dono dos objetos da aplicação, recebi um erro com falta de permissões: ORA-01031: insufficient privileges . O erro ocorreu porque estava esquecendo de conceder a role ADMINISTER DATABASE TRIGGER para o usuário. Em resumo, as permissões necessárias para criação de uma trigger: CREATE TRIGGER - para criar uma trigger no seu próprio esquema (SCHEMA) CREATE AN

ORA-01623 ORA-00312 - Removendo redo logs

Após realizar um restore de um ambiente de Oracle RAC para um single instance usando snapshot de storage, tentei recriar os redo logs recebi o seguinte erro durante a exclusão de um grupo de discos. SQL> alter database drop logfile group 2; ORA-01623: o log 2 é o log atual para a instância UOW (thread 1) - não é possível eliminar ORA-00312: thread 2 do log 1 on-line: '+DATA/UOW/ONLINELOG/group_2.1638.1051804433' ORA-00312: thread 2 do log 1 on-line: '+DATA/UOW/ONLINELOG/group_2.981.1051804433' O erro quer dizer que o grupo de redo pertence a outra thread. Quer dizer que ele pertence a outra instância do ambiente RAC. Como no meu caso não precisarei mais dela, basta usar o comando: SAL> alter database disable thread 2; Database altered.   Usei o SQL abaixo para gerar os comandos para excluir os redo logs SQL> select distinct 'alter database drop logfile group '||(group#)||';' from v$log where thread#=2; 'ALTERDATABASEDROPLOGFILEGROUP'||(G