Быстро вернуть базу данных Oracle в известное состояние
Я хотел бы использовать Selenium для тестирования веб-приложения, но для того, чтобы сделать это успешно, тесты должны быть запущены для базы данных в известном состоянии.
Запись и запуск тестов Selenium не входят в сферу данного веб-сайта, поэтому я ищу только рекомендации о том, как наилучшим образом восстановить базу данных после каждого выполнения теста.
Некоторые детали:
- текущий размер базы данных составляет 30 ГБ, однако необходимо восстановить только около 4 ГБ
- база данных Oracle 11g Standard Edition, работающая на Windows Server 2003
- данные в 6 различных схемах должны быть возвращены
В идеале процесс должен быть написан по сценарию, чтобы его можно было часто и автоматически повторять через запланированное задание.
3 ответа
Самый простой и быстрый способ сделать это - поместить базу данных на машину OpenSolaris с использованием ZFS и сделать снимок ZFS перед запуском Oracle.
Поскольку вы уже заплатили за лицензию Windows Oracle, лучший способ сделать это - настроить сервер Nexenta и использовать iSCSI для доступа к ZFS в качестве обычной файловой системы Windows. Главное, что нужно помнить, это не создавать и не восстанавливать моментальные снимки во время работы Oracle.
Снимок и восстановление практически мгновенны.
Если вы видите имя Illumos, это новое имя OpenSolaris.
Я бы обернул сценарий оболочки с expdp для экспорта схемы и impdp для ее импорта снова. Перед запуском тестовых примеров экспортируйте базу данных и автоматизируйте тесты на селен, чтобы они выполняли сценарий оболочки после запуска, который выполнит командную строку impdp (или imp для более старой версии Oracle), чтобы восстановить базу данных.
Вот как мы это делаем в наших тестах.