Когда оператор SELECT выполняется для представления V $ LOGMNR_CONTENTS, файлы журнала повторного выполнения архивов читаются последовательно. Эти архивные файлы журнала повторного выполнения находятся в месте назначения архивного журнала. Переведенные записи из файлов журнала повторного выполнения возвращаются в виде строк в этом представлении. Это продолжается до тех пор, пока не будут выполнены критерии фильтрации, указанные при запуске (EndTime или endScn), или пока не будет достигнут конец файла архивного журнала.
Поле TIMESTAMP - это метка времени, когда было внесено изменение в базу данных. Эта временная метка соответствует преобразованию SCN SCN_TO_TIMESTAMP, так что для данного SCN у вас есть соответствующая временная метка.
Поле COMMIT_TIMESTAMP - это временная метка, когда транзакция была зафиксирована; имеет смысл только в том случае, если в вызове DBMS_LOGMNR.START_LOGMNR () была выбрана опция COMMITTED_DATA_ONLY. Как вы знаете, запрос журналов повторного выполнения и журналов архива требует, чтобы вы вызывали этот пакет в сеансе майнинга журналов.
На самом деле Oracle иногда использует типы данных DATE, хотя, вероятно, следует использовать TIMESTAMP во многих словарные поля. Зачем ? Я, честно говоря, не знаю, это то же самое, когда они используют для одного владельца представления словаря, для других table_owner и для других owner_name.
DBTIMEZONE указывается в операторе CREATE DATABASE, поэтому в момент создания база данных. вы можете изменить DBTIMEZONE с помощью ALTER DATABASE
alter database set time_zone = 'EST';
Имейте в виду, что изменение часового пояса базы данных вступит в силу только после выключения / запуска, и это не рекомендуется.
TIMESTAMP WITH ЧАСОВОЙ ПОЯС - это вариант TIMESTAMP, который включает в свое значение имя региона часового пояса или смещение часового пояса. Смещение часового пояса - это разница (в часах и минутах) между местным временем и UT C (всемирное координированное время, ранее - среднее время по Гринвичу).
Oracle База данных нормализует все новые TIMESTAMP с местным часовым поясом данные в часовой пояс базы данных, когда данные хранятся на диске. Oracle База данных не обновляет автоматически существующие данные в базе данных для нового часового пояса. Следовательно, вы не можете сбросить часовой пояс базы данных, если в базе данных есть данные TIMESTAMP WITH LOCAL TIME ZONE. Сначала необходимо удалить или экспортировать данные TIMESTAMP WITH LOCAL TIME ZONE, а затем сбросить часовой пояс базы данных. По этой причине Oracle не побуждает вас изменять часовой пояс базы данных, содержащей данные.
Пример моего случая: у меня есть база данных Oracle в Azure (где все серверы используют UT C) В моем случае я решил использовать UT C вместо использования другого DBTIMEZONE. Затем я создал функцию для преобразования любой временной метки, хранящейся в любой таблице, в мой часовой пояс.
Интересно, зачем вам читать журналы повтора / архива, нужно ли восстанавливать потерянные транзакции? Я надеюсь, что объяснение удовлетворительное, пожалуйста, не стесняйтесь комментировать или спрашивать любые другие сомнения, которые могут у вас возникнуть.