Привет 🙂
Сегодня расскажу, как восстановить удаленную таблицу в БД Oracle 11g. Эта опция работает и в Oracle 10g. Вообще, эта опция появилась еще в 9i, но еще лучше стала именно в 10g. Функция «Flashback Drop» в своем классе является быстрее. После удаления таблицы в вашей БД, Oracle помещает данную таблицу в корзину — Recycle Bin. Именно оттуда и потом восстанавливает её. Причем восстанавливает со всеми прикрученными на нее индексами и т.п.
Недавно мы ставили Oracle 11g и по умолчанию корзина включена, но если вдруг у вас она не задействована, то её можно включить так:
ALTER SESSION SET recyclebin=ON; |
Итак, вы удалили таблицу «TEST» с важными данными — восстанавливаем её. Пишем следующий запрос:
flashback TABLE TEST TO BEFORE DROP; |
После этого таблица снова появится в БД со всеми данными. Конечно, данную операцию лучше всегда производить быстрее, не откладывать на потом, т.к. со временем она удалится из корзины.
Если хотите восстановить таблицу и тут же ее как-то переименовать, то можно написать следующий запрос:
flashback TABLE TEST TO BEFORE DROP RENAME TO TEST_2; |
Я лично работаю в PL/SQL Developer 8 — специальная IDE для написания как простых sql запросов, так и кода на PL/SQL, встроен визуальный мастер создания таблиц, процедур, джабов (job) и т.п. И в этой IDE имеется опция «Корзина», где можете увидеть все удаленные таблицы из Oracle и просто нажатием кнопки восстановить их. Кстати, всем рекомендую пользоваться этим приложением — удобно и очень экономится время на создание запросов, тестирование и т.п.
На сегодня это все! Удачи!
Спасибо, помогли
Спвасибо, помогли
Где такая команда для mysql?
К сожалению, В MySQL нет такой команды и восстановить таблицу так нельзя, если не было сделано резервной копии базы 🙁 Напрмиер, есть хостинги, которые автоматически делают каждый день бэкап базы (если у вас сайт расположен на виртуальном хостинге).