Ошибка ORA-16038: log sequence cannot be archived — сбой процесса архиватора
- Запись в alert.log:
ORA-16038: log 2 sequence# 1042 cannot be archived. - Вспомогательные ошибки
ORA-00312: online log 2 thread 1иORA-19502: write error on file. - Архивация не может завершиться из-за отсутствия прав на каталог архивов или ошибок дискового I/O.
1. Проверка прав доступа и свободного места на файловой системе
# Проверка прав (должен быть владелец oracle:oinstall)
ls -ld /u02/archivelog
chmod 775 /u02/archivelog
chown oracle:oinstall /u02/archivelog2. Проверка статуса архивных назначений
SELECT dest_id, status, error FROM v$archive_dest WHERE status != 'INACTIVE';3. Повторная инициализация сбойного пути архивации
ALTER SYSTEM SET log_archive_dest_state_1 = 'DEFER' SCOPE=BOTH;
ALTER SYSTEM SET log_archive_dest_state_1 = 'ENABLE' SCOPE=BOTH;4. Ручной сброс зависшего архивлога
ALTER SYSTEM ARCHIVE LOG CURRENT; Частые вопросы (FAQ)
Почему ORA-16038 возникает при наличии свободного места на диске?
Причиной может быть достижение лимита inode в файловой системе Linux (df -i), ошибки прав доступа пользователя oracle на запись в каталог или блокировка файла антивирусом.
Как проверить ошибки ввода-вывода дисковой подсистемы?
Изучите системный лог ядра: dmesg -T | grep -Ei "I/O error|EXT4-fs error|xfs".
Что делать, если один из Redo Log файлов физически поврежден?
Если база открыта, выполните принудительное переключение: ALTER SYSTEM CHECKPOINT; а затем очистите поврежденный онлайн-лог: ALTER DATABASE CLEAR LOGFILE GROUP N;
Влияет ли параметр LOG_ARCHIVE_MAX_PROCESSES на надежность архивации?
Да, при интенсивной нагрузке один процесс ARCn может не справляться. Увеличьте количество архиваторов: ALTER SYSTEM SET log_archive_max_processes = 4 SCOPE=BOTH;