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

StackOverflow https://stackoverflow.com/questions/67666

Вопрос

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

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

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

Оптимально это можно сделать с помощью sqlplus, rman или какого-либо другого метода, поддерживающего сценарии.

Это было полезно?

Решение

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

Шаги для этого будут следующими:

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

    принудительное крепление запуска;

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

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

  3. Откройте базу данных.

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

  4. Запустите свои тесты.

  5. Завершите работу и смонтируйте экземпляр.

    немедленное выключение;монтирование при запуске;

  6. Флэшбек к точке восстановления.

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

  7. Откройте базу данных.

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

Другие советы

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

Цитата с сайта,

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

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

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

Некоторые статьи, которые вы можете проверить:OraЧасто задаваемые вопросы Оракул вики

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

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

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

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

Это именно то, что я делаю: у меня есть сценарий, который запускается еженедельно.

  1. Откат файловой системы
  2. Применение журналов производственного архива
  3. Сделайте новый снимок файловой системы «до маскировки данных».
  4. Сбросить журналы
  5. Примените маскировку «предварительных» данных.
  6. Сделайте новый снимок «Post-Data-Masking» (позволяет выполнить откат для публикации замаскированных данных)
  7. Открытая база данных

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top