Compartilhamento de tecnologia

Quais processos em segundo plano no Oracle não podem ser eliminados?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

O Oracle tem muitos processos em segundo plano. Ao encontrar situações especiais, como bloqueio de tabelas, se você estiver aguardando um processo em segundo plano, precisará considerar se pode encerrar o processo em segundo plano. Eliminar esse processo em segundo plano fará com que a instância trave? No espírito da prática, o verdadeiro conhecimento vem da prática. Este artigo se concentra nas três versões do Oracle 11g, Oracle 19c e Oracle 23ai. Eliminaremos os processos em segundo plano do sistema para ver se isso fará com que a instância seja interrompida. colidir.

1. Instância de banco de dados

1.1 O script de teste se reveza para encerrar o processo em segundo plano

Todos já estão familiarizados com os seis processos principais de pmon, smon, dbwr, lgwr, ckpt e mman. Eliminar esses seis processos principais definitivamente causará uma falha na instância, portanto, esses seis serão eliminados do script.

#!/bin/shfunction startup(){    sqlplus / as sysdba<<EOF    startup    exitEOF}started=`ps -ef | grep pmon | grep -v grep | awk '{print $2}'`test -z "$started" && startup >> /dev/nullsleep 5# List of Oracle background processes to exclude from killingexclude_processes="pmon|smon|dbw0|dbw1|lgwr|ckpt|mman"# Get list of Oracle processesprolist=`ps -ef | grep ora | egrep -v "bash|su|h|ps|grep|more|sleep|awk|LOCAL|sy                                                                             sdba|log|$exclude_processes" | awk '{print $NF}'`for i in $prolistdo    proc_key=`echo $i | awk -F _ '{print $2}'`    pid=`ps -ef | grep $proc_key | grep -v grep | awk '{print $2}'`    test -z $pid && echo "$proc_key does not exist" || {        echo "Killing process $proc_key with PID $pid"        kill -9 $pid        sleep 20        # Check if PMON process exists        pc=`ps -ef | grep pmon | grep -v grep | wc -l`        echo "Number of PMON processes: $pc"        if [ $pc -eq 0 ]; then            echo "Killed process $proc_key has caused instance crash!"            startup >> /dev/null            sleep 5        else            echo "Killed process $proc_key has not caused instance crash."        fi    }done


Aqui estão os resultados dos testes de três versões
oráculo 11g

Killed process vktm has caused instance crash!Killed process gen0 has caused instance crash!Killed process dbrm has caused instance crash!

oráculo 19c

Killed process clmn has caused instance crash!Killed process vktm has caused instance crash!Killed process gen0 has caused instance crash!Killed process lg00 has caused instance crash!Killed process lg01 has caused instance crash!Killed process lreg has caused instance crash!Killed process dbrm has caused instance crash!Killed process pman has caused instance crash!

oráculo 23ai

Killed process clmn has caused instance crash!Killed process vktm has caused instance crash!Killed process gen0 has caused instance crash!Killed process lg00 has caused instance crash!Killed process lg01 has caused instance crash!Killed process lreg has caused instance crash!Killed process dbrm has caused instance crash!Killed process pman has caused instance crash!Killed process bg02 has caused instance crash!

1.2 Resuma quais processos em segundo plano do banco de dados não podem ser eliminados

oracle11g (9)

oráculo 19c (9+4=13)
 

Não há introdução ao bgnn nos documentos oficiais?

  • PMON (Monitor de Processo):

    • Responsável por monitorar o status dos processos em segundo plano e dos processos do usuário. Quando uma anormalidade ou desconexão no processo do usuário é detectada, o PMON é responsável por limpar os recursos relacionados e liberar bloqueios.

  • SMON (Monitor de Sistema):

    • Lida com transações em nível de sistema e recuperação de instâncias de banco de dados. O SMON é responsável por manter a consistência do banco de dados, incluindo a reversão de transações inacabadas e a limpeza de segmentos temporários.

  • DBWR (Gravador de Banco de Dados):

    • Responsável por gravar os dados do buffer de volta no disco. O DBWR realiza pontos de verificação conforme necessário para garantir a consistência e durabilidade do banco de dados.

  • LGWR (Gravador de Log):

    • Grave os registros de log no buffer de redo log no arquivo de redo log. LGWR garante durabilidade da transação, permitindo que o banco de dados se recupere após uma falha.

  • CKPT (Processo de Ponto de Verificação):

    • Responsável por realizar operações periódicas de checkpoint na instância do banco de dados. Um ponto de verificação grava dados modificados do buffer do banco de dados no arquivo de dados para operações de recuperação.

  • MMAN (Gerenciador de Memória):

    • Gerencie a alocação e o uso de memória em instâncias de banco de dados. MMAN é responsável por ajustar automaticamente o tamanho dos pools compartilhados e outras estruturas de memória para otimizar o desempenho do banco de dados.

  • VKTM (Guardião Virtual do Tempo):

    • Fornece serviços de horário em instâncias de banco de dados. VKTM gerencia todas as operações relacionadas ao tempo no banco de dados, incluindo espera por eventos e carimbos de data/hora de transação.

    • Um novo processo em segundo plano introduzido no Oracle 11g.

  • DBRM (Gerenciador de Recursos de Banco de Dados):

    • Gerencie a alocação e uso de recursos de banco de dados, incluindo CPU, E/S e número de conexões. DBRM garante alocação justa e eficiente de recursos entre diferentes usuários e aplicações.

    • Novo processo em segundo plano introduzido no Oracle 11g

  • GEN0 (Processo Genérico de Segundo Plano):

    • Um processo em segundo plano de uso geral usado para lidar com diversas tarefas do sistema e operações de gerenciamento em uma instância de banco de dados.

    • Processo em segundo plano introduzido no Oracle 10g

    23ai (13+1=14)

    Novobgnn- o que é Processo, 23ai tem vários processos bgnn em segundo plano. Se for encerrado, a instância irá travar. Deve ser um processo chave, mas não há referência oficial. muito estranho! Se alguém souber, por favor deixe uma mensagem e me dê alguns conselhos!

    • CLMN (Processo principal de limpeza)

      • Função: Responsável por executar tarefas de limpeza na instância Oracle.

      • Responsabilidades: gerencie a limpeza de processos inativos, sessões encerradas, transações, conexões de rede, sessões ociosas, transações desanexadas e conexões de rede que excedem o tempo limite ocioso.
        Oracle 12c apresenta e clnn para ajudar o pmon a lidar com alguns trabalhos de limpeza

    • LGnn (Trabalhador de Gravação de Log)

      • Função: processo auxiliar lgwr.

      • Responsabilidades: Em sistemas multiprocessadores, LGWR cria trabalhadores para melhorar o desempenho de gravação do processo

      • Oracle19c é introduzido para auxiliar o processo lgwr no tratamento da simultaneidade para melhorar o desempenho de gravação de log

    • LREG (Processo de Registro de Ouvinte)

      • Função: registre a instância do Oracle no ouvinte.

      • Responsabilidades : notifica os ouvintes sobre instâncias, serviços, manipuladores e endpoints. Certifique-se de que o ouvinte saiba a qual serviço de banco de dados ele pode se conectar.

      • Oracle 12c introduzido

    • PMAN (Gerente de Processos)

      • Função: gerencie vários processos em segundo plano no banco de dados Oracle.

      • Responsabilidades: monitore, inicie e pare processos de servidores compartilhados e distribuidores, intermediários de conexão, processos de servidores em pool para pools de conexões residentes no banco de dados, processos de fila de tarefas e processos em segundo plano reinicializáveis, conforme necessário.

      • Oracle 12c introduzido

2. Instância ASM

Além do acima, também existem processos em segundo plano relacionados a instâncias ASM em um ambiente de cluster. Existem os quatro processos principais do ASM a seguir que não podem ser eliminados.

  • ASMB (Processo de segundo plano ASM)

    • Função :ASMB é o processo de segundo plano do Gerenciamento Automático de Armazenamento (ASM). É usado principalmente para manter a comunicação entre instâncias ASM e instâncias Oracle. O ASMB gerencia conexões com instâncias Oracle, lida com solicitações de operação de metadados entre instâncias ASM e clientes e coordena operações de rebalanceamento de dados.

  • RBAL (Processo Mestre de Rebalanceamento ASM)

    • Função : RBAL é outro processo relacionado ao ASM. É responsável por distribuir tarefas de rebalanceamento para processos escravos ARBx em outras instâncias ASM. As operações de rebalanceamento são executadas ao adicionar ou remover discos ASM para garantir uma distribuição uniforme de dados no grupo de discos.

  • PSP0 (Processo Spawner Processo)

    • Função : PSP0 é o Process Spawner Process, responsável por gerar e gerenciar outros processos em background na instância Oracle. Ele garante que os processos em segundo plano necessários sejam iniciados quando a instância for iniciada e que novos processos sejam gerados quando necessário.

  • GMON (Processo de monitoramento de grupo de disco ASM)

    • Função : GMON é o processo de monitoramento de grupo de discos ASM. É usado principalmente para monitorar e gerenciar o status e a integridade dos grupos de discos ASM. O GMON garante a consistência do grupo de discos e toma medidas corretivas quando detecta erros ou inconsistências em um grupo de discos.

ps :oráculo 23aiHá outra mudança: o nome do processo em segundo plano foi alterado de ora_xxxx para db_xxxx, abandonando a regra que vem sendo usada há décadas.

século XIX

23ai (não tenho certeza se a versão oficial do EE usa ora_ ou db_)