Частенько бывает ситуация, когда надо поставить на новый хост ПО Oracle с набором из 15 патчей, последним PSU, и кучей всего. Самое неприятное, если его надо поставить не на один хост, а на несколько. В таком случае крайне удобно будет иметь технологию клонирования существующих Home'ов прямо со всем содержимым. Такая технология есть и описана в Doc ID 1221705.1. Данная статья описывает последовательность действий для версий 11.2.0.x
.
Вот последовательность действий (важно помнить, что на целевом хосте должны быть сделаны все настройки из пункта Preinstallation Requirements
):
- Ставим Home и все патчи на исходном хосте.
-
Копируем Home на новый сервер с помошью
tar
. Это можно делать при работающей БД. Если используется AIX, вместо tar используем gtar.cd /ora/app/11.2.0 tar -cf - db_home | ssh newhost "cd /ora/app/11.2.0; tar -xf -"
Если копирование идёт не от рута, а от пользователя-владельца, то возможны ошибки при копировании следующих файлов:
$ORACLE_HOME/bin/nmb
$ORACLE_HOME/bin/nmo
$ORACLE_HOME/bin/oradism
Это безобидно, можно смело игнорировать. -
Создаём
/etc/oraInst.loc
(AIX, Linux) или/var/opt/oracle/oraInst.loc
(Solaris, HP-UX). Можно скопировать файл с исходного хоста и подредактировать. -
Если клонирование делается на AIX, то запускаем скрпит
rootpre.sh
. Его можно взять в установочном дистрибутиве. Если используется другая ОС, то этот пункт пропускаем. -
Собственно клонирование выполняется perl-скриптом:
cd $ORACLE_HOME/clone/bin perl clone.pl ORACLE_HOME="/ora/app/11.2.0/db" ORACLE_HOME_NAME="MyNewHome" ORACLE_BASE="/ora/app" OSDBA_GROUP=dba OSOPER_GROUP=dba
-
Обязательно запускаем от имени рута файл
$ORACLE_HOME/root.sh
-
Создаём
Automatic Diagnostic Repository
:$ORACLE_HOME/bin/diagsetup basedir=/ora/app oraclehome=/ora/app/11.2.0/db
Если в дальнейшем планируется создавать новую базу утилитой
dbca
, то этот шаг пропускаем.
Теперь имеем полностью рабочий Oracle Home на новом хосте. При необходимости удалить старый home, см. соответствующую статью.