Ошибка ORA-00257: archiver error. Connect internal only, until freed
Содержание [Скрыть]
- 1 1. Закончилось место на дисковом томе, куда пишутся архивные логи
- 2 2. Закончилось место выделенное под FRA
ORA-00257: archiver error. Connect internal only, until freed. (Ошибка архиватора. Не могу подсоедениться пока занят ресурс)
Эта ошибка может быть вызвана несколькими причинами:
1. Закончилось место на дисковом томе, куда пишутся архивные логи
Для начала нужно понять, куда пишутся архивлоги. Для этого возьмем значения следующих параметров в представлении V$PARAMETER:
- LOG_ARCHIVE_DEST (Устаревший, используется для БД редакции не Enterprise)
- LOG_ARCHIVE_DEST_n
- DB_RECOVERY_FILE_DEST. Этот параметр используется, если не установлено значение для любого параметра LOG_ARCHIVE_DEST_n, либо если для параметра LOG_ARCHIVE_DEST_1 установлено значение USE_DB_RECOVERY_FILE_DEST.
SELECT NAME, VALUE FROM V$PARAMETER WHERE ( NAME LIKE 'db_recovery_file_dest' OR NAME LIKE 'log_archive_dest__' OR NAME LIKE 'log_archive_dest___' OR NAME = 'log_archive_dest' OR NAME = 'log_archive_duplex_dest') AND VALUE IS NOT NULL;
И проверим, по каким из путей нет дискового пространства. Для этого можно воспользоваться командой df -Pk. Далее либо чистим место, на тех томах, где пространство занято на 100 процентов, либо командой ALTER изменяем том на который пишутся архивлоги.
Варианты минимизации ошибок:
1. Если используется параметр LOG_ARCHIVE_DEST, то можно указать дополнительно параметры LOG_ARCHIVE_DUPLEX_DEST и LOG_ARCHIVE_MIN_SUCCEED_DEST.
- LOG_ARCHIVE_DUPLEX_DEST — в этом параметре указываем каталог на дисковом томе, отличном от используемого в параметре LOG_ARCHIVE_DEST.
- LOG_ARCHIVE_MIN_SUCCEED_DEST — значение этого параметра указываем равным 1. В этом случае, если том указанный в LOG_ARCHIVE_DEST будет заполнен на 100 процентов, но при этом архивлог будет записан в каталог указанный в LOG_ARCHIVE_DUPLEX_DEST, мы не получим ошибку.
ALTER SYSTEM SET LOG_ARCHIVE_DEST = '/u01/ARC/TST/' SCOPE=spfile; ALTER SYSTEM SET LOG_ARCHIVE_DUPLEX_DEST = '/u02/ARC/TST/' SCOPE=spfile; ALTER SYSTEM SET LOG_ARCHIVE_MIN_SUCCEED_DEST = 1 SCOPE=spfile;
И перезапускаем БД.
2. Если используются параметры LOG_ARCHIVE_DEST_n. В данном случае нам может помочь опция ALTERNATE этого параметра. В случае, если недоступен путь для архивирования лог файла, то архивирование идет по альтернативно указанному пути:
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/ARC/TST/ MANDATORY MAX_FAILURE=1 REOPEN ALTERNATE=LOG_ARCHIVE_DEST_2' SCOPE=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE SCOPE=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/u02/ARC/TST/ MANDATORY' SCOPE=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ALTERNATE SCOPE=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='SERVICE=standby_path1 ALTERNATE=LOG_ARCHIVE_DEST_4' SCOPE=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=ENABLE SCOPE=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_4='SERVICE=standby_path2' SCOPE=both; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_4=ALTERNATE SCOPE=both;
3. Если используется параметр DB_RECOVERY_FILE_DEST, желательно перейти на использование LOG_ARCHIVE_DEST_n.
Для просмотра текущих путей копирования архивлогов можно воспользоваться следующим представлением: V$ARCHIVE_DEST.
2. Закончилось место выделенное под FRA
Если архивлоги настроены на запись в DB_RECOVERY_FILE_DEST_SIZE, то можно так же словить сообщение ORA-00257, в alert.log при этом будет сообщение с ошибкой ORA-19815:
ARC0: Error 19809 Creating archive log file to '/u01/FRA/TST/archivelog/2013_06_28/o1_mf_1_5734_%u_.arc' Errors in file /orasft/app/diag/rdbms/dwh/TST/trace/TST_arc0_8386.trc: ORA-19815: WARNING: db_recovery_file_dest_size of 644245094400 bytes is 100.00% used, and has 0 remaining bytes available. ************************************************************************ You have following choices to free up space from 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. ************************************************************************
Тут же дают и варианты решения:
- Изменить политику удержания и удаления архивлогов rman.
- Сделать бекап архивлогов на ленту с удалением с диска.
- Добавить дисковое пространство во FRA командой: ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 1024g SCOPE=both;
- Удалить ненужные архивлоги командами RMAN:
orasft@DB:/home/orasft$ rman target / -- Если архивлоги не нужны для бекапа: DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; -- Если архивлоги нужны для бекапа: CROSSCHECK ARCHIVELOG ALL; DELETE EXPIRED ARCHIVELOG ALL;
При удалении архивлогов можем получить ошибку:
RMAN-06207: WARNING: 1235 objects could not be deleted for DISK channel(s) due RMAN-06208: to mismatched status. Use CROSSCHECK command to fix status RMAN-06210: List of Mismatched objects RMAN-06211: ========================== RMAN-06212: Object Type Filename/Handle RMAN-06213: --------------- --------------------------------------------------- RMAN-06214: Archivelog /u01/FRA/archivelog/2013_06_09/o1_mf_1_6468_95bhbb33_.arc RMAN-06214: Archivelog /u01/FRA/archivelog/2013_06_09/o1_mf_1_6469_95bhh7rb_.arc
Это означает, что rman не может найти файлы для удаления. Тут же нам предлагают воспользоваться командой CROSSCHECK перед удалением: CROSSCHECK ARCHIVELOG ALL;
Чтобы избежать возникновения ошибки переполнения места выделенного под FRA используем для архивлогов параметр LOG_ARCHIVE_DEST_n.
Проверить насколько заполнена FRA можно следующей командой:
SELECT SUM (PERCENT_SPACE_USED) AS "% Used FRA" FROM V$FLASH_RECOVERY_AREA_USAGE S;
Автор Андрей Котован
Вам также может быть интересно
Программирование
Ошибка «Copy failed from …» при установке patch Oracle на ОС AIX
Программирование
Защита от подбора пароля root с помощью атаки перебором паролей (Unix)
Программирование
Программирование
Скрипт: Частота переключения логфайлов (Oracle Database)
Программирование
Выгрузка пользователей weblogic в файл
Программирование
Автоматическое создание пользователей в ldap каталоге WLS
Комментарии: 1
Вадим
Комментарий к пункту 1:
В случаи SCOPE=spfile — перезапуск экземпляра потребуется
В случаи SCOPE=both, изменения вступят в силу «на лету»