[ОТВЕТИТЬ]
Опции темы
06.07.2007 18:05  
ron
Приобрели дисковый массив и необходимо перенести на него существующую базу.
Oracle живёт в
D:\oracle
база в
D:\oracle\oradata\DATABASENAME
Хочу Oracle оставить там где и сейчас, а базу перенести на
F:\DATABASENAME
Задача вроде простая. Если бы это был mySQL - то это одну строчку подправить.
Попробовал на тестовой базе в Enterprise Manager Console в Storage>Tablespaces сперва опустил табличное пространство USERS, затем в системе один из файлов переместил, новый путь в менеджере указал, обратно всё поднял -- работает.
Значит таким способом можно все файлы последовательно в пространствах DRSYS INDX SYSTEM TEMP TOOLS UNDO USERS XDB перенести в другой каталог.
В таком случае непонятно как быть с CONTROLFILE, в менеджере явным образом пути к этим файлам поменять нельзя. Наверное, что-то делаю не так. Как правильно?
 
06.07.2007 21:51  
OlegON
На самом деле делается все значительно проще.
1) Переносим требуемые файлы базы при остановленном сервисе базы, запускаем сервис и делаем
Цитата:
alter database rename datafile ... to ...;
можно сразу скриптик подготовить, но я обычно имею дело с незнакомым бекапом или ленюсь :) Поэтому делаю
Цитата:
startup force
база пытается запуститься, ругается на какой-то файл по старому пути, я нахожу этот файл в том месте, куда свалил бекап и делаю rename datafile, перетащив имя файла через буфер. Быстро и удобно. Забыл упомянуть, что делается это после подключения через
Цитата:
sqlplus 'sys/passwd as sysdba'
2) Для переноса контрольников необходимо поменять их местоположение в файле инициализации (в 9ке придется его создать и запустить с ним, сохранив изменения в spfile)
но, как говорил неоднократно ранее, предпочитаю разрозненные диски массиву. Удобнее рассредотачивать данные.
И второе, очень не рекомендую привыкать к интерфейсу EMC, это баловство иногда помогает, когда не можешь вспомнить команду, но рассматривать его нужно лишь как вспомогательное средство, которое иногда отсутствует или глючит.
P.S. Блин, ты ж вроде по нашей тематике? :) Я уж решил, что со стороны человек пришел. Посмотри в доке администратора "Восстановление из бекапа", оно хоть и для 8i писано, но кое что полезное там есть.
 
09.07.2007 07:38  
reddevil
А я бы если конечно баз много и на OFA не наплевать просто массив подмонтировал как NTFS том.
А через EMConsole файлы переименовывать это конечно зачот :)
 
28.04.2008 03:36  
Stels
Цитата:
Сообщение от OlegON
На самом деле делается все значительно проще.
...
Посмотри в доке администратора "Восстановление из бекапа", оно хоть и для 8i писано, но кое что полезное там есть.
А можно ли для 9.2.0.8.0 оракла чуть поподробнее (СМ 1.024.6 sp2).

Задача стоит такая же ... но в доке только для 8 версии оракла написано ...
Поиском находится еще только одна ветка на эту тему:
http://www.olegon.ru/showthread.php?...E7%E0%F6%E8%E8
Прочитал, но не понял как это все срастить.

Если делать по доке, то SVRMGRL не находится (я так понял это для 8)

Может дока у кого пошаговая есть?
Буду премного благодарен.
 
28.04.2008 07:12  
Mike
Вообщем делаешь так:
1) останавливаешь сервис базы, копируешь файлы базы в нужное место
2) меняешь в файле init.ora путь к файлам, допустим если только поменялась буква диска то меняешь e:\ на d:\ (файл init.ora лежит в \oracle\имя_базы\admin\pfile\), запускаешь сервис базы.
3) затем запускаешь cmd.exe и пишешь:
set oracle_sid=имя_базы
set nls_lang=american_america.cl8mswin1251
sqlplus /nolog
connect sys/пароль_sys as sysdba
4) затем переименовываешь файлики как писал Олег:
alter database rename datafile 'старый путь' to 'новый путь';

p.s. если раньше на компе не было создано ни одной базы, то рекомендуется создать её через Database Configuration Assistant, а затем уже заменить файлы и переименовать их.
 
28.04.2008 10:41  
Stels
Цитата:
Сообщение от Mike
Вообщем делаешь так:
Спасибо. Ночером буду пробовать снова.
 
28.04.2008 12:49  
vdm
Цитата:
Сообщение от Stels
Спасибо. Ночером буду пробовать снова.
Только насколько помню, файлы табличного пространства temp переименовать не даст.
Их можно drop и создать новые в нужном месте.
 
28.04.2008 13:02  
Stels
Цитата:
Сообщение от vdm
Только насколько помню, файлы табличного пространства temp переименовать не даст.
Их можно drop и создать новые в нужном месте.
я правильно понимаю?
ALTER DATABASE TEMPFILE 'tempfilename' DROP;
а потом
ALTER TABLESPACE TEMP ADD TEMPFILE 'tempfilename'
?
 
28.04.2008 13:27  
Mike
Да, все верно, temp переименовывать не даст, делай как написал, сначало drop потом add.
 
28.04.2008 13:49  
reddevil
Цитата:
Сообщение от Mike
Да, все верно, temp переименовывать не даст, делай как написал, сначало drop потом add.
Не верно. Если файл существует то можно и переименовать.
 
 


Опции темы



Часовой пояс GMT +3, время: 15:46.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.