En el entorno Oracle RDBMS , los registros de rehacer comprenden archivos en un formato propietario que registra un historial de todos los cambios realizados en la base de datos . Cada archivo de registro de rehacer consta de registros de rehacer. Un registro de rehacer, también llamado entrada de rehacer, contiene un grupo de vectores de cambio , cada uno de los cuales describe o representa un cambio realizado en un solo bloque en la base de datos.
Por ejemplo, si un usuario UPDATE
indica un valor de salario en una tabla que contiene datos relacionados con los empleados, el DBMS genera un registro de rehacer que contiene vectores de cambio que describen los cambios en el bloque de segmento de datos de la tabla. Y si el usuario realiza COMMIT
la actualización, Oracle genera otro registro de rehacer y asigna al cambio un "número de cambio de sistema" (SCN).
Siempre que algo cambia en un archivo de datos, Oracle registra el cambio en el registro de rehacer. El nombre del registro de rehacer indica su propósito: si la base de datos falla, el RDBMS puede rehacer (volver a procesar) todos los cambios en los archivos de datos, lo que llevará los datos de la base de datos al estado en que se encontraba cuando se escribió el último registro de rehacer. DBA usar las vistas V$LOG
, V$LOGFILE
, V$LOG_HISTORY
y V$THREAD
para encontrar información sobre el registro de rehacer de la base de datos. Cada archivo de registro de rehacer pertenece exactamente a un grupo (de los cuales deben existir al menos dos). Exactamente uno de estos grupos es el grupo CURRENT (se puede consultar utilizando el estado de la columna de v $ log). Oracle usa ese grupo actual para escribir las entradas del registro de rehacer. Cuando el grupo está lleno, se produce un cambio de registro , lo que convierte a otro grupo en el actual. Cada cambio de registro causa un punto de control, sin embargo, lo contrario no es cierto: un punto de control no causa un cambio de registro de rehacer. También se puede provocar manualmente un cambio de rehacer registro mediante el ALTER SYSTEM SWITCH LOGFILE
comando.
Clasificación
Los archivos de registro de rehacer ocurren en dos tipos: [1]
Uso
Antes de que un usuario reciba un mensaje de " Confirmación completa ", el sistema primero debe escribir correctamente los datos nuevos o modificados en un archivo de registro de rehacer.
El RDBMS primero escribe todos los cambios incluidos en la transacción en el búfer de registro en el Área global del sistema (SGA). El uso de la memoria de esta manera para la captura inicial tiene como objetivo reducir la E / S del disco. Por supuesto, cuando se confirma una transacción, el búfer de registro de rehacer debe vaciarse en el disco, porque de lo contrario no se podría garantizar la recuperación de esa confirmación. El proceso LGWR (Log Writer) hace ese vaciado.
Tener un registro de rehacer hace posible reproducir declaraciones SQL. Antes de que una base de datos de Oracle cambie datos en un archivo de datos, escribe los cambios en el registro de rehacer. Si algo le sucede a uno de los archivos de datos, un procedimiento de recuperación puede restaurar un archivo de datos respaldado y luego reproducir el rehacer escrito desde el momento de la copia de seguridad; esto trae el archivo de datos al estado que tenía antes de que dejara de estar disponible. Las bases de datos en espera en un entorno de Oracle Data Guard utilizan la misma técnica: una base de datos (la base de datos primaria) registra todos los cambios y los envía a las bases de datos en espera. Cada base de datos en espera aplica (reproduce) el rehacer recibido, lo que da como resultado la sincronización con la base de datos principal. [5]
Si una base de datos falla, el proceso de recuperación tiene que aplicar todas las transacciones, tanto no confirmadas como confirmadas, a los archivos de datos en el disco, utilizando la información de los archivos de registro de rehacer. Oracle debe volver a realizar todas las transacciones de rehacer registro que tienen BEGIN
una COMMIT
entrada y una entrada (avance), y debe deshacer todas las transacciones que tienen una BEGIN
entrada pero ninguna COMMIT
entrada ( deshacer ). [6] (Rehacer una transacción en este contexto simplemente significa aplicar la información en los archivos de registro de rehacer a la base de datos; el sistema no vuelve a ejecutar la transacción en sí.) El sistema recrea las transacciones comprometidas aplicando el " after image ”se registra en los archivos de registro de rehacer en la base de datos y deshace las transacciones incompletas mediante el uso de los registros de" antes de la imagen "en el espacio de tabla de deshacer .
La captura de datos modificados puede leer los registros de rehacer.
En las configuraciones de Oracle Data Guard, los registros de rehacer en espera se asemejan a sus registros de rehacer en línea equivalentes, pero sirven para almacenar los datos de rehacer transmitidos desde una base de datos diferente. [7]
Trascendencia
Dada la verbosidad del registro, Oracle Corporation proporciona métodos para archivar registros de rehacer (registros de archivo), y esto, a su vez, puede alimentar escenarios de respaldo de datos y bases de datos en espera .
La existencia de una serie detallada de transacciones y acciones registradas individualmente proporciona la base de varias mejoras en la gestión de datos, como Oracle Flashback , minería de registros y recuperación puntual . El concepto de encarnación de una base de datos [8] puede influir en el uso de rehacer en la recuperación de la base de datos.
Para fines de ajuste de la base de datos , hacer frente de manera eficiente a los registros de rehacer requiere un disco abundante y de acceso rápido.
Ver también
Referencias
- ^ Kyte, Thomas; Kuhn, Darl (10 de noviembre de 2014). Arquitectura de base de datos Oracle experta . La voz del experto en Oracle (3 ed.). Apress (publicado en 2014). pag. 9. ISBN 9781430262992. Consultado el 19 de febrero de 2015 .
Me he referido a dos tipos de archivos de registro de rehacer: en línea y archivados.
- ^ Bach, Martin (23 de noviembre de 2013). Consolidación experta en Oracle Database 12c . SpringerLink: Bücher. Apress (publicado en 2013). pag. 318. ISBN 9781430244288. Consultado el 12 de julio de 2015 .
Los registros de rehacer en espera (SRL) en el sitio de recuperación ante desastres actúan como la contraparte de los registros de rehacer en línea (ORL) de la base de datos principal y permiten que el sitio remoto reciba rehacer de manera más eficiente.
- ^ Fogel, Steve (mayo de 2006). "Guía del administrador de la base de datos Oracle, 10g versión 2 (10.2)" . docs.oracle.com . Oracle . Consultado el 19 de febrero de 2015 .
El registro de rehacer actual está siempre en línea, a diferencia de las copias archivadas de un registro de rehacer. Por lo tanto, el registro de rehacer en línea generalmente se denomina simplemente registro de rehacer.
- ^ Ries, Steve (22 de febrero de 2013). Oca Oracle Database 11g Administración de la base de datos I: Una guía de certificación del mundo real . Packt Publishing Ltd (publicado en 2013). ISBN 9781849687317. Consultado el 19 de febrero de 2015 .
[...] cuando se produce un cambio de registro, el proceso ARCn escribe el contenido del registro de rehacer actual en un registro de rehacer archivado. Estos registros también se conocen como registros de rehacer fuera de línea o simplemente registros de archivo.
- ^ Liu, Henry H. (22 de noviembre de 2011). Rendimiento y escalabilidad de la base de datos Oracle: un enfoque cuantitativo . Serie de Ingeniería de Software Cuantitativa. 12 . John Wiley & Sons (publicado en 2011). pag. 238–239. ISBN 9781118056998. Consultado el 19 de febrero de 2015 .
Las bases de datos en espera primarias y físicas se sincronizan a través de un servicio llamado Redo Apply , que recupera los datos de rehacer de la base de datos primaria y aplica la rehacer a la base de datos en espera. La sincronización entre las bases de datos primaria y [lógica] en espera se logra a través de un servicio llamado SQL Apply, que transforma los datos rehacer de la base de datos primaria en declaraciones SQL y luego ejecuta las declaraciones SQL en la base de datos en espera.
- ^ Greenwald, Rick; Stackowiak, Robert; Stern, Jonathan (6 de septiembre de 2013). Oracle Essentials: Oracle Database 12c (5 ed.). O'Reilly Media, Inc. (publicado en 2013). ISBN 9781449343170. Consultado el 19 de febrero de 2015 .
La recuperación de instancias tiene dos fases: avanzar y retroceder.
- ^ Schupmann, Vivian (2008). "Oracle Data Guard: Conceptos y administración: 10g Release 2 (10.2)" . Oracle . Consultado el 19 de febrero de 2015 .
Un registro de rehacer en espera es similar a un registro de rehacer en línea, excepto que se utiliza un registro de rehacer en espera para almacenar los datos de rehacer recibidos de otra base de datos.
- ^ Bach, Martin (23 de noviembre de 2013). Consolidación experta en Oracle Database 12c . SpringerLink: Bücher. Apress (publicado en 2013). pag. 378. ISBN 9781430244288. Consultado el 4 de febrero de 2015 .
Una encarnación según la documentación de Oracle es una versión separada de la base de datos.
enlaces externos
- Gestión del registro de rehacer (documentación de Oracle)