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