Резервное копирование / восстановление базы данных для тестирования oracle 10g с помощью sqlplus или rman

использование Oracle 10g с нашим сервером тестирования, что является наиболее эффективным / простым способом резервного копирования и восстановления базы данных в статическую точку, предполагая, что вы всегда хотите вернуться к данной точке после создания резервной копии.

пример использования будет следующим

  1. установка и настройка всего программного обеспечения
  2. изменить данные в базу тестирования
  3. возьмите резервную копию как-то (это часть вопроса, как это сделать это)
  4. испытание
  5. возврат к состоянию шага 3 (Восстановление обратно в точку резервного копирования, это другая половина вопроса)

оптимально это будет завершено с помощью sqlplus или rman или другого скриптового метода.

5 ответов


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

шаги для этого будут:

  1. запуск экземпляра в режиме монтирования.

    запуск force mount;

  2. создать точку восстановления.

    создать точку восстановления базы данных flashback гарантии before_test;

  3. открыть база данных.

    изменить открытой базы данных;

  4. выполнить тесты.

  5. завершение работы и монтирование экземпляра.

    выключение немедленно; startup mount;

  6. возврат к точке восстановления.

    база данных flashback для восстановления точки before_test;

  7. открыть базу данных.

    изменить открытой базы данных;


вы можете использовать функцию в Oracle под названием воспоминания что позволяет создать точку восстановления, к которой вы можете легко вернуться после завершения тестирования.

процитировано с сайта

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


из моего опыта импорт / экспорт, вероятно,путь. Экспорт создает логический снимок вашей БД, поэтому вы не найдете его полезным для больших БД или требовательных требований к производительности. Однако он отлично работает для создания моментальных снимков и еще много чего для использования на нескольких машинах.

Я использовал его в проекте rails, чтобы получить снимок prod, который мы могли бы обменять между разработчиками для интеграционного тестирования, и мы выполнили работу в сценариях rake. Мы написали небольшой скрипт sqlplus, который уничтожил БД, а затем импортировал файл дампа сверху.

некоторые статьи, которые вы можете проверить: Шпаргалка OraFAQ Oracle Wiki

Oracle, по-видимому, больше не любит imp/exp в пользу насоса, когда мы использовали Data pump, нам нужны были вещи, которые мы не могли иметь (т. е. привилегии SYSDBA, которые мы не могли получить в общей среде). Так что взгляните, но не унывайте, если насос данных не ваша сумка, старый imp / exp все-таки есть :)

Я не могу рекомендовать RMAN для такого рода вещей, потому что RMAN занимает много настроек и нуждается в конфигурации в БД (у него также есть своя собственная БД каталога для резервных копий, которая является болью в пословице для восстановления голого металла).


Если вы используете файловую систему, поддерживающую моментальные снимки копирования при записи, вы можете настроить базу данных в нужное состояние. Затем выключите все и сделайте снимок файловой системы. Затем перейдите к тестированию,и когда вы будете готовы начать все сначала, вы можете откатить снимок. Это может быть проще, чем другие параметры, если у вас есть файловая система, поддерживающая моментальные снимки.


@Michael Ridley решение идеально подходит для сценариев и будет работать с любой версией oracle.

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

  1. откат файловой системы
  2. применить производственные архивные журналы
  3. возьмите новый снимок FS "Pre-Data-Masking"
  4. журналы сброс
  5. применить маскировку данных "preproduction".
  6. возьмите новый снимок" пост-маскировка данных " (позволяет откат для публикации маскированные данные)
  7. открыть базу данных

Это позволяет нам держать наши базы рядом с нашей производственной базы данных.

для этого я использую ZFS.

этот метод также может использоваться для ваших приложений или даже для всей "среды" (например, вы можете "откатить" всю свою среду с помощью одной (скриптовой) команды.

Если вы используете 10g, первое, что вы, вероятно, захотите посмотреть, это Flashback, так как его встроен в базу данных.