Клонировать существующую базу с помощью RMAN очень просто. Я делал это на одной машине под управлением CentOS Linux, но это не принципиально.
Условия:
При выполнении этих условий проблем возникнуть не должно.
У меня было так:
ORA11G";/opt/oracle/11g/oradata/ORA11G/".
Клонировал в экземпляр "ORA11GD".
Итак, выполняем следующее:
listener.ora":
(SID_DESC =
(SID_NAME = ORA11GD)
(ORACLE_HOME=/opt/oracle/11g/product/11.2.0/dbhome_1)
)
tnsnames.ora":ORA11GD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host.domain.ru)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = ORA11GD)
)
)
mkdir -p /opt/oracle/11g/oradata/ORA11GD
orapwd file=$ORACLE_HOME/dbs/orapwORA11GD password=<PASSWORD> entries=10
pfile файл "$ORACLE_HOME/dbs/initORA11GD.ora" следующего содержания:compatible='11.2.0.0.0'
control_files=('/opt/oracle/11g/oradata/ORA11GD/control01.ctl',
'/opt/oracle/11g/oradata/ORA11GD/control02.ctl',
'/opt/oracle/11g/oradata/ORA11GD/control03.ctl')
db_block_size=8192
db_name='ORA11GD'
DB_FILE_NAME_CONVERT=(/opt/oracle/11g/oradata/ORA11G/,/opt/oracle/11g/oradata/ORA11GD/)
LOG_FILE_NAME_CONVERT=(/opt/oracle/11g/oradata/ORA11G/,/opt/oracle/11g/oradata/ORA11GD/)
export ORACLE_SID=ORA11GD
sqlplus / as sysdba
spfile из существующего pfile:create spfile from pfile;
startup force nomount;
Теперь либо выходим из "sqlplus", либо переходим в другой терминал и выполняем следующее:
export ORACLE_SID=ORA11GD
NOCATALOG"):rman TARGET sys/qwerty123@ORA11G NOCATALOG AUXILIARY /
duplicate target database to ORA11GD;
После того, как отработает RMAN, база готова к соединению. Не забудьте добавить соответствующую строку в "/etc/oratab", чтобы экземпляр стартовал автоматически при запуске ОС (см. также dbora для одновременного запуска Oracle 10g и Oracle 11g):
ORA11GD:/opt/oracle/11g/product/11.2.0/dbhome_1:Y
И всё!