Файлы Oracle .DBF. Как открыть и запустить операторы Select?

У нас есть веб-приложение Inventory и база данных Oracle.

Версия Oracle.. как я вижу в SQL Plus:

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

(Я очень новичок в Oracle или SQL Plus)

Наше веб-приложение и база данных отлично работают в производственной системе... и мы можем подключаться к базе данных и запускать операторы sql через ODBC (используя Microsoft Access)... для просмотра любой таблицы, которую мы хотим, в базе данных Oracle. .

Однако нам нужно провести расследование... о времени последнего обновления записи... и в производственной таблице время последнего обновления теперь изменено на самое последнее. И нам нужно получить доступ к базе данных в том состоянии, в котором она была 24 часа назад... К счастью, у нас есть полная резервная копия базы данных 24 часа назад... как показано на снимке экрана ниже... с выделенным temp01.dbf (здесь находятся фактические таблицы и данные).

Вопрос в следующем:

Как мы можем смонтировать эту базу данных в Oracle или где-либо еще (с любым другим приложением), чтобы просмотреть конкретную таблицу e.g. TBL_USERLIST.. и выполнить запрос выбора для этой таблицы.., чтобы найти время последнего обновления определенного пользователя на основе этой резервной таблицы. .. (У меня есть эта информация в производственной базе данных... но сейчас уже слишком поздно для целей расследования... и мне нужно вернуться в прошлое, чтобы найти время предыдущего последнего обновления).

Как мы можем сделать это легко... без множества обручей... В идеальной ситуации... все, что я хочу сделать, это смонтировать следующие файлы (как копию)... в какое-то приложение или существующий сервер... и запустить "select * from tbl_userlist" без остановки производственной системы или без простоев.

Возможно ли это легко? Как? Спасибо.

Oracle DBF и другие файлы из резервной копии


person ihightower    schedule 13.11.2015    source источник
comment
Если у вас включен FLASHBACK, вы можете изучить его. Кроме этого, я не думаю, что вы можете просто так использовать резервную копию файла данных в той же или других базах данных.   -  person Varun Rao    schedule 13.11.2015
comment
Привет.. Как узнать, включен ли FLASHBACK? Пожалуйста, так как я новичок в sql plus или oracle.   -  person ihightower    schedule 13.11.2015
comment
Используйте это select name, flashback_on from v$tablespace;   -  person Varun Rao    schedule 13.11.2015
comment
Это ошибка, которую мы получили... для приведенного выше запроса flashback_on.... ########ORA-00942: таблица или представление не существует######### Я не знаю, что это означает.. однако.. я могу вернуться во времени для таблицы примерно на 24 часа.. так что это означает, что воспоминание работает... но только то, что я не понимаю приведенную выше ошибку.   -  person ihightower    schedule 13.11.2015
comment
Возможно, у вас нет прав доступа к представлению от вашего текущего пользователя. Попробуйте использовать пользователя sys. Или предоставьте право выбора вашему пользователю.   -  person Varun Rao    schedule 13.11.2015
comment
У вас есть резервная копия управляющего файла вместе с резервной копией файла данных?   -  person Varun Rao    schedule 13.11.2015
comment
Я понятия не имею... что это такое... можете ли вы найти что-нибудь на скриншоте в моем вопросе? Актуально ли это для управляющих файлов?   -  person ihightower    schedule 13.11.2015
comment
Давайте продолжим обсуждение в чате.   -  person Varun Rao    schedule 13.11.2015


Ответы (1)


Если в вашей среде включен FLASHBACK, вы можете выполнить простой запрос, как показано ниже.

select *
from TBL_USERLIST
as of TIMESTAMP TO_TIMESTAMP('2015-11-12 09:30:00', 'YYYY-MM-DD HH:MI:SS');
person Varun Rao    schedule 13.11.2015
comment
Привет, спасибо за это .. это действительно отлично .. и это сработало !!! Однако.. есть одна проблема... Я могу вернуться только примерно к 24 часам.. и что-то более раннее.. выдает вот такую ​​ошибку.... ########## ORA-01555: снимок слишком старый: сегмент отката номер 9 с именем _SYSSMU9$ слишком мал l########## и я вижу, что запрос работает отлично... Однако.. теперь уже слишком поздно.. и мне нужно вернитесь назад во времени ... Так что другой вариант - просто использовать файл .dbf, я думаю ... (любая помощь в этом, пожалуйста ... или любой другой метод.). - person ihightower; 13.11.2015
comment
Ошибка возникает из-за конфигурации FLASHBACK вашей среды. Измените их, чтобы больше не оказаться в такой ситуации. И насколько я знаю, вы не делаете резервную копию базы данных, создавая резервную копию файла данных. (Я не знаю, как это действительно, если база данных работает.) Однако я проверю и вернусь через несколько минут. - person Varun Rao; 13.11.2015
comment
@ihightower Нет. Я думаю, вы не можете получить таблицы или данные из резервного файла данных. На самом деле идея сохранения резервной копии самого файла данных неверна. Oracle очень сложен. Это не похоже на mysql, где вы можете играть с базами данных в виде файлов. Рассмотрите возможность RMAN резервного копирования и восстановления в следующий раз. - person Varun Rao; 13.11.2015
comment
установите значение параметра db_flashback_retention_target в минутах как ваше требование для будущих целей. - person Varun Rao; 13.11.2015
comment
пожалуйста, смотрите мои комментарии в вопросе... для ошибки, которую мы получили для запроса flashback_on, который вы дали... и для ваших комментариев выше.. установка минут слишком долго в прошлом.. влияет ли это на производительность или что-то еще ? Большое вам спасибо .. до сих пор направление было отличным .. Большое спасибо! - person ihightower; 13.11.2015