¿Es necesario habilitar el archivado de registros al crear una base de datos ORACLE?
La base de datos Oracle puede ejecutarse en dos modos: modo de archivo (archivelog) y modo sin archivo (noarchivelog).
El modo de archivo puede mejorar la capacidad de recuperación de la base de datos Oracle.
Todas las bases de datos de producción deben ejecutarse en este modo, y el modo de archivado debe combinarse con la estrategia de copia de seguridad correspondiente. Únicamente el modo de archivado sin una estrategia de copia de seguridad adecuada generará únicamente problemas.
De forma predeterminada, la base de datos Oracle se crea en modo de archivo de registro sin registro,
En el modo de registro sin archivo, el registro de rehacer se sobrescribirá directamente cuando se cambie el registro. Si en este momento el archivo de datos resulta dañado debido a un fallo del soporte, los datos sobrescritos se perderán al restaurar la base de datos.
En el modo de registro de archivos de arco, la base de datos puede utilizar todos los archivos de registro de archivos de arco generados desde la copia de seguridad más reciente de la base de datos para garantizar que no se pierda ningún dato; la mayoría de las bases de datos de producción se ejecutan en modo archivelog.
Después de que la base de datos Oracle active el modo de registro en archivo, iniciará automáticamente un nuevo proceso: el archivador ARCn. De forma predeterminada, se inician 4 procesos. En aplicaciones reales, se pueden iniciar hasta 30 procesos de archivado.
[oracle@dbserver1 archivelog]$ ps -ef | grep -i ora_oracle 26567 1 0 08:48 ? 00:00:00 ora_arc0_orcloracle 26573 1 0 08:48 ? 00:00:00 ora_arc1_orcloracle 26575 1 0 08:48 ? 00:00:00 ora_arc2_orcloracle 26577 1 0 08:48 ? 00:00:00 ora_arc3_orcl
El registro de archivado (archive log) es una copia de seguridad inactiva del registro redo. Mediante los registros de archivado, se pueden conservar todos los registros históricos del registro redo. Cuando la base de datos opera en modo ARCHIVELOG y se produce un cambio de registro,
El proceso en segundo plano ARCH guardará el contenido del registro de rehacer en el registro archivado. Cuando la base de datos sufre un fallo de soporte, la copia de seguridad de los archivos de datos, el registro archivado y el registro de rehacer pueden utilizarse para restaurar completamente la base de datos.
#########################
Cambiar del modo sin archivo al modo de archivo
Antes de la modificación:
Confirme el entorno. Compruebe la base de datos para determinar si se ha habilitado la función de archivado: ---La información que se muestra a continuación supone que, al instalar la base de datos, no seleccionó la opción de activar la función «flashback» ni la opción de activar el archivado.
SQL> archive log list
Modo de registro de la base de datos: Sin modo de archivado
Archivado automático: Deshabilitado
Destino de archivado: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Secuencia del registro en línea más antiguo: 4
Secuencia del registro actual: 6
SQL> SELECT name, log_mode FROM v$database;
NAME LOG_MODE
–------- ------------
ORCL NOARCHIVELOG
SQL> show parameter db_recovery
NOMBRE TIPO VALOR
–---------------------------------- ----------- ------------------------------
db_recovery_file_dest cadena
db_recovery_file_dest_size entero grande 0
######### Las siguientes pruebas verifican la operación de cambiar la base de datos del modo sin archivado al modo con archivado cuando la función de retroceso (flashback) no está activada ############
SQL> apagar inmediatamente Base de datos cerrada.
SQL> iniciar en modo montaje
Instancia ORACLE iniciada.
SQL> ALTER DATABASE ARCHIVELOG;
Base de datos modificada.
SQL> alter database open;
Base de datos modificada.
SQL> archive log list
Modo de registro de la base de datos: modo de archivado
Archivado automático: habilitado
Destino de archivado: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Secuencia más antigua del registro en línea: 4
Secuencia siguiente del registro a archivar: 6
Secuencia actual del registro: 6
SQL> SELECT name FROM v$archived_log;
no se seleccionó ninguna fila
SQL> alter system archive log current;
Sistema modificado.
SQL> SELECT nombre FROM v$archived_log;
NOMBRE
–------------------------------------------------------------------------------
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_6_947091054.dbf
SQL> show parameter recover;
NOMBRE TIPO VALOR
–---------------------------------- ----------- ------------------------------
db_recovery_file_dest cadena
db_recovery_file_dest_size entero grande 0
db_unrecoverable_scn_tracking booleano VERDADERO
recovery_parallelism entero 0
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
no rows selected
Cuando log_archive_log se establece en su valor predeterminado, el directorio de archivos se convertirá en ?/dbs/arch.
SQL> alter system set log_archive_dest_1='';
Sistema modificado.
SQL> archive log list
Modo de registro de la base de datos: Modo de archivado
Archivado automático: Habilitado
Destino de archivado: ?/dbs/arch
Secuencia del registro en línea más antiguo: 5
Secuencia del próximo registro a archivar: 7
Secuencia del registro actual: 7
SQL> apagar inmediatamente
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE apagada.
SQL> startup mount
Instancia de ORACLE iniciada.
Tras reiniciar la base de datos en modo montaje, el directorio de archivos vuelve al directorio predeterminado original.
SQL> archive log list
Modo de registro de la base de datos: Modo de archivado
Archivado automático: Habilitado
Destino de archivado: /home/oracle/u01/app/oracle/product/11.2.2.0/dbhome_1/dbs/archOldest secuencia de registro en línea más antigua 5
Secuencia de registro siguiente que se archivará 7
Secuencia de registro actual 7
--- Establecer el número máximo de procesos abiertos para el archivado
SQL> alter system set log_archive_max_processes = 5;
Sistema modificado.---Modificar el formato de almacenamiento de los registros SQL> ALTER SYSTEM SET log_archive_format = "archive_%t_%s_%r.log" SCOPE=SPFILE; Sistema modificado.SQL> shutdown immediate
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL> startup
Instancia ORACLE iniciada.
SQL> apagado inmediato
Base de datos desmontada.
Área global total del sistema: 939 495 424 bytes
Tamaño fijo: 2 258 840 bytes
Tamaño variable: 637 536 360 bytes
Buffers de la base de datos: 293 601 280 bytes
Buffers de redo: 6 098 944 bytes
Base de datos montada.
Base de datos abierta.
SQL> archive log list
Modo de registro de la base de datos: Modo de archivado
Archivado automático: Habilitado
Destino de archivado: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Secuencia del registro en línea más antiguo: 5
Secuencia del siguiente registro a archivar: 7
Secuencia del registro actual: 7
SQL> show parameter db_recovery
NOMBRE TIPO VALOR
–---------------------------------- ----------- ------------------------------
db_recovery_file_dest cadena
db_recovery_file_dest_size entero grande 0
SQL> SELECT nombre FROM v$archived_log;
NOMBRE
–------------------------------------------------------------------------------
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_6_947091054.dbf
SQL> ALTER SYSTEM SWITCH LOGFILE;
Sistema modificado.
SQL> SELECT recid, nombre, first_time FROM v$archived_log;
NOMBRE
–------------------------------------------------------------------------------
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_6_947091054.dbf
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/archarchive_1_7_94709105
4.log
SQL> SELECT NAME, SPACE_LIMIT/1024/1024/1024, SPACE_USED/1024/1024/1024, NUMBER_OF_FILES DESDE V$RECOVERY_FILE_DEST;
No se han seleccionado filas
SQL> SELECT flashback_on FROM v$database;
FLASHBACK_ON
–----------------
NO
#############################
Activar la función de retroceso (flashback) de la base de datos. Configurar la ruta y el tamaño del área de recuperación rápida para realizar pruebas. Primero desactivar el modo de archivado y luego activar la ruta predeterminada; tras el archivado, dicha ruta será la ruta de retroceso (flashback) de la base de datos.
Compruebe la base de datos para determinar si se activa la función de retroceso temporal.
Nota: Si activa la función de retroceso, debe estar en modo de archivo; de lo contrario, no tendrá sentido utilizar el retroceso. ! ! ! !
¡Sin embargo, si abre el archivo, ¡no es necesario que active la función de retroceso temporal!
Si se activa la función de retroceso (flashback) y, a continuación, se activa el modo de archivado, y si el registro de archivado no especifica una nueva ruta, dicho registro se guardará de forma predeterminada en el área de retroceso de la base de datos y aparecerá como: USE_DB_RECOVERY_FILE_DEST, lo cual corresponde efectivamente a la ruta del área de retroceso.
Además, se pueden configurar manualmente la ubicación y el tamaño del área de retroceso y la ruta del archivo.
SQL> select flashback_on from v$database;FLASHBACK_ON------------------NO SQL> shutdown immediateSQL> startup mount
SQL> alter database flashback on; Al instalar la base de datos, no seleccioné la opción de activar la función de retroceso (flashback), por lo que se produjo el siguiente error
ALTER DATABASE FLASHBACK ON
*
ERROR en la línea 1:
ORA-38706: No se puede activar el registro de FLASHBACK DATABASE.
ORA-38709: El área de recuperación no está habilitada.
Configurar el área de recuperación instantánea:
Establecer el tamaño del área de recuperación con flash: el área de recuperación con flash predeterminada de Oracle es de 2 GB
SQL> alter system set db_recovery_file_dest_size=5g scope=spfile;
Ver el tamaño del espacio de la ruta especificada en el área de retroceso:
SQL> show parameter db_recovery_file_dest_size
NOMBRE TIPO VALOR
–---------------------------------- ----------- ------------------------------
db_recovery_file_dest_size entero grande 30G
Establecer la ubicación del área de retroceso:
SQL> alter system set db_recovery_file_dest='/home/oracle/u01/app/oracle/account_flashback_area' scope=spfile;
Establecer el objetivo de retroceso a 5 días, expresado en minutos (Oracle establece como valor predeterminado 1440 minutos, es decir, un día).
SQL> alter system set db_flashback_retention_target=7200 scope=spfile;
Crear los directorios relacionados con la función de retroceso (flashback) a nivel del sistema operativo:
[oracle@dbserver oracle]$ mkdir -p /home/oracle/u01/app/oracle/account_flashback_area
SQL> ALTER DATABASE FLASHBACK ON;
Base de datos modificada.
SQL> ALTER DATABASE OPEN;
Base de datos modificada.
SQL> SELECT flashback_on FROM v$database;
FLASHBACK_ON
–----------------
SÍ
SQL> archive log list
Modo de registro de la base de datos: modo de archivado
Archivado automático: habilitado
Destino de archivado: USE_DB_RECOVERY_FILE_DEST
Secuencia del registro en línea más antiguo: 6
Secuencia del próximo registro a archivar: 8
Secuencia del registro actual: 8
Conclusión: Si se activa la función de retroceso (flashback) y, posteriormente, se vuelve a activar el modo de archivado, y no se especifica una nueva ruta para los registros de archivado, estos se guardan de forma predeterminada en el área de recuperación con retroceso (flashback area) de la base de datos y aparecen indicados como: USE_DB_RECOVERY_FILE_DEST, lo cual corresponde, en realidad, a la ruta del área de retroceso.
Actualmente, realizaremos una prueba para desactivar el flashback y reiniciar la base de datos con el fin de ver la ruta del registro de archivos archivados.
SQL> select open_mode from v$database;OPEN_MODE--------------------LECTURA Y ESCRITURA
SQL> shutdown immediate
Base de datos cerrada.
SQL> startup mount
Instancia de ORACLE iniciada.

Cerrar el modo de archivado: nos recuerda que la base de datos se está ejecutando en modo de archivado. Cuando la función de retroceso (flashback) está activada, no se puede cerrar directamente el modo de archivado.
SQL> alter database noarchivelog;alter database noarchivelog*ERROR en la línea 1:ORA-38774: no se puede desactivar la recuperación multimedia: la función de retroceso de base de datos está habilitada
A continuación, desactivamos primero la función de retroceso de base de datos
SQL> alter database flashback off;
Base de datos modificada.
SQL> alter database noarchivelog;
Base de datos modificada.
SQL> alter database open;
Base de datos modificada.
SQL> archive log list
Modo de registro de la base de datos: Sin modo de archivado
Archivado automático: Deshabilitado
Destino de archivado: USE_DB_RECOVERY_FILE_DEST
Secuencia más antigua del registro en línea: 6
Secuencia actual del registro: 8
SQL> SELECT flashback_on FROM v$database;
FLASHBACK_ON
–----------------
NO
Reiniciar y abrir la vista del archivo para ver la ruta del archivo
SQL> shutdown inmediato
Base de datos cerrada.
SQL> startup mount
Instancia ORACLE iniciada.
SQL> alter database archivelog;
Base de datos modificada.
SQL> alter database open;
Base de datos modificada.
SQL> archive log list
Modo de registro de la base de datos: Modo de archivado
Archivado automático: Habilitado
Destino de archivado: USE_DB_RECOVERY_FILE_DEST
Secuencia del registro en línea más antigua: 6
Secuencia del próximo registro a archivar: 8
Secuencia del registro actual: 8
SQL> select flashback_on,open_mode from v$database;
FLASHBACK_ON OPEN_MODE
–---------------- --------------------
NO LECTURA/ESCRITURA
Conclusión: Si abre el archivo, no es necesario activar necesariamente la función de retroceso temporal; ¡no necesita activar el retroceso temporal! ! !
Prueba 3: Modificar la ruta predeterminada del archivo
SQL> apagar inmediatamenteSQL> iniciar en modo montajeInstancia ORACLE iniciada.
SQL> listar registros de archivado
Modo de registro de la base de datos: modo de archivado
Archivado automático: habilitado
Destino de archivado: USE_DB_RECOVERY_FILE_DEST
Secuencia más antigua del registro en línea: 6
Secuencia siguiente a archivar: 8
Secuencia actual del registro: 8
SQL> alter system set log_archive_dest_1=‘location=/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch’;
Sistema modificado.
SQL> archive log list
Modo de registro de la base de datos: modo de archivado
Archivado automático: habilitado
Destino de archivado: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Secuencia del registro en línea más antiguo: 6
Secuencia del siguiente registro a archivar: 8
Secuencia del registro actual: 8
SQL> SELECT flashback_on, open_mode FROM v$database;
RETROCESO_ACTIVADO MODO_APERTURA
–---------------- --------------------
NO MONTADO
Prueba 4: Cerramos el archivo de arco, primero activamos la función de retroceso temporal (flashback), luego activamos el archivo de arco, iniciamos la base de datos, verificamos la ruta del archivo de arco y comprobamos si se cumple la ruta personalizada; a continuación, la modificamos para que coincida con la ruta predeterminada de retroceso temporal.
SQL> alter database noarchivelog;Base de datos modificada.
SQL> archive log list
Modo de registro de la base de datos: modo sin archivado
Archivado automático: deshabilitado
Destino de archivado: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Secuencia del registro en línea más antiguo: 6
Secuencia del registro actual: 8
SQL> ALTER DATABASE FLASHBACK ON; –– No se puede activar Flashback en modo no archivado
ALTER DATABASE FLASHBACK ON
*
ERROR en la línea 1:
ORA-38706: No se puede activar el registro de FLASHBACK DATABASE.
ORA-38707: La recuperación multimedia no está habilitada.
Conclusión: Flashback no se puede activar en modo sin archivo
################################################
SQL> alter database archivelog; Base de datos modificada.
SQL> archive log list
Modo de registro de la base de datos: Modo de archivo
Archivo automático: Habilitado
Destino de archivo: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Secuencia del registro en línea más antiguo: 6
Secuencia del siguiente registro a archivar: 8
Secuencia del registro actual: 8
SQL>
SQL> alter database flashback on;
Base de datos modificada.
SQL> archive log list
Modo de registro de la base de datos: modo de archivado
Archivado automático: habilitado
Destino de archivado: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Secuencia más antigua del registro en línea: 6
Secuencia de registro siguiente para archivar: 8
Secuencia actual del registro: 8
Conclusión: Si se especifica una ruta de almacenamiento para los registros de arco, al activar la función de retroceso (flashback), dicha ruta de almacenamiento seguirá siendo la que originalmente indicó el usuario.
#############################
Continuación:
Modifique los registros de arco para que utilicen la ruta de almacenamiento predeterminada de la base de datos. Repita la operación anterior para confirmar si la ruta de los registros de arco coincide con la ruta del área de retroceso.
SQL> shutdown inmediato
Base de datos cerrada.
SQL> startup mount
Instancia ORACLE iniciada.
SQL> archive log list
Modo de registro de la base de datos: Modo de archivado
Archivado automático: Habilitado
Destino de archivado: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Secuencia del registro en línea más antiguo: 6
Secuencia del próximo registro a archivar: 8
Secuencia del registro actual: 8
SQL> alter system set log_archive_dest_1=’’; –-Modificar el registro de archivado como la ruta de almacenamiento predeterminada de la base de datos
Sistema modificado.
SQL> archive log list
Modo de registro de la base de datos: modo de archivado
Archivado automático: habilitado
Destino de archivado: ?/dbs/arch
Secuencia del registro en línea más antiguo: 6
Secuencia del siguiente registro a archivar: 8
Secuencia del registro actual: 8
SQL> alter database open;
Base de datos modificada.
SQL> archive log list
Modo de registro de la base de datos: Modo de archivado
Archivado automático: Habilitado
Destino de archivado: ?/dbs/arch
Secuencia del registro en línea más antiguo: 6
Secuencia del próximo registro a archivar: 8
Secuencia del registro actual: 8
SQL> SELECT flashback_on, open_mode FROM v$database;
FLASHBACK_ON OPEN_MODE
–---------------- --------------------
SÍ LECTURA Y ESCRITURA
SQL> shutdown immediate
Base de datos cerrada.
SQL> startup
Instancia de ORACLE iniciada.
SQL> archive log list
Modo de registro de la base de datos: Modo de archivado
Archivado automático: Habilitado
Destino de archivado: USE_DB_RECOVERY_FILE_DEST
Secuencia del registro en línea más antiguo: 6
Secuencia del próximo registro a archivar: 8
Secuencia del registro actual: 8
Conclusión: El registro de archivos es la ruta de almacenamiento predeterminada de la base de datos. Cuando se habilita la función de retroceso (flashback), cambie al modo de archivado. De forma predeterminada, la ruta del registro de archivos coincide con la ruta del área de retroceso.