El Fast Recovery Area (FRA) en Oracle 19c es una funcionalidad importante que desempeña un papel crucial en la recuperación y gestión de datos de una base de datos Oracle (valga la redundancia).
Básicamente, el Fast Recovery Area (FRA) es:
- Área de almacenamiento:
- Es una ubicación de almacenamiento gestionada por Oracle, donde se guardan archivos de recuperación importantes, como copias de seguridad de datos, archivos de registro de recuperación y otros archivos relacionados con la recuperación.
- Gestión automática:
- Oracle 19c administra automáticamente el contenido del FRA, eliminando archivos antiguos y poco utilizados para liberar espacio cuando es necesario.
- Esto ayuda a mantener el FRA en un tamaño adecuado y previene problemas de almacenamiento.
- Mejora de la recuperación:
- Al tener todos los archivos de recuperación en un solo lugar, el FRA agiliza y simplifica el proceso de recuperación de la base de datos en caso de fallos o desastres.
- Esto reduce el tiempo de inactividad y mejora la disponibilidad de la base de datos.
- Requisitos de copia de seguridad:
- El FRA se considera un requisito para utilizar características importantes como RMAN (Oracle Recovery Manager) y la recuperación de base de datos.
- Muchas de las operaciones de copia de seguridad y recuperación dependen de la existencia y configuración adecuada del FRA.

Funcionamiento
El funcionamiento del Fast Recovery Area (FRA) en Oracle 19c se puede resumir de la siguiente manera:
- Configuración del FRA:
- El DBA define la ubicación y el tamaño del FRA en la base de datos mediante parámetros de inicialización como
DB_RECOVERY_FILE_DEST y DB_RECOVERY_FILE_DEST_SIZE. - Estos parámetros se pueden modificar según las necesidades de la base de datos.
- El DBA define la ubicación y el tamaño del FRA en la base de datos mediante parámetros de inicialización como
- Almacenamiento de archivos:
- Oracle automáticamente copia y almacena en el FRA diversos archivos relacionados con la recuperación, como:
- Copias de seguridad de la base de datos (full y incrementales)
- Archivos de registro de recuperación (redo logs)
- Copias de control
- Archivos de copia de seguridad de registros de control
- Otros archivos de recuperación
- Oracle automáticamente copia y almacena en el FRA diversos archivos relacionados con la recuperación, como:
- Gestión automática del espacio:
- Oracle supervisa el uso de espacio en el FRA y elimina automáticamente los archivos obsoletos o poco utilizados para liberar espacio cuando es necesario.
- Esto se realiza según reglas de retención configuradas y políticas de gestión del espacio.
- Recuperación y restauración:
- En caso de fallo o necesidad de recuperación, Oracle usa los archivos almacenados en el FRA para realizar las siguientes operaciones:
- Restaurar copias de seguridad de la base de datos
- Aplicar los archivos de registro de recuperación (redo logs) para recuperar los cambios más recientes
- Recuperar la base de datos a un punto específico en el tiempo
- En caso de fallo o necesidad de recuperación, Oracle usa los archivos almacenados en el FRA para realizar las siguientes operaciones:
- Integración con herramientas de copia de seguridad:
- Herramientas como RMAN (Oracle Recovery Manager) utilizan el FRA como ubicación predeterminada para almacenar los archivos de copia de seguridad y recuperación.
- Esto simplifica la gestión de copias de seguridad y recuperación de la base de datos.
Configurar el Fast Recovery Area (FRA) en Oracle 19c
Antes de Crear la BD
- Identificar un área de almacenamiento adecuada:
- Determinar una ubicación en el sistema de archivos donde se almacenará el FRA.
- Asegurarse de que haya espacio suficiente disponible.
- Establecer los parámetros de inicialización:
- Especifica la ubicación del FRA.
- DB_RECOVERY_FILE_DEST = ‘/ruta/al/fra’
- Indica el tamaño máximo que puede ocupar el FRA.
- DB_RECOVERY_FILE_DEST_SIZE = tamaño_en_bytes
- Especifica la ubicación del FRA.
- Crear la base de datos:
- Cuando creas la base de datos, Oracle utilizará la configuración del FRA establecida en los parámetros de inicialización.
Después de crear la base de datos (si no se configuraste la FRA):
- Detener la base de datos:
- Detén la instancia de la base de datos de forma segura.
- Modificar los parámetros de inicialización:
- Edita el archivo de parámetros de inicialización (p.ej. init.ora o spfile.ora) y agrega/modifica los siguientes parámetros:
- Especifica la ubicación del FRA.
- DB_RECOVERY_FILE_DEST = ‘/ruta/al/fra’
- Indica el tamaño máximo que puede ocupar el FRA.
- DB_RECOVERY_FILE_DEST_SIZE = tamaño_en_bytes
- Especifica la ubicación del FRA.
- Edita el archivo de parámetros de inicialización (p.ej. init.ora o spfile.ora) y agrega/modifica los siguientes parámetros:
- Reiniciar la base de datos:
- Reinicia la instancia de la base de datos para que los nuevos parámetros surtan efecto.
- Verificar la configuración del FRA:
- Ejecuta la siguiente consulta SQL para comprobar que el FRA está configurado correctamente:
SELECT name, value, description
FROM v$parameter
WHERE name LIKE 'db_recovery%';
- Verifica que los valores de los parámetros coincidan con la configuración realizada.
5. Inicializar el FRA:
- Una vez que la base de datos se reinicia, Oracle inicializará el FRA y comenzará a almacenar los archivos de recuperación en la ubicación especificada.
Monitoreo
Ejemplo 1: Consulta básica del estado del FRA
Esta consulta muestra los parámetros de inicialización relacionados con el FRA, como la ubicación y el tamaño máximo.
SELECT
NAME,
VALUE,
DESCRIPTION
FROM
V$PARAMETER
WHERE
NAME LIKE 'DB_RECOVERY%';
Ejemplo 2: Obtener el uso actual del FRA
Este ejemplo muestra el espacio utilizado por diferentes tipos de archivos en el FRA, como registros de archivo, copias de seguridad, archivos de control y copias de datos.
SELECT
TRUNC(SUM(DECODE(file_type, 'ARCHIVED LOG', bytes, 0))/1024/1024/1024, 2) AS archive_logs_gb,
TRUNC(SUM(DECODE(file_type, 'BACKUP PIECE', bytes, 0))/1024/1024/1024, 2) AS backup_pieces_gb,
TRUNC(SUM(DECODE(file_type, 'CONTROL FILE', bytes, 0))/1024/1024/1024, 2) AS control_files_gb,
TRUNC(SUM(DECODE(file_type, 'DATAFILE COPY', bytes, 0))/1024/1024/1024, 2) AS datafile_copies_gb,
TRUNC(SUM(BYTES)/1024/1024/1024, 2) AS total_used_gb
FROM
V$RECOVERY_FILE_DEST;
Ejemplo 3: Identificar los archivos más antiguos en el FRA
Esta consulta enumera los 10 archivos más antiguos almacenados en el FRA, lo que puede ayudarte a identificar archivos que podrían ser candidatos para su eliminación.
SELECT
file_name,
file_type,
completion_time,
ROUND(file_size/1024/1024, 2) AS file_size_mb
FROM
V$RECOVERY_FILE_DEST
ORDER BY
completion_time ASC
FETCH FIRST 10 ROWS ONLY;
Ejemplo 4: Monitorear el espacio disponible en el FRA
Este ejemplo de código PL/SQL calcula y muestra el tamaño total del FRA, el espacio utilizado y el porcentaje de utilización. Puedes programar este script para que se ejecute periódicamente y envíe alertas si se alcanza un umbral predefinido.
DECLARE
v_total_mb NUMBER;
v_used_mb NUMBER;
v_pct_full NUMBER;
BEGIN
SELECT
ROUND(SUM(BYTES)/1024/1024, 2) AS total_mb,
ROUND(SUM(SPACE_LIMIT)/1024/1024, 2) AS used_mb,
ROUND(100 * SUM(BYTES) / SUM(SPACE_LIMIT), 2) AS pct_full
INTO
v_total_mb, v_used_mb, v_pct_full
FROM
V$RECOVERY_FILE_DEST;
DBMS_OUTPUT.PUT_LINE('Total FRA size: ' || v_total_mb || ' MB');
DBMS_OUTPUT.PUT_LINE('Used FRA space: ' || v_used_mb || ' MB');
DBMS_OUTPUT.PUT_LINE('FRA utilization: ' || v_pct_full || '%');
END;
/
Vistas dinámicas:
- Utiliza las siguientes vistas dinámicas para obtener información detallada sobre el FRA:
v$recovery_file_dest: Muestra información sobre el espacio utilizado y disponible en el FRA.v$backup_device: Proporciona detalles sobre los dispositivos de copia de seguridad configurados, incluidos los del FRA.v$backup_async_io: Muestra información sobre las operaciones de copia de seguridad y restauración en el FRA.
Ejemplo 5: Vistas dinámicas
Consulta la vista V$RECOVERY_FILE_DEST para obtener información sobre el espacio utilizado y disponible en el FRA:
Esta consulta muestra el espacio utilizado (en GB) por cada tipo de archivo en el FRA, el espacio total disponible (en GB) y el porcentaje de utilización.
SELECT
FILE_TYPE,
ROUND(SUM(BYTES)/1024/1024/1024, 2) AS SPACE_USED_GB,
ROUND(SUM(SPACE_LIMIT)/1024/1024/1024, 2) AS SPACE_LIMIT_GB,
ROUND(100 * SUM(BYTES) / SUM(SPACE_LIMIT), 2) AS PCT_USED
FROM
V$RECOVERY_FILE_DEST
GROUP BY
FILE_TYPE;
Consulta la vista V$BACKUP_DEVICE para obtener detalles sobre los dispositivos de copia de seguridad configurados, incluidos los del FRA:
Esta consulta enumera los dispositivos de copia de seguridad configurados, tanto en cinta (SBT_TAPE) como en disco (DISK), lo que incluye aquellos utilizados para el FRA.
SELECT
DEVICE_TYPE,
MEDIA_DEVICE,
BACKUP_TYPE,
BLOCK_SIZE,
BUFFER_SIZE
FROM
V$BACKUP_DEVICE
WHERE
DEVICE_TYPE = 'SBT_TAPE' OR DEVICE_TYPE = 'DISK';
Consulta la vista V$BACKUP_ASYNC_IO para obtener información sobre las operaciones de copia de seguridad y restauración en el FRA:
Esta consulta muestra detalles sobre las operaciones de copia de seguridad y restauración realizadas en el FRA, incluyendo el nombre del archivo, el tipo de dispositivo, la función (copia de seguridad o restauración), el evento de espera y el tiempo transcurrido (en segundos).
SELECT
FILE_NAME,
DEVICE_TYPE,
FUNCTION,
WAIT_EVENT,
ROUND(ELAPSED_TIME/1000000, 2) AS ELAPSED_SECONDS
FROM
V$BACKUP_ASYNC_IO
WHERE
DEVICE_TYPE = 'DISK' AND FUNCTION IN ('BACKUP', 'RESTORE')
ORDER BY
ELAPSED_TIME DESC;
Herramientas de monitoreo:
- Utiliza herramientas de administración y monitoreo de Oracle, como Oracle Enterprise Manager Cloud Control, para obtener una vista general del FRA y sus estadísticas.
- Estas herramientas ofrecen paneles y reportes para supervisar el uso del FRA, las operaciones de copia de seguridad y restauración, y las alertas relacionadas.
Scripts de monitoreo:
- Puedes crear scripts personalizados, como scripts de shell o PL/SQL, que consulten las vistas dinámicas y generen informes sobre el estado y el uso del FRA.
- Estos scripts se pueden programar para ejecutarse periódicamente y enviar alertas cuando se alcancen umbrales predefinidos.
Ejemplo 6 : Shell de Monitoreo de FRA
Este script de shell realiza las siguientes tareas:
- Configura las variables de entorno necesarias, como la ubicación de ORACLE_HOME y el SID de la base de datos.
- Define una función
check_fra_usageque consulta la vistaV$RECOVERY_FILE_DESTpara obtener el porcentaje de uso del FRA y muestra una alerta si supera el umbral establecido. - Crea una función
check_fra_spaceque consulta la vistaV$RECOVERY_FILE_DESTpara obtener el espacio utilizado y el espacio total del FRA, y muestra esta información. - Ejecuta las funciones de monitoreo y muestra los resultados.
Para usar este script, guárdalo en un archivo (por ejemplo, monitor_fra.sh) y asegúrate de tener los permisos de ejecución:
chmod +x monitor_fra.sh
Luego, puedes ejecutarlo de la siguiente manera:
./monitor_fra.sh
#!/bin/bash
# Configuración
ORACLE_HOME="/app/oracle/product/19.0.0/dbhome_1"
ORACLE_SID="orcl"
FRA_USAGE_THRESHOLD=80 # Porcentaje de uso del FRA que activará la alerta
# Funciones
function check_fra_usage {
usage=$(sqlplus -s / as sysdba <<EOF
SET HEAD OFF
SET FEEDBACK OFF
SELECT
ROUND(100 * SUM(BYTES) / SUM(SPACE_LIMIT), 2) AS pct_full
FROM
V\$RECOVERY_FILE_DEST;
EOF
)
echo "Uso actual del FRA: $usage%"
if [ $(echo "$usage > $FRA_USAGE_THRESHOLD" | bc -l) -eq 1 ]; then
echo "¡Alerta! Uso del FRA superior al $FRA_USAGE_THRESHOLD%"
fi
}
function check_fra_space {
space_used=$(sqlplus -s / as sysdba <<EOF
SET HEAD OFF
SET FEEDBACK OFF
SELECT
ROUND(SUM(BYTES)/1024/1024, 2) AS used_mb
FROM
V\$RECOVERY_FILE_DEST;
EOF
)
space_total=$(sqlplus -s / as sysdba <<EOF
SET HEAD OFF
SET FEEDBACK OFF
SELECT
ROUND(SUM(SPACE_LIMIT)/1024/1024, 2) AS total_mb
FROM
V\$RECOVERY_FILE_DEST;
EOF
)
echo "Espacio utilizado en el FRA: $space_used MB"
echo "Espacio total del FRA: $space_total MB"
}
# Ejecución
echo "Monitoreando el Fast Recovery Area (FRA) de la base de datos $ORACLE_SID..."
check_fra_usage
check_fra_space
echo "Monitoreo completado."
Este script de shell proporciona una forma sencilla de monitorear el uso y el espacio del FRA de forma regular. Puedes adaptarlo y mejorarlo según tus necesidades específicas, como agregar funcionalidades adicionales, enviar alertas por correo electrónico o integrar con herramientas de monitoreo más avanzadas.






Deja un comentario