06.07.2007 18:05
Приобрели дисковый массив и необходимо перенести на него существующую базу.
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
На самом деле делается все значительно проще.
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
А я бы если конечно баз много и на OFA не наплевать просто массив подмонтировал как NTFS том.
А через EMConsole файлы переименовывать это конечно зачот :)
28.04.2008 03:36
Цитата:
OlegON На самом деле делается все значительно проще.
...
Посмотри в доке администратора "Восстановление из бекапа", оно хоть и для 8i писано, но кое что полезное там есть.
А можно ли для 9.2.0.8.0 оракла чуть поподробнее (СМ 1.024.6 sp2).

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

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

Может дока у кого пошаговая есть?
Буду премного благодарен.
28.04.2008 07:12
Вообщем делаешь так:
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
Цитата:
Mike Вообщем делаешь так:
Спасибо. Ночером буду пробовать снова.
28.04.2008 12:49
Цитата:
Stels Спасибо. Ночером буду пробовать снова.
Только насколько помню, файлы табличного пространства temp переименовать не даст.
Их можно drop и создать новые в нужном месте.
28.04.2008 13:02
Цитата:
vdm Только насколько помню, файлы табличного пространства temp переименовать не даст.
Их можно drop и создать новые в нужном месте.
я правильно понимаю?
ALTER DATABASE TEMPFILE 'tempfilename' DROP;
а потом
ALTER TABLESPACE TEMP ADD TEMPFILE 'tempfilename'
?
28.04.2008 13:27
Да, все верно, temp переименовывать не даст, делай как написал, сначало drop потом add.
28.04.2008 13:49
Цитата:
Mike Да, все верно, temp переименовывать не даст, делай как написал, сначало drop потом add.
Не верно. Если файл существует то можно и переименовать.
Часовой пояс GMT +3, время: 01:04.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.