09.04.2010 21:15
Pyatak
 
Коллеги, есть аналогичная тема по переходу с 8i на 9i. Я так полагаю, что при переходе с 9-ки на 10-ку, последовательность, в общем и целом, должна быть такой же. Может кто уже осуществлял данный процесс, расскажите пожалуйста о особенностях, о подводных камнях, которые попадались, граблях, на которые на ступали.
Сервер уже поднял (Gentoo x86_64 + Oracle 10.2.0.4), сейчас база генерируется, на выходных хочу начать процесс переноса данных.
10.04.2010 21:04
OlegON
 
Буду писать для всех.
На самом деле если речь идет об апгрейде базы, которая когда-то была 8i, то очень рекомендую экспорт-импорт где-то работы на 10ке проделать. Уж больно много багов я съел именно при такой последовательности. Это раз. 10.2.0.4 обязательна (не .3) это два. Если бы была винда и с 9 до 10 поднимались родным upgrade assistant, то проверить все 100 раз, пару раз натыкался, что проявлялись баги, которые потом требовали еще патчей, что ни разу не повторялось при обычном экспорте-импорте. Обязательно проверить наличие триггеров, просто чтобы они были в схеме супермага и не менее 10, пропадали. Хз куда, просто не было и все. Вообще ни одного. Да, при экспорте/импорте обязательно экспортим той версией, откуда достаем, при импорте импортим той версией, куда вливаем. Не забываем про nls_lang, после экспорта необходимо убедиться, что вместо русских букв нет вопросиков в дампе. Выливал как-то под линуксом, очень потом огорчался.
Это грабли... А так все обыденно... Если с винды переносишь - вообще все ок. Если с линукса обратно - да, могут быть нюансы вроде неподдерживаемого размера блока.
11.04.2010 23:35
Pyatak
 
И так, переход состоялся. Пока полет нормальный, глюков еще не выявлено.
Начало было такое же, как при переходе с 8 на 9:
1) удаляем все расчеты и переносы товародвижения, если таковые имеются
2) отключаем все сервисы СМ, чтобы пользователи не ломились и не натворили бед, и чтобы почтовик не влез.
3) Удаляем триггер DBPasswordChange (команда drop trigger supermag.dbpasswordchange; в sqlplus)
Если кто знает зачем, поясните пожалуйста. При переходе с 8 на 9 в ответ на этот пункт вообще выводилась ошибка о том, что данный тригер не существует, хотя, может тогда у меня была слишком старая версия СМ
4) проверяем, что есть достаточно дискового пространства для дампа
5) запускаем консоль (cmd), переходим туда, где создаем дамп
6) set NLS_LANG=american_america.cl8mswin1251
7) set ORACLE_SID=имя базы
8) exp full=y buffer=10000000 log=log.txt
9) на появившемся запросе логина вводим sys as sysdba
10) вводим пароль
При экспорте из 9-ки все срабатывает именно так, как надо. При экспорте из 8-ки, такой способ подключения не прокатывал почему-то.
11) терпеливо ждем окончания экспорта
12) убедились, что в log.txt одна из последних записей содержит слово successfully (не unsuccessfully)
В моем случае было: "Export terminated successfully without warnings.", даже без замечаний, я думал такого не бывает и даже промелькнула надежда, что при импорте будет также :)
Всё, экспорт окончен. Как ставить 10-ку разговор для отдельной темы. В моем случае уже подготовлена БД на Gentoo Linux x86_64, копирую туда дамп и поехали:
13) export NLS_LANG=american_america.cl8mswin1251
14) imp full=y ignore=y log=logi.txt
15) вводим sys as sysdba
16) вводим пароль
если вы не перевели имя файла дампа в нижний регистр, утилита скажет, что файл не найден и запросит его местоположение, просто введите его имя в верхнем регистре.
17) так же терпеливо ждем завершения вливания базы
18) убедились, что в logi.txt одна из последних записей содержит слово successfully
without warnings здесь уже не дождетесь))
Далее я с базой работал через TOAD, но можно и через sqlplus, главное чтобы от имени sys as sysdba.
19) Раздаем гранты, как написано тут, но мне не хватило еще вот этого:
GRANT SELECT ON "SYS"."V_$INSTANCE" TO "SUPERMAG";
20) Компилируем инвалидные объекты. Как это сделать, см. тут. Обращаю внимание, что там почти в каждом скрипте есть ошибки, которые перед запуском нужно поправить, а именно: везде между c.owner, точкой и c.name не должно быть никаких пробелов. В скрипте компиляции тригеров вообще перепутана последовательность c.type, c.owner и c.name, будьте внимательны.
21) Проверка, что все сделали правильно, например так:
Код:
select owner,object_type,object_name,status from dba_objects
where status='INVALID'
ORDER BY 2,3
В моем случае остались инвалидами следующие вьюхи, так и не смог их вылечить, говорит "неверный символ":
SYS._ALL_REPCONFLICT
SYS._ALL_REPPARAMETER_COLUMN
SYS._ALL_REPRESOLUTION
Одноко, пока все работает. Если кто знает что с этим делать. Поделитесь опытом.
12.04.2010 06:55
Ivan Drago
 
Попробуй @?/rdbms/admin/utlrp запустить. После 16) не верхний и не нижний, а такой, какой есть. Имена файлов в Linux регистрозависимые. Или не в этом дело?
Не забываем, что при переходе с 9 на 10 как раз можно использовать upgrade assistant
12.04.2010 15:39
Propil
 
нахожусь в процессе перевода с 8-ки на 10-ку..

Вот с чем столкнулся - после установки 10-ки иду в Home selector, а там на выбор только две записи - от 8-ки и 6-ка репортсы.
В реестре ветка 10-ке появилась "KEY_OraDb10g_home1"

Как выбрать в качестве home по-умолчанию 10-ку?
**
Windows 2003
12.04.2010 15:45
Ivan Drago
 
Поправь просто %PATH% соответствующим образом (каталоги 10ки вперед). И создай %ORACLE_HOME% в нужную тебе директорию. А в целом следует избегать таких комбинаций. Но, как я помню, кого последнего ставил, тот и default. Запусти lsnrctl из консоли, посмотри какая версия будет.
12.04.2010 15:50
Propil
 
спасибо
Это я проделал
Меня смутило отстутствие в хоум селекторе записи о 10-ке
12.04.2010 15:50
Pyatak
 
Ага, старый home selector не видит десятки.
Однако, у меня на клиентских машинах стоял 9-ый клиент, он прекрасно заработал с 10-ым сервером, поэтому заморачиваться не стал.
13.04.2010 18:06
Propil
 
перевел две восьмерки на 10-ку по этой схеме
полет нормальный
На своей машине поторопился клиента поменять на 10-й
Теперь не могу подключиться к оставшимся восьмерочным базам...
Что-ж, есть стимул быстрее закончить апгрейд
13.04.2010 19:25
OlegON
 
Цитата:
Pyatak 19) Раздаем гранты, как написано тут, но мне не хватило еще вот этого:
GRANT SELECT ON "SYS"."V_$INSTANCE" TO "SUPERMAG";
А что без этого не работало? И, кстати, рекомпилировать сумел?
Часовой пояс GMT +3, время: 10:09.

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