Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-00257 :erreur de l'archiveur. Connectez-vous en interne uniquement, jusqu'à ce qu'il soit libéré.

ORA-00257 est l'une des erreurs les plus courantes dans la vie d'Oracle DBA. Il / Elle doit souvent s'en occuper. La base de données Oracle a presque été gelée à cause de cela et toutes les transactions ont été arrêtées. Voyons comment gérer l'erreur ORA-00257

Message d'erreur

ORA-00257 :erreur de l'archiveur. Connectez-vous en interne uniquement, jusqu'à ce qu'il soit libéré.

Selon L'erreur oerr ORA-00257 signifie

ORA-00257 :erreur de l'archiveur. Connectez-vous en interne uniquement, jusqu'à ce qu'il soit libéré. Cause :Le processus d'archivage a reçu une erreur lors de la tentative d'archivage d'un fichier de journalisation. Si le problème n'est pas résolu rapidement, la base de données cessera d'exécuter les transactions. La cause la plus probable de ce message est que l'appareil de destination manque d'espace pour stocker le fichier de journalisation.

Action :consultez le fichier de trace de l'outil d'archivage pour obtenir une description détaillée du problème. Vérifiez également que le périphérique spécifié dans le paramètre d'initialisation archive_log_dest est configuré correctement pour l'archivage.

Où voyez-vous ce message d'erreur

1) Vous verrez ci-dessous le type de message d'erreur relatif au journal des alertes

Voici quelques-unes des informations du journal des alertes :

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 vous essayez de vous connecter avec un utilisateur non sysdba, vous obtiendrez le message d'erreur ci-dessous

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 vous essayez de vous connecter avec l'utilisateur sysdba et vérifiez l'événement d'attente pour la session, vous trouverez l'événement de changement d'archive de journal d'attente de session
Pourquoi l'erreur ORA-00257 se produit

Cette erreur se produit lorsque l'emplacement cible du journal d'archivage est plein ou non disponible. Le processus d'arrière-plan d'Oracle ARCH est chargé de prendre les journaux de rétablissement du système de fichiers de journalisation en ligne et de les écrire dans le fichier plat n'est pas en mesure d'écrire dans le système de fichiers

Comment résoudre les erreurs ORA-00257

1) Tout d'abord, nous devons trouver la destination du journal d'archivage pour la base de données

sqlplus / as sysdba
SQL> archive log list;

vous pouvez également trouver des destinations d'archives soit par USE_DB_RECOVERY_FILE_DEST

SQL> show parameter db_recovery_file_dest;

Obtenez également la taille du db_recovery_file_dest

show parameter db_recovery_file_dest_size;

2) La prochaine étape dans la résolution de ORA-00257 est de savoir quelle valeur est utilisée pour db_recovery_file_dest_size, utilisez :

SQL> SELECT * FROM V$RECOVERY_FILE_DEST;

Vous pouvez constater que SPACE_USED est identique à SPACE_LIMIT, si tel est le cas, pour résoudre ORA-00257, il convient de remédier en déplaçant les journaux d'archivage vers une autre destination.

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

3) Nous pouvons avoir plusieurs solutions dans ces situations

a) Augmentez la taille de db_recovery_file_dest si vous avez de l'espace disponible dans Oracle ASM ou dans le système de fichiers que vous utilisez

alter system set db_recovery_file_dest_size=40g;

b) Nous pouvons supprimer le journal d'archives qui a déjà été sauvegardé

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 vous n'avez pas effectué la sauvegarde, il est conseillé d'effectuer une sauvegarde, puis de supprimer les fichiers journaux d'archivage

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

d) Parfois, une ancienne pièce de sauvegarde, les journaux de flashback peuvent occuper de l'espace dans db_recovery_file_dest, vous vérifiez le contenu 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

Parfois, un ancien point de restauration garanti peut être présent, la suppression libérera l'espace.

Base de données Flashback expliquée et limitation

comment Flashback quand nous avons dataguard

Top 10 des requêtes utiles pour la base de données Flashback

e) Si nous n'avons pas besoin du journal d'archivage, la simple suppression servira également l'objectif

rman target /
DELETE NOPROMPT ARCHIVELOG ALL;

Autre commande utile dans ce cas

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';

Remarque importante

Veuillez ne pas supprimer manuellement le fichier journal d'archive du système de fichiers, cela ne mettra pas à jour le fichier de contrôle et cela ne résoudra pas le problème. Ensuite, vous devez recouper tout dans rman et supprimer les obsolètes et expirés

f) Nous pouvons spécifier un chemin alternatif pour l'archivage

L'archivage s'effectue automatiquement vers la destination alternative2

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) Une fois que l'espace est disponible dans db_recovery_file_dest, veuillez vérifier le système en modifiant le fichier journal du commutateur système

alter system switch logfile;
system alerted

Essayez également de vous connecter avec un utilisateur non sysdba pour vous assurer que le problème est résolu

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>

Il est conseillé de faire une sauvegarde régulière du journal d'archivage et de les supprimer. Nous devrions mettre un script de surveillance pour garder un contrôle sur l'espace de la zone de récupération flash.

Articles connexes
ORA-00936 expression manquante
ORA-01017 :nom d'utilisateur/mot de passe invalide ; connexion refusée
ORA-29913 avec des tables externes
ora-00904 identifiant invalide
ORA-00001 contrainte unique violée
ORA-01111 dans MRP
Comment trouver l'historique du journal d'archivage
RMAN-06059 :journal archivé attendu introuvable, la perte du journal archivé compromet la capacité de récupération