Сообщение отдельно
11.04.2010 23:35
И так, переход состоялся. Пока полет нормальный, глюков еще не выявлено.
Начало было такое же, как при переходе с 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
Одноко, пока все работает. Если кто знает что с этим делать. Поделитесь опытом.