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

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

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

Когда-то делал себе памятку для переноса БД.

1.Стопорнуть БД. conn sys as sysdba;
shutdown immediate;
2.Скопировать: датафайлы,
редологи,
контролфайлы,
инифайл
3.Перенести файлы на новую тачку.
4.Создать на новой тачке сервис.
oradim -new -sid -srvc -pfile 'f:\.......'
5.Создать на новой тачке файл пароля sys.
orapwd file=pwd.ora password=<....> entries=<1|2|..>
(скинуть на всяк случай в папку oracle\ora92\dbs\)
6.Сделать коннест к новой БД. conn sys as sysdba;
7.STARTUP MOUNT PFILE='F:\cms\test\cmstest2_\pfile\init_cmstest2.ora'
8.Делаем следующий скрипт для каждого файла данных и редологов
alter database rename file
'I:\ORA_REDOLOG\COMPASS\LOGCMS3.ORA'
to 'E:\cms\test\cmstest2_\logs\redo\LOGCMS3.ORA'
9.alter database open
10.Нет файла ТЕМП делаем
а.RECOVER DATABASE А ПОТОМ
alter database tempfile 'K:\COMPASS\TEMP.ORA' drop;
б.ALTER TABLESPACE TEMP ADD TEMPFILE 'F:\cms\test\cmstest2_\system\TEMP.ORA'
SIZE 104857600 REUSE AUTOEXTEND OFF;
в. п.9

Если нет контрол файла
1. STARTUP NOMOUNT PFILE='F:\cms\test\cmstest2_\pfile\init_cmstest2.ora' ;
2.
CREATE CONTROLFILE set DATABASE "" RESETLOGS NOARCHIVELOG
MAXLOGFILES 100
MAXLOGMEMBERS 5
MAXDATAFILES 200
MAXINSTANCES 1
MAXLOGHISTORY 452
LOGFILE
GROUP 3 'E:\cms\test\cmstest2_\logs\redo\LOGCMS3.ORA' SIZE 100M,
GROUP 4 'E:\cms\test\cmstest2_\logs\redo\LOGCMS4.ORA' SIZE 100M
DATAFILE
'F:\cms\test\cmstest2_\system\DATASYSTEM01.DBF',
'F:\cms\test\cmstest2_\system\DATAUNDOTBS01.DBF',
'F:\cms\test\cmstest2_\system\DATADRSYS01.DBF',
'F:\cms\test\cmstest2_\system\DATAEXAMPLE01.DBF',
'F:\cms\test\cmstest2_\system\DATAINDX01.DBF',
'F:\cms\test\cmstest2_\system\DATAODM01.DBF',
'F:\cms\test\cmstest2_\system\DATATOOLS01.DBF',
'F:\cms\test\cmstest2_\system\DATAUSERS01.DBF',
'F:\cms\test\cmstest2_\system\DATAXDB01.DBF',
'F:\cms\test\cmstest2_\data\A4M.ORA'
CHARACTER SET CL8MSWIN1251
;
3. alter database mount;
4. RECOVER DATABASE;
5. ALTER DATABASE OPEN;
6. ALTER TABLESPACE TEMP ADD TEMPFILE 'F:\cms\test\cmstest2_\system\TEMP.ORA'
SIZE 104857600 REUSE AUTOEXTEND OFF;

Напоследок совет. Чтобы без проблем подобное сделать, желательно в начале работы БД выполнить скрипт.
alter database backup controlfile to trace;
или
alter database backup controlfile to trace as '/some/arbitrary/path';
Результат прибить гвоздями шоб не потерялся.