Modificar el modo de registro de archivos de Oracle, la ruta de archivo y el tamaño del espacio

¿Es necesario habilitar la archivación de registros al crear una base de datos ORACLE? La base de datos Oracle puede ejecutarse en dos modos: modo de archivado (archivelog) y modo sin archivado (noarchivelog). El modo de archivado mejora 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 una estrategia de copia de seguridad adecuada. Únicamente habilitar el modo de archivado sin una estrategia de copia de seguridad correspondiente generará únicamente problemas…

Descarga gratuita
para VM, SO, BD, archivos, NAS, etc.
alejandro

Updated by Alejandro on 2026/06/25

¿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.

Modificar el archivo de Oracle – 1
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

Modificar el archivo de Oracle - 1

#########  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 ############

Modificar el archivo de Oracle - 1
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

Modificar el archivo de Oracle - 1

Cuando log_archive_log se establece en su valor predeterminado, el directorio de archivos se convertirá en ?/dbs/arch.

Modificar el archivo de Oracle - 1
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.

Modificar el archivo de Oracle – 1

Tras reiniciar la base de datos en modo montaje, el directorio de archivos vuelve al directorio predeterminado original.

Modificar el archivo de Oracle - 1
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

Modificar el archivo de Oracle – 1

#############################

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.

Modificar el archivo de Oracle - 1
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.

Modificar el archivo de Oracle – 1


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:

Modificar el archivo de Oracle – 1
[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

Modificar el archivo de Oracle - 1

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.

Modificar el archivo de Oracle - 1
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.

Modificar el archivo de Oracle - 1

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

Modificar el archivo de Oracle - 1
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

Modificar el archivo de Oracle – 1

Reiniciar y abrir la vista del archivo para ver la ruta del archivo

Modificar el archivado de Oracle - 1
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

Modificar el archivo de Oracle – 1

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

Modificar el archivo de Oracle - 1
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.

Compartir en:

Categories: Database Tips