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