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

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

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

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

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

Ответы [ 5 ]

6 голосов
/ 16 сентября 2008

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

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

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

    крепление при запуске;

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

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

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

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

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

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

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

  6. Воспоминание о точке восстановления.

    флэшбэк база данных для восстановления точки до_провождения;

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

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

5 голосов
/ 16 сентября 2008

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

Цитируется с сайта,

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

2 голосов
/ 16 сентября 2008

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

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

Некоторые статьи, которые вы можете проверить: OraFAQ Cheatsheet Oracle Wiki

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

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

1 голос
/ 16 сентября 2008

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

0 голосов
/ 16 сентября 2008

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

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

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

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

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

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

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

...