sql >> Base de Datos >  >> RDS >> Database

Comprensión del grupo de registro de rehacer vs archivo vs miembro

En este tutorial de Oracle, explicaremos de una manera sencilla la comprensión del grupo de registro de rehacer frente al archivo frente al miembro.

Hoy vamos a aprender el concepto de búfer de registro de rehacer en Oracle. En el que conoceremos qué es el búfer de registro de rehacer, cómo funciona y cuál es su papel en la arquitectura de Oracle.

Si desea comprender la arquitectura de Oracle, es realmente importante comprender el funcionamiento del búfer de registro de rehacer. El siguiente artículo también lo ayudará a abordar las preguntas de la entrevista.

Comprensión del grupo de registro de rehacer vs archivo vs miembro

¿Qué es un búfer de registro de rehacer?

Es una pequeña asignación de memoria que suele rondar los 14 MB de forma predeterminada. Es un amortiguador cíclico. Una vez que está lleno, comienza a escribir de nuevo desde arriba, sobrescribe los datos una vez que está lleno.

¿Qué es la entrada de rehacer y el cambio de vector?

La instancia de la base de datos de Oracle registra todas las transacciones DML/DDL en el búfer de registro de rehacer de SGA en forma de entradas de redo. La declaración individual en una transacción dará como resultado una o más entradas de rehacer. Todas estas entradas de rehacer se denominan colectivamente vector de cambio o vector de rehacer.

Cada entrada de rehacer consiste en una declaración de rehacer y una declaración de deshacer, por ejemplo:

TABLA EMP
Empno Nombre

Deptno
1 Jhon 10
2 Tony 20
3 Laura 50
4 Tigre 10
5 Scott 10
sql>delete empno from emp where deptno=10;

En el ejemplo anterior, la tabla emp tiene 3 registros para deptno=10. Entonces, Oracle creará 3 entradas de rehacer para la declaración anterior y estas entradas se registrarán en el búfer de registro de rehacer. Estas 3 entradas de rehacer se denominan colectivamente vector de cambio o vector de rehacer.

El vector de cambio no es más que un número de filas afectadas por una sola operación. El búfer de registro de rehacer captura las transacciones del usuario y también captura el efecto de anulación (declaración de deshacer) para esa transacción.

Funcionamiento del proceso LGWR

Dado que el tamaño del búfer del registro de rehacer es pequeño y no puede crecer dinámicamente, estas entradas de rehacer grabadas deben escribirse periódicamente en el disco en un archivo de registro de rehacer en línea. Esto a menudo se denomina vaciado del búfer de registro de rehacer y el trabajo de escribir estas entradas de rehacer en el disco lo realiza el proceso LGWR.

¿Cuándo LGWR escribe entradas de rehacer en el disco?

LGWR es bastante agresivo al escribir estas entradas en el disco. A continuación se muestran los eventos cuando LGWR escribe entradas de rehacer en el disco.

  • Cuando el tamaño del búfer está 1/3 lleno
  • Cuando hay 1 MB de vectores de cambio disponibles en el búfer de registro de rehacer pendiente de escritura
  • Cada 3 segundos
  • Cada vez que se produce un punto de control
  • Cuando un usuario confirma sus transacciones

Un parámetro para establecer el tamaño del búfer de registro de rehacer

log_buffer=x bytes
Estructura del búfer de registro de rehacer

La arquitectura redo consta de 3 cosas

  1. Rehacer subproceso (lógico)
  2. Redolog Groups (Logical)
  3. Redolog archivos de miembros (físicos)

1. ¿Qué es el hilo de registro de rehacer?

  • La creación de un archivo de control viene dada por el parámetro "MAXINSTANCES".
  • Un subproceso de rehacer se compone de grupos de rehacer. El subproceso de rehacer debe estar habilitado para estar operativo.
  • En el entorno RAC, puede vincular un subproceso de rehacer a la instancia en particular utilizando el parámetro "subproceso" de init.ora.

En una base de datos que no sea RAC, habría principalmente un hilo (hilo =1)

2. ¿Comprender el grupo de registros Redo y su estado?

-Al crear un archivo de control, se proporciona como el parámetro "MAXLOGFILES".
-Un grupo de registros de rehacer es una colección de archivos de miembros de registros de rehacer idénticos.
-Pero para una mejor tolerancia a fallas, es común mantener dos archivos de miembro de registro de rehacer en cada grupo de registro de rehacer.
-Si uno se pierde, no impacta. Los archivos de miembros del registro de rehacer son idénticos (copias espejo)
LGWR escribe en todos los miembros de un grupo de registros de rehacer dado en paralelo
En cualquier momento dado, el proceso LGWR escribe solo en un grupo de registros de rehacer. El grupo de registros de rehacer es fijo, lo que significa que los archivos de miembros del registro de rehacer no pueden crecer dinámicamente.
El grupo de registro de rehacer en el que el proceso LGWR está escribiendo actualmente se ve con el estado "actual"
Una vez que el grupo de registros de rehacer esté lleno, el proceso LGWR cambiará al siguiente grupo de registros de rehacer.
El grupo anterior mostrará el estado "ACTIVO" y después de un tiempo el estado será "INACTIVO"
ACTUAL => ACTIVO => INACTIVO => ACTUAL => ACTIVO => INACTIVO …………………………………
ACTUAL estado significa que Oracle está escribiendo actualmente en este búfer
ACTIVO El punto de control de las entradas de rehacer en este búfer está pendiente
INACTIVO estado significa que el registro de rehacer ha sido revisado y se puede sobrescribir inmediatamente.
No puede cambiar el tamaño del grupo de registros de rehacer una vez creado, pero siempre descarta y vuelve a crear el grupo de registros de rehacer con diferentes tamaños. No puede descartar el grupo de registro de rehacer con el estado "ACTUAL" o "ACTIVO".

¿Cómo cambiar un grupo de registro de rehacer?

Normalmente, LGWR cambia automáticamente entre los grupos de registros de rehacer, pero puede cambiar manualmente de un grupo de registros de rehacer a otro usando el comando.

sql>alter system switch logfile ;

Cada vez que LGWR selecciona un nuevo grupo de registros de rehacer y asigna un número que se incrementa monótonamente a ese grupo de registros de rehacer llamado "Número de secuencia de registro" o "número de secuencia". Puede consultar los metadatos de los grupos de registros de rehacer usando view:- v$log Los grupos de registros de rehacer se escriben usando el tamaño de bloque de disco físico (sector de 512 bytes)

Cómo agregar un nuevo grupo de registro de rehacer

sql>alter database add logfile group 3 ('/path/to/member1.log', '/path/to/member2.log') size 100m reuse;

Aquí el significado de reutilización dice, reutilizar los archivos del archivo miembro 1.log o miembro2.log si ya existe en la misma ruta.

Cómo descartar un grupo de registro de rehacer

Puede descartar grupos de registros de rehacer siempre que el estado no sea ACTUAL o ACTIVO. Además, después de aplicar este comando, la cantidad de grupos de registros de rehacer disponibles debe ser 2 o más.

sql>alter database drop logfile groups 3;

3. Archivos de miembro de registro de rehacer (físico)

Durante la creación de un archivo de control, viene dado por el parámetro "MAXLOGMEMBERS". Los archivos de miembros del registro de rehacer están disponibles físicamente en el nivel del sistema operativo. El tamaño del archivo se fija en el momento de la creación del grupo de registro de rehacer.

El archivo no puede crecer dinámicamente. LGWR escribe en todos los miembros de un grupo de registros de rehacer dado en paralelo.
Los archivos de miembros del grupo de registro de rehacer son idénticos. Puede consultar la información de estado desde la vista v$logfile

¿Cómo agregar un nuevo miembro a un grupo existente?

sql>alter database add logfile member '/path/to/new/member1.log' to group 3;

Puede eliminar a un miembro del grupo siempre que quede un miembro y el estado del grupo no sea actual

sql>alter database drop logfile member '/path/to/member_to_be_deleted.log';

Para consultar los detalles de cambio del registro de rehacer
puede consultar v$log-history

sql>select count(*), trunc(first_time) from v$log_history;

grupo para sobrescribir las entradas de rehacer

Por qué veo "punto de control no completo" en alert.log

Cuando LGWR llega a un grupo de registros de rehacer para sobrescribir las entradas de rehacer y en ese momento, si un punto de control de ese grupo está pendiente, verá un mensaje en el registro de alerta "punto de control no completo". Debido a esto, LGWR no puede sobrescribir el grupo de registros de rehacer inmediatamente.

Por lo tanto, Oracle activará el "punto de control" que eliminará los búferes sucios causados ​​por las entradas de rehacer en el disco. Solo después de que LGWR pueda sobrescribir en el búfer de rehacer. Significa que LGWR tiene que esperar un tiempo que no es bueno. Para superar, agregue más grupos de registros de rehacer y/o aumente el tamaño de los grupos de registros de rehacer.

Esperamos que nuestros detalles anteriores lo ayuden a aclarar su comprensión del búfer de registro de rehacer.

Este es el final del tutorial, la comprensión del grupo de registro de rehacer frente al archivo frente al miembro.