sql >> Base de Datos >  >> RDS >> Oracle

ORA-00257:error del archivador. Conecte solo internamente, hasta que se libere.

ORA-00257 es uno de los errores más comunes en la vida de Oracle DBA. Él / ella a menudo tiene que lidiar con eso. La base de datos de Oracle casi se congela debido a eso y todas las transacciones se detienen. Veamos cómo lidiar con el error ORA-00257

Mensaje de error

ORA-00257:error del archivador. Conéctese solo internamente, hasta que se libere.

Según el error oerr ORA-00257 significa

ORA-00257:error del archivador. Conecte solo internamente, hasta que se libere. Causa:el proceso del archivador recibió un error al intentar archivar un registro de rehacer. Si el problema no se resuelve pronto, la base de datos dejará de ejecutar transacciones. La causa más probable de este mensaje es que el dispositivo de destino no tiene espacio para almacenar el archivo de registro de rehacer.

Acción:consulte el archivo de seguimiento del archivador para obtener una descripción detallada del problema. Además, verifique que el dispositivo especificado en el parámetro de inicialización archive_log_dest esté configurado correctamente para archivar.

¿Dónde ves este mensaje de error?

1) Verá a continuación el tipo de mensaje de error relacionado con el registro de alerta

Lo siguiente es algo de la información del registro de alertas:

Errors in file \u01\oracle\product\11.2.0\diag\rdbms\TEST\test\trace\test_arc1_1010.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 21474836480 bytes is 100.00% used, and has 0 remaining bytes available.Wed jan 21 02:44:02 2016
************************************************************************
You have following choices to free up space from flash recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************
ARC1: Failed to archive thread 1 sequence 1459 (1809)
ARCH: Archival stopped, error occurred. Will continue retrying
Wed jan 21 02:44:02 2016
Errors in file \u01\oracle\product\11.2.0\diag\rdbms\TEST\test\trace\test_arc1_1010.trc
ORA-16038: log 3 sequence# 1459 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: '\u01\oracle\oradata\TEST\redo03.LOG'

2) Si intenta iniciar sesión con un usuario que no es sysdba, aparecerá el siguiente mensaje de error

sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 - Production on
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> conn apps/apps
ERROR:
ORA-00257: archiver error. Connect internal only, until freed.
Warning: You are no longer connected to ORACLE.
SQL

3)  Si intenta iniciar sesión con el usuario sysdba y verifica el evento de espera para la sesión, encontrará el evento de cambio de archivo de registro de sesión en espera
Por qué se produce el error ORA-00257

Este error ocurre cuando la ubicación de destino para el registro de archivo está llena o no está disponible. El proceso en segundo plano de Oracle ARCH es responsable de tomar los registros de rehacer del sistema de archivos de registro de rehacer en línea y escribirlos en el archivo plano que no puede escribir en el sistema de archivos

Cómo resolver los errores ORA-00257

1) En primer lugar, debemos encontrar el destino del registro de archivo para la base de datos

sqlplus / as sysdba
SQL> archive log list;

también puede encontrar destinos de archivo mediante USE_DB_RECOVERY_FILE_DEST

SQL> show parameter db_recovery_file_dest;

Obtenga también el tamaño de db_recovery_file_dest

show parameter db_recovery_file_dest_size;

2) El siguiente paso para resolver ORA-00257 es averiguar qué valor se está utilizando para db_recovery_file_dest_size, use:

SQL> SELECT * FROM V$RECOVERY_FILE_DEST;

Puede encontrar que SPACE_USED es lo mismo que SPACE_LIMIT, si este es el caso, para resolver ORA-00257 debe remediarse moviendo los registros de archivo a algún otro destino.

SQL> SELECT * FROM V$RECOVERY_FILE_DEST;
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
+FLASH  21474836480 21474836480 212428800 200

3) Podemos tener muchas soluciones en esta situación

a) Aumente el tamaño de db_recovery_file_dest si tiene espacio disponible en Oracle ASM o en el sistema de archivos que esté usando

alter system set db_recovery_file_dest_size=40g;

b) Podemos eliminar el registro de archivo del que ya se ha realizado una copia de seguridad

rman target /
delete archivelog UNTIL TIME = 'SYSDATE-1' backed up 1 times to sbt_tape;rman target /
RMAN>delete archivelog
until time 'SYSDATE-3';
or,
RMAN>delete archivelog all;
or
delete archivelog UNTIL TIME = 'SYSDATE-1.5' backed up 1 times to sbt_tape;

c) Si no ha realizado la copia de seguridad, se recomienda realizar una copia de seguridad y luego eliminar los archivos de registro del archivo

rman target /run {
allocate channel d1 type disk;
backup archivelog all delete input format '/u11/ora/arch_%d_%u_%s';
release channel d1;
}

d) A veces, la pieza de copia de seguridad antigua, los registros de flashback pueden estar ocupando espacio en db_recovery_file_dest, verifique el contenido de db_recovery_file_dest

SQL>Select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable,
number_of_files as "number" from v$flash_recovery_area_usage;FILE_TYPE USED RECLAIMABLE number
------------ ---------- ----------- ----------
CONTROLFILE 0 0 0
ONLINELOG 0 0 0
ARCHIVELOG 4.77 0 2
BACKUPPIECE 56.80 0 10
IMAGECOPY 0 0 0
FLASHBACKLOG 11.68 11.49 63

A veces, el antiguo punto de restauración garantizado puede estar presente, Dropping liberará el espacio.

Base de datos Flashback explicada y limitación

cómo Flashback cuando tenemos protección de datos

Las 10 consultas más útiles para la base de datos Flashback

e) Si no necesitamos el registro de archivo, simplemente eliminar también servirá para el propósito

rman target /
DELETE NOPROMPT ARCHIVELOG ALL;

Otro comando útil en este caso

LIST COPY   OF ARCHIVELOG ALL         COMPLETED AFTER 'SYSDATE-1';
DELETE NOPROMPT BACKUP COMPLETED BEFORE 'SYSDATE-4';
LIST COPY   OF ARCHIVELOG UNTIL TIME = 'SYSDATE-18';
BACKUP ARCHIVELOG COMPLETION TIME BETWEEN  'SYSDATE-28' AND 'SYSDATE-7';

Nota importante

No elimine manualmente el archivo de registro del archivo del sistema de archivos, no actualizará el archivo de control y no solucionará el problema. Luego, debe verificar todo en rman y eliminar obsoletos y caducados

f) Podemos especificar una ruta alternativa para archivar

El archivado se realiza automáticamente en el destino alternativo2

log_archive_dest_1='LOCATION=use_db_recovery_file_dest NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_2'
log_archive_dest_2='LOCATION=/other_dest_for_archiving'
log_archive_dest_state_1='enable'
log_archive_dest_state_2='alternate'
db_recovery_file_dest='/u01/app/oradata/flash_recovery_area'
db_recovery_file_dest_size=200G

4) Una vez que haya espacio disponible en db_recovery_file_dest, verifique el sistema alterando el archivo de registro del cambio del sistema

alter system switch logfile;
system alerted

También intente conectarse con un usuario que no sea sysdba para asegurarse de que el problema esté resuelto

sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 - Production on
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> conn apps/apps
connected
SQL>

Es aconsejable realizar una copia de seguridad periódica del registro de archivos y eliminarlos. Deberíamos poner un script de monitoreo para controlar el espacio del área de recuperación flash.

Artículos relacionados
ORA-00936 expresión faltante
ORA-01017:nombre de usuario/contraseña no válidos; inicio de sesión denegado
ORA-29913 con tablas externas
ora-00904 identificador no válido
ORA-00001 restricción única violada
ORA-01111 en MRP
Cómo encontrar el historial de registro de archivo
RMAN-06059:No se encontró el registro archivado esperado, la pérdida del registro archivado compromete la capacidad de recuperación