Задать вопрос
@DigitalGod

Как можно быстро сделать копию базы данных Oracle?

Доброго времени суток.
Подскажите, как можно быстро сделать копию базы данных Oracle?
На данный момент разворачивание дампа в 44Гб занимает около 5 часов. Раньше использовали Veritas Replication Exec на 32-битной версии Windows и копировали через VSS. Сейчас уже стоит 64-битная Windows и Veritas на ней не работает. Идея копировать измененные блоки файлов понравилась, но аналогичного софта не нашли.
  • Вопрос задан
  • 10652 просмотра
Подписаться 3 Оценить 2 комментария
Решения вопроса 1
По существу вопроса:
Мы сделали 3 standby из которых:
1 - собственно standby,
а 2 других как раз для разработчиков, тестов и т.п.

Эти самые "2 других" ночью полноценные physical standby - накатывают данные с рабочей,
а днём переключаются в snapshot standby - для работы "разработчиков, тестов и т.п.".
Переключение организованно скриптами по cron-у - утром "открываем", вечером "закрываем".
Вечером, если надо, можно и не закрывать - главное, чтобы хватало место на диске.

При этом каждый день мы имеем свежий "срез" рабочей БД для "разработчиков, тестов и т.п.".

P.S.
"На данный момент разворачивание дампа в 44Гб занимает около 5 часов. " -
что-то не шибко быстро.
Мы разворачиваем отдельную (not standby) тестовую БД часов за 20.
~6Tb, rman duplicate from active or backup location, 12 потоков
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Прочтите это:
http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php
База размером 38-40 Gb переносится меньше чем за час.

Или наверное более верный путь:
http://www.oracle-base.com/articles/11g/duplicate-database-using-rman-11gr2.php
Ответ написан
Qwadrat
@Qwadrat
Если 11g, то можно клонировать на лету с активной базы без создания бэкапа:

rman target sys@db1 auxiliary sys@db2

DUPLICATE TARGET DATABASE TO db2
FROM ACTIVE DATABASE
DB_FILE_NAME_CONVERT '/u01/oradata/db1/','/u01/oradata/db2/'
SPFILE
PARAMETER_VALUE_CONVERT '/u01/oradata/db1/','/u01/oradata/db2/'
SET LOG_ARCHIVE_DEST '/u01/oradata/arc/db2/'
SET LOG_FILE_NAME_CONVERT '/u01/oradata/db1/','/u01/oradata/db2/';

Конвертация имен файлов актуальна, если делаем копию на этом же хосте
Ответ написан
Комментировать
А насколько часто нужно эту операцию производить? Если для отказоустойчивости, то не думали в сторону Standby-базы в режиме Mirror к основной?

При этом все транзакции, совершаемые на основной базе, будут автоматически применяться на Standby; базу можно будет использовать для Read-only операций (к примеру, отчетность), и оперативно превратить в production, если возникнет необходимость.
Ответ написан
А если автоматизировать на ночь заливку dump'а? В таком случае даже 5 часов не проблема - пусть себе спокойно переливает с production к developer'ам.

Или production ночью критичен для такой нагрузки?

При таком подходе все равно остается проблема разворачивания копии за давнее число, но тут уже больше в железо упирается... Bottleneck в дисках?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы