Oracle флэшбэки, запрос прошлых данных

Знаете ли вы, как именно работает запрос прошлых данных?

Версия оракула 10G

С помощью этого запроса я могу восстановить некоторые данные, но иногда этот запрос

 select * 
  from table as of timestamp systimestamp - 1 

восстановить ошибку (слишком старый снимок). Можно ли увеличить время на эту работу и получить данные о 24 часах? Спасибо!

2 ответа

Решение

Ошибка означает, что сегмент отката стал недействительным, потому что, как правило, запрос занимал слишком много времени. Есть и другие причины. Как откат размеров сегмента.

Сколько строк в таблице? - вы можете получить представление из этого выбора num_rows из all_tables, где table_name='MYTABLE_NAME_GOES_HERE';

Если есть много строк, вам может понадобиться добавить какой-нибудь индекс для поддержки вашего запроса. Потому что полный та

Ключевым вопросом здесь является определение размера сегментов отмены, а также сохранение и гарантия отмены.

Короче говоря, вам нужно, чтобы размер табличного пространства отмены был таким, чтобы в нем содержались все изменения, которые могут быть сделаны с максимальным периодом, на который вы хотите вспомнить, и вы хотите установить для параметра отмены хранения это значение. Если для вашего приложения действительно важно, чтобы отмена была сохранена, тогда установите гарантию отмены в табличном пространстве отмены.

Полезные документы: http://docs.oracle.com/cd/B12037_01/server.101/b10739/undo.htm

Имейте в виду, что быстродействие флешбека довольно низкое для объемных данных, так как требуемые блоки отмены должны быть найдены в табличном пространстве. 11g имеет лучшие варианты для высокопроизводительного воспоминания.

Другие вопросы по тегам