Дублировать базу данных Oracle на сервер разработки
Для проекта мне нужно дублировать всю (живую) базу данных Oracle с APEX
и 1 приложение с рабочего сервера на сервер разработки. Поиск в интернете привел меня к использованию RMAN
для этого, но проблема в том, что производственный сервер не находится в ARCHIVELOGMODE
, так RMAN
не сработает
SQL Developer сбивает меня с толку, так как я не могу заставить его скопировать всю базу данных; только данные таблицы. Он не будет создавать сами таблицы.
Есть ли способ сделать то, что я хочу без RMAN
инструмент?
Любая помощь будет принята с благодарностью, так как сейчас я застрял на этой, казалось бы, простой задаче, прежде чем я смогу продолжить свой проект.
РЕДАКТИРОВАТЬ:
Хорошо, ребята, я исправил это сам. Открыл SQL Developer и вручную создал табличное пространство с тем же именем, что и действующая база данных. Повторно использовал его файл данных для табличного пространства. Затем сделал копию базы данных на уровне табличного пространства из оперативного на сервер разработки. Наконец-то импортировал приложение APEX и вуаля! Оно работает!
1 ответ
Способ работы зависит от того, можете ли вы останавливать базу данных каждый раз, когда вам нужно скопировать БД.
Если да, я предлагаю два метода:
a) Выполните холодное резервное копирование - необходимо остановить БД и архив архива не требуется - и продублируйте базу данных из резервной копии
b) Остановите базу данных, скопируйте файлы данных, контрольный файл, журналы повторов и spfile на целевой сервер и соблюдайте пути. Новая БД запустится
Если вы не можете остановить базу данных, вам может потребоваться продублировать дату логическим способом, это своего рода перенос данных:
1) Создайте базу данных разработчиков
2) Создать структуру табличного пространства в базе данных dest
3) Скопируйте данные, используя create table, как select over db link, export/import datapump... Но этот способ может быть сложным, если вы хотите переместить огромное количество объектов.
Надеюсь, поможет