Эта ошибка возникает в случае несоответствия между REDO записями и сегментами отката (записями UNDO). Обычно эта ошибка имеет как минимум 2 дополнительных параметра в квадратных скобках:
- Первый параметр показывает максимальный номер записи UNDO в сегменте отката.
- Второй параметр показывает номер записи UNDO в блоке REDO.
Например так:
ORA-00600: internal error code, arguments: [4194], [19], [33], [], [], []
Действия
Для решения этой проблемы необходимо пересоздать табличное пространство UNDO. Для начала переключим управление откатом на режим, в котором используются сегменты (rollback_segment), расположенные в системном табличном пространстве (SYSTEM). Соединяемся с простаивающим экземпляром БД, запускаем его и останавливаемся перед этапом монтирования. Создаем конфигурационный файл PFILE из SPFILE и останавливаем БД.
startup nomount; create pfile from spfile; shutdown immediate
В полученном PFILE комментируем строку undo_tablespace=UNDOTBS1 и добавляем строку undo_management=MANUAL. Вот так:
undo_management=MANUAL #undo_tablespace=UNDOTBS1
Для упрощения, просто обновляем SPFILE на основе отредактированного PFILE и монтируем БД.
startup nomount; create spfile from pfile; alter database mount;
Удаляем табличное пространство UNDO и создаем новое.
-- удаление старого табличного пространства alter database datafile 'ORACLE_BASE/oradata/SID/undotbs01.dbf' offline drop; alter database open; drop tablespace UNDOTBS1 INCLUDING CONTENTS and datafiles; -- создание нового табличного пространства CREATE UNDO TABLESPACE undotbs DATAFILE 'ORACLE_BASE/oradata/SID/undotbs02.dbf' SIZE 100M; shutdown immediate
Возвращаем обратно параметр конфигурационного файла.
#undo_management=MANUAL undo_tablespace=UNDOTBS1
Пересоздаем из него SPFILE и запускаем БД.
startup nomount; create spfile from pfile; shutdown immediate startup