powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Восстановление данных при flashback запросе
8 сообщений из 8, страница 1 из 1
Восстановление данных при flashback запросе
    #39449865
Сергей_КМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день.
Задача восстановить ряд удаленных записей из нескольких таблиц базы на определенный момент времени (несколько часов назад) При попытке восстановить таблицу по технологии Flashback вот так:
FLASHBACK TABLE T1 TO TIMESTAMP to_date('05/05/2017 10:35:00','mm/dd/yyyy hh24:mi:ss');

для части таблиц восстановление проходит, а на некоторых возникает ошибка
"ORA-01555: snapshot too old: rollback segment number 11 with NAME "_SYSSMU195$" too small"

Вопросы
1. Означает ли ошибка "ORA-01555: snapshot too old: rollback segment number 11 with NAME "_SYSSMU195$" too small"
то, что данные уже не восстановить? Смущает то, что если пытаться восстановить данные на более древний момент времени, то
ошибка выдается другая, более понятная: "ORA-08180: no snapshot found based on specified time", по которой очевидно что таких данных уже нет.
Также смутило, что поискав в интернете информацию по этой теме наткнулся на статью " https://renaps.wordpress.com/2007/08/08/ora-01555-snapshot-too-old-when-using-flashback-query/" в которой пишут, что если поменять размеры файлов UNDO, то ошибка уйдет и данные можно восстановить. У меня такие изменения результата не принесли, или я недопонимаю насколько нужно увеличивать.

2. Если сделать запрос вида
SELECT * FROM T2 AS OF TIMESTAMP TO_TIMESTAMP ('2017-0505 10:35:00', 'YYYY-MM-DD HH24:MI:SS')
то выбирается какое то количество записей (в моем примере 1800300), а на следующей опять выдается ошибка ORA-01555.
А есть ли вероятность, что это ошибка выдается только при извлечении строки 1800300, а данные по следующим строкам более 1800300 есть. Можно ли их как то достать?


3. Также непонятно, почему при выполнении запроса
SELECT * FROM T2 AS OF TIMESTAMP TO_TIMESTAMP ('2017-0505 10:35:00', 'YYYY-MM-DD HH24:MI:SS') WHERE ROWNUM=10
ошибка ORA-01555 выдается, а если условие сделать так:
SELECT * FROM T2 AS OF TIMESTAMP TO_TIMESTAMP ('2017-0505 10:35:00', 'YYYY-MM-DD HH24:MI:SS') WHERE ROWNUM<11
то ошибка не выдается и выбираются 10 записей

Буду очень благодарен за помощь, подсказки, советы.
Другие варианты восстановления уже отпали, этот - последняя надежда.
...
Рейтинг: 0 / 0
Восстановление данных при flashback запросе
    #39449879
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 создайте новое андо и переключите на него текущую активность, чтобы данные ваших убитых таблиц не перезатирались дальше
2 привлекайте админа или техподдержу, кто сможет более осмысленно попытаться вытащить то, что еще имеется, шансы частично восстановить проблемные таблицы еще есть
...
Рейтинг: 0 / 0
Восстановление данных при flashback запросе
    #39450020
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_КМпочему
WHERE ROWNUM=10Потому что это тавтологически ложное условие, но всё равно нужно извлечь все строки.
...
Рейтинг: 0 / 0
Восстановление данных при flashback запросе
    #39450228
Сергей_КМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВА,

благодарю за ответы.
С админами и техподдержкой сложно, лучше бы самому освоить, почитать. Какие могут быть дальнейшие действия для частичного построчного восстановления данных в этой ситуации. И означает, ли если ошибка в запросе
SELECT * FROM T1 AS OF TIMESTAMP TO_TIMESTAMP ('2017-0505 10:35:00', 'YYYY-MM-DD HH24:MI:SS')
возникает на строке 1800300 то, что для всех строк более 1800300 такая ошибка будет?
Можно ли как-то исключить из запроса строки с ошибками и в итоге вставить условие вида " rownum>2000000 and rownum<2000009", или есть другие технологии? Если несложно, в 2 словах, пожалуйста, задайте направление)

Elic,Спасибо
...
Рейтинг: 0 / 0
Восстановление данных при flashback запросе
    #39450231
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_КМИ означает, ли если ошибка в запросе
SELECT * FROM T1 AS OF TIMESTAMP TO_TIMESTAMP ('2017-0505 10:35:00', 'YYYY-MM-DD HH24:MI:SS')
возникает на строке 1800300 то, что для всех строк более 1800300 такая ошибка будет?Нет.
Сергей_КМЕсли несложно, в 2 словах, пожалуйста, задайте направление)Поздно пить боржоми.
Сергей_КМили есть другие технологии?Построчное извлечение данных с игнорированием ошибки. Но это очччччень медленно.
...
Рейтинг: 0 / 0
Восстановление данных при flashback запросе
    #39450234
Сергей_КМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

поподробнее бы про Построчное извлечение данных с игнорированием ошибки
Это делается с помощью какого-то условия в запросе или скриптом? Можете какой-то пример привести или ткнуть что почитать? Спасибо. Вопрос времени восстановления не смущает
...
Рейтинг: 0 / 0
Восстановление данных при flashback запросе
    #39450250
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_КМЭто делается с помощью какого-то условия в запросе или скриптом?Скорее всего, хватит и поблочного.
RTFM *_extents + dbms_rowid.rowid_create

Но все твои вопросы указывают на то, что у тебя не взлетит.
...
Рейтинг: 0 / 0
Восстановление данных при flashback запросе
    #39450284
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто в UNDO информация уже недоступна (перезатерта)
Варианты:
-- доставать из бэкапа (TSPITR),
-- восстанавливать через LogMiner (кстати, если именно восстановить несколько удаленных записей, то не очень плохая идея)
Но:
-- в первом случае необходимо наличие бэкапов
-- а во-втором, БД должна быть в ARCHIVELOG и они должны быть доступны
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Восстановление данных при flashback запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]