У меня есть таблица, в которой включена флэшбэк. Я хочу запросить данные с помощью предложения AS OF
следующим образом:
SELECT *
FROM employees AS OF TIMESTAMP TO_TIMESTAMP('2019-09-11 00:00:00', 'YYYY-MM-DD HH24:MI:SS');
Срок хранения архива флэшбека составляет 14 дней.
На сегодняшний день, 16 октября 2019 года, яя могу вернуться до 11 сентября 2019 года. Если я прохожу 10 сентября, то есть 2019-09-10 00:00:00
в TO_TIMESTAMP
в приведенном выше запросе, я получаю ORA-08180: no snapshot found based on specified time
Итак, как мне найтиточное время, до которого сохраняется SCN? Я прошел OraDocs и обнаружил следующую информацию:
Связь между SCN и временной меткой, когда SCN генерируется, запоминается базой данных в течение ограниченного периода времени. Этот период является максимальным из периода хранения с автоматической настройкой отмены, если база данных работает в режиме автоматического управления отменой, и времени хранения всех архивов флэш-памяти в базе данных, но не менее 120 часов.
Я запросил параметр UNDO_RETENTION
, и для него установлено значение по умолчанию 900 секунд. И есть только один архив воспоминаний, с RETENTION_DAYS
, установленным на 14 ДНЕЙ. Итак, согласно документу, срок службы СКС должен составлять 14 дней. Но как я могу вернуться примерно на месяц назад?
PS: я проверял другую базу данных, в которой для параметра UNDO_RETENTION
установлено значение по умолчанию 2700 (45 минут), и у меня был только один архив воспоминаний с RETENTION_DAYS
, установленным в 14. В этом случае я смогзапрос до 6 дней. Как именно рассчитывается срок службы СКС? Это как-то связано с созданием архива флэшбека?