Oracle rman простой бэкап на 11g

Этот вопрос почти точно так же, как простой бэкап оракула

но там нет приемлемого ответа, и этот вопрос о 11g. Поэтому я спрошу:

Я хотел бы сделать некоторые тесты DDL для инициализации таблицы на оракуле Shema, и я хотел бы вернуть базу данных в состояние предварительного тестирования между запусками. Я выполняю следующее в RMAN:

shutdown immediate;
startup mount
backup database;
sql 'alter database open';

Как я вижу, он работает нормально, список резервного копирования показывает резервные копии.

Затем я внес некоторые изменения (добавил несколько пользователей, добавил несколько таблиц, добавил данные) и попытался восстановить резервную копию:

shutdown immediate;
startup mount
restore database;
recover database;
sql 'alter database open resetlogs';

Ожидаемый результат: база данных должна быть восстановлена ​​до точного состояния, когда было выполнено первоначальное резервное копирование.

Фактический результат: все новые таблицы и пользователи, которые я создал в своем тестовом DDL, продолжают существовать. Я проверил это, закрыв соединения, перезапустив сеансы, а затем даже выбрав из таблиц! Таблицы все еще существуют даже после восстановления!

Что за дело с этим? В MSSQL и Postgres резервное копирование означает, что вы сохраняете состояние БД, а его восстановление означает, что вы возвращаетесь к тому моменту, когда резервное копирование было. Но в RMAN для oracle 11g "утверждается", что восстановление прошло успешно, но свидетельства ясно показывают обратное.

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

Возможно ли это в Oracle?

1 ответ

Решение

Да, это возможно - у вас есть несколько вариантов:

  1. создать холодную резервную копию базы данных (файлы данных, контрольные файлы, онлайн-журналы повторов) и затем восстановить их, когда это необходимо
  2. Выполните так называемое "восстановление во времени" (при условии, что ваша БД находится в режиме архивного журнала). Сделайте резервную копию БД с помощью RMAN, отметьте "время", "SCN" или "последовательность архива" через некоторое время, вы можете восстановить БД и восстановить до предыдущего отмеченного времени /SCN/LOG SEQUENCE
  3. Специально разработан Oracle для этих целей, и я рекомендую в вашем случае использовать "База данных Flashback" (просмотрите документы Oracle, чтобы узнать, что это такое).

Oracle всегда "пытается" восстановить / восстановить вашу базу данных до последней совершенной транзакции, если это возможно, поэтому вы получаете результат, который вы описали выше, но если вы хотите восстановить до определенного времени /SCN/SEQUENCE, просто сообщите Oracle о этот:)

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