Я пытаюсь использовать Oracle LogMiner (пакет DBMS_LOGMNR
) для реализации функций контрольных журналов на основе журналов повторного выполнения. Но каждый раз, когда я запрашиваю V$LOGMNR_CONTENTS
, он создает несколько больших (до 50M) файлов архивных журналов в области флэш-восстановления (SELECT NAME FROM V$RECOVERY_FILE_DEST
), несмотря на то, что в моей тестовой БД было всего несколько транзакций в час. После нескольких раз использования Oracle LogMiner все пространство в области флэш-восстановления становится занятым, и Oracle перестает работать.
Есть ли способ запретить Oracle LogMiner создавать архивные журналы в области мгновенного восстановления?
Я инициализирую Oracle LogMiner следующим образом:
SYS.DBMS_LOGMNR_D.BUILD(options => SYS.DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
SYS.DBMS_LOGMNR.START_LOGMNR(startScn => PREV_SCN, endScn => NEXT_SCN,
options =>
SYS.DBMS_LOGMNR.COMMITTED_DATA_ONLY +
SYS.DBMS_LOGMNR.DICT_FROM_REDO_LOGS +
SYS.DBMS_LOGMNR.SKIP_CORRUPTION +
SYS.DBMS_LOGMNR.CONTINUOUS_MINE
);
Расстояние между PREV_SCN и NEXT_SCN в моем случае всегда небольшое и охватывает только несколько транзакций.
Когда я использую ALTER DATABASE NOARCHIVELOG;
для отключения архивных журналов, DBMS_LOGMNR_D.BUILD
вызывает ORA-01325
: режим архивного журнала должен быть включен для встраивания в поток журналов.