Поиск по этому блогу

четверг, марта 19, 2009

Перенос БД на новую тачку. Не мое. Круче

Памятку я писал для себя. Потоэтому некоторые вещи упустил. Решил выложить первоисточник, на основании которого делал свое. Хай прощает автор, непомню где брал.

Переименование SID

1. Запустить базу.

2. Выполнить команду ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

3. Остановить базу через normal, transactional, immediate, НО НЕ abort!

4. В полученном файле убрать все лишние строки (начинающиеся на * и т.д.),
установить CREATE CONTROLFILE REUSE SET DATABASE "" RESETLOGS NOARCHIVELOG
установить ALTER DATABASE OPEN RESETLOGS;

(RESETLOGS важно и в CREATE CONTROLFILE и в ALTER DATABASE OPEN, иначе будут ошибки)

изменить везде в путях к .DBF-файлам и REDO-логам на

=========== ВНИМАНИЕ !!! ОЧЕНЬ ВАЖНО !!! ==================================
Команду STARTUP NOMOUNT заменить на
STARTUP PFILE="\admin\\pfile\init.ora" NOMOUNT;
===========================================================================

Полученный трассировочный файл условно назовем CTL.SQL


5. Переименовать каталоги
\admin\ на \admin\

\oradata\ на \oradata\

6. Переименовать файл \admin\\pfile\init.ora на
\admin\\pfile\init.ora

7. В самом init файле изменить параметры

db_name
instance_name
service_names

control_files

log_archive_dest_n

background_dump_dest
core_dump_dest
user_dump_dest


8. Переименовать службу:
c:\>oradim -edit -sid -newsid -startmode a -pfile "\admin\\pfile\init.ora"

9. В реестре установить значение параметра ORA__AUTOSTART в FALSE
(чтобы вместе с запуском службы не запускалась база)

10. Изменить tnsnames.ora

=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = #host)(PORT = #port))
)
(CONNECT_DATA =
(SERVICE_NAME = )
)
)

11. Изменить listener.ora

SID_LIST_LISTENER =
(SID_LIST =
...

(SID_DESC =
(GLOBAL_DBNAME = )
(ORACLE_HOME = )
(SID_NAME = )
)

...

)
ПЕРЕЗАПУСТИТЬ ПЕРЕИМЕНОВАННУЮ СЛУЖБУ.
ПЕРЕЗАПУСТИТЬ LISTENER.

12. Создать файл init.ora в каталоге \database с параметром
IFILE='\admin\\pfile\init.ora'

13. Создать файл паролей:

c:\>orapwd file=pwd.ora password= entries=

14. Зайти в svrmgrl (или в sqlplus).

connect internal@

@CTL; (см. п.2-4)

15. Вперед на пиво!