Compartir tecnología

¿Qué procesos en segundo plano en Oracle no se pueden eliminar?

2024-07-12

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

Oracle tiene muchos procesos en segundo plano. Cuando se encuentra con situaciones especiales, como tablas bloqueadas, si está esperando un proceso en segundo plano, debe considerar si puede eliminar el proceso en segundo plano. ¿Eliminar este proceso en segundo plano provocará que la instancia falle? En el espíritu de la práctica, el verdadero conocimiento proviene de la práctica. Este artículo se centra en las tres versiones de Oracle 11g, Oracle 19c y Oracle 23ai. Eliminaremos los procesos en segundo plano del sistema para ver si esto hace que la instancia falle. chocar.

1. Instancia de base de datos

1.1 El script de prueba se turna para finalizar el proceso en segundo plano.

Todo el mundo ya está familiarizado con los seis procesos centrales: pmon, smon, dbwr, lgwr, ckpt y mman. Eliminar estos seis procesos centrales definitivamente provocará que la instancia falle, por lo que estos seis se eliminan del 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


Aquí están los resultados de las pruebas de tres versiones.
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 Resumir qué procesos en segundo plano de la base de datos no se pueden eliminar

oráculo11g (9)

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

¿No hay ninguna introducción a bgnn en los documentos oficiales?

  • PMON (Monitor de procesos):

    • Responsable de monitorear el estado de los procesos en segundo plano y los procesos de usuario. Cuando se detecta una anomalía o desconexión en un proceso de usuario, PMON es responsable de limpiar los recursos relacionados y liberar bloqueos.

  • SMON (Monitor del sistema):

    • Maneja transacciones a nivel del sistema y recuperación de instancias de bases de datos. SMON es responsable de mantener la coherencia de la base de datos, incluida la reversión de transacciones incompletas y la limpieza de segmentos temporales.

  • DBWR (escritor de bases de datos):

    • Responsable de escribir los datos del búfer en el disco. DBWR realiza puntos de control según sea necesario para garantizar la coherencia y durabilidad de la base de datos.

  • LGWR (escritor de registros):

    • Escriba las entradas de registro en el búfer de registro de rehacer en el archivo de registro de rehacer. LGWR garantiza la durabilidad de las transacciones, lo que permite que la base de datos se recupere después de una falla.

  • CKPT (Proceso de punto de control):

    • Responsable de realizar operaciones periódicas de puntos de control en la instancia de la base de datos. Un punto de control escribe datos modificados desde el búfer de la base de datos en el archivo de datos para operaciones de recuperación.

  • MMAN (Administrador de memoria):

    • Administre la asignación y el uso de memoria en instancias de bases de datos. MMAN es responsable de ajustar automáticamente el tamaño de los grupos compartidos y otras estructuras de memoria para optimizar el rendimiento de la base de datos.

  • VKTM (Guardián Virtual del Tiempo):

    • Proporcionar servicios de tiempo en instancias de bases de datos. VKTM gestiona todas las operaciones relacionadas con el tiempo en la base de datos, incluida la espera de eventos y marcas de tiempo de transacciones.

    • Un nuevo proceso en segundo plano introducido en Oracle 11g.

  • DBRM (Administrador de recursos de base de datos):

    • Administre la asignación y el uso de los recursos de la base de datos, incluida la CPU, las E/S y el número de conexiones. DBRM garantiza una asignación justa y eficiente de recursos entre diferentes usuarios y aplicaciones.

    • Nuevo proceso en segundo plano introducido en Oracle 11g

  • GEN0 (Proceso genérico en segundo plano):

    • Un proceso en segundo plano de propósito general que se utiliza para manejar diversas tareas del sistema y operaciones de administración en una instancia de base de datos.

    • Proceso en segundo plano introducido en Oracle 10g

    23ai (13+1=14)

    Nuevobgnn Proceso, 23ai tiene múltiples procesos bgnn en segundo plano. Si se elimina, la instancia fallará. Debería ser un proceso clave, pero ¿no hay una referencia oficial? ¡muy extraño! Si alguien lo sabe, ¡deje un mensaje y déme algún consejo!

    • CLMN (Proceso principal de limpieza)

      • Función: Responsable de realizar tareas de limpieza en la instancia de Oracle.

      • Responsabilidades: Administre la limpieza de procesos inactivos, sesiones terminadas, transacciones, conexiones de red, sesiones inactivas, transacciones desconectadas y conexiones de red que exceden el tiempo de espera de inactividad.
        Oracle 12c presenta y clnn para ayudar a pmon a realizar algunos trabajos de limpieza

    • LGnn (Trabajador de escritura de registros)

      • Función: proceso auxiliar lgwr.

      • Responsabilidades: En sistemas multiprocesador, LGWR crea trabajadores para mejorar el rendimiento de escritura del proceso.

      • Se introduce Oracle19c para ayudar al proceso lgwr a manejar la concurrencia para mejorar el rendimiento de la escritura de registros.

    • LREG (Proceso de registro de oyentes)

      • Función: Registre la instancia de Oracle para el oyente.

      • Responsabilidades : Notifica a los oyentes sobre instancias, servicios, controladores y puntos finales. Asegúrese de que el oyente sepa a qué servicio de base de datos puede conectarse.

      • Oracle 12c introducido

    • PMAN (Gerente de procesos)

      • Función: Administre varios procesos en segundo plano en la base de datos Oracle.

      • Responsabilidades: Supervise, inicie y detenga procesos de servidores compartidos y distribuidores, agentes de conexión, procesos de servidores agrupados para grupos de conexiones residentes en bases de datos, procesos de cola de trabajos y procesos en segundo plano reiniciables según sea necesario.

      • Oracle 12c introducido

2.instancia ASM

Además de lo anterior, también existen procesos en segundo plano relacionados con instancias de ASM en un entorno de clúster. Existen los siguientes cuatro procesos clave de ASM que no se pueden eliminar.

  • ASMB (Proceso de fondo de ASM)

    • Función :ASMB es el proceso en segundo plano de la Gestión automática de almacenamiento (ASM). Se utiliza principalmente para mantener la comunicación entre instancias de ASM y instancias de Oracle. ASMB gestiona conexiones a instancias de Oracle, maneja solicitudes de operaciones de metadatos entre instancias de ASM y clientes y coordina operaciones de reequilibrio de datos.

  • RBAL (Proceso maestro de reequilibrio de ASM)

    • Función : RBAL es otro proceso relacionado con la MAPE. Es responsable de distribuir tareas de reequilibrio a procesos esclavos ARBx en otras instancias de ASM. Las operaciones de reequilibrio se realizan al agregar o quitar discos ASM para garantizar una distribución uniforme de los datos en todo el grupo de discos.

  • PSP0 (Proceso generador de procesos)

    • Función : PSP0 es el proceso generador de procesos, responsable de generar y gestionar otros procesos en segundo plano en la instancia de Oracle. Garantiza que los procesos en segundo plano necesarios se inicien cuando se inicia la instancia y que se generen nuevos procesos cuando sea necesario.

  • GMON (Proceso de monitorización de grupos de discos ASM)

    • Función : GMON es el proceso de monitoreo del grupo de discos ASM. Se utiliza principalmente para monitorear y administrar el estado y la salud de los grupos de discos ASM. GMON garantiza la coherencia del grupo de discos y toma medidas correctivas cuando detecta errores o inconsistencias en un grupo de discos.

ps: oráculo 23aiHay otro cambio: se ha cambiado el nombre del proceso en segundo plano de ora_xxxx a db_xxxx, abandonando la regla que se ha utilizado durante décadas.

19c

23ai (no estoy seguro de si la versión oficial EE usa ora_ o db_)