Переименование экземпляра БД – несложная процедура. Приведу шаги для Windows. Для других ОС нужно сделать поправки на специфические особенности, как то: имена переменных окружения, пути к файлам, команды операционной системы и т.п. Итак.
sqlplus / as sysdba
") следующие действия:alter system switch logfile;
alter database backup controlfile to trace as 'c:\control.bkp' resetlogs;
create pfile from spfile;
shutdown immediate; exit;
copy %ORACLE_HOME%/database/INIT<olddb>.ORA %ORACLE_HOME%/database/INIT<newdb>.ORA
CREATE CONTROLFILE REUSE DATABASE newdb RESETLOGS NOARCHIVELOG
меняем на
CREATE CONTROLFILE SET DATABASE newdb RESETLOGS NOARCHIVELOG
А точнее – "REUSE
" меняем на "SET
".
set oracle_sid=newdb
oradim -new -sid %ORACLE_SID% -syspwd qwerty123 -startmode auto -srvcstart system
Где:
%ORACLE_SID% – переменная, созданная в предыдущем пункте;
qwerty123 – пароль для доступа к базе.
sqlplus / as sysdba
shutdown immediate;
startup nomount;
RECOVER DATABASE USING BACKUP CONTROLFILE
На что получим, скорее всего, подобное сообщение:
ORA-00279: change 31413210566 generated at 07/15/2013 17:55:31 needed for thread 1 ORA-00289: suggestion : D:\ORACLE\FAST_RECOVERY_AREA\OLDDB\ARCHIVELOG\2013_07_15\O1_MF_1_69238_%U_.ARC ORA-00280: change 31413210566 for thread 1 is in sequence #69238 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
В качестве аргумента нужно указать полное имя (включая путь) redo-файла. Например, 'D:\oracle\oradata\newdb\redo01.log' (redo-файл может быть и с другим номером – sequence # и файл, в котором он размещён, можно найти в alert.log). После чего появится:
Log applied. Media recovery complete.
ALTER DATABASE OPEN RESETLOGS;
ALTER TABLESPACE TEMP ADD TEMPFILE…
" (можно найти в 'c:\control.bkp').create spfile from pfile;
shutdown immediate; startup;
Всё.