Клонировать существующую базу с помощью RMAN при наличии 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
И всё!