| |||
И вот что из этого получилось : 1.Установил плату в PCI слот ,подключил к нему жесткий диск. 2.Включил систему и вышел на приглашение OBP . 3.Пустил probe-scsi-all. 4.Как и ожидалось OBP никакого адаптека в упор не увидел . 5.Загрузил систему с диска подключенного к встроенному контроллеру. Установил драйвер: #pkgadd -d 7000_fw_v200_sol.dd 6.перегрузил систему : #reboot -- -r 7.#format - диск присутствует . Увы этот драйвер предназначен только для Solaris 2.5/2.6 . После установки Solaris 8 от халявы пришлось отказаться . Что канешна правильна : "Не гонялся бы ты поп за дешевизной". При миграции ядра базы данных Oracle 8.0.5.2.1 в среде SUN Solaris 2.5.1 на версию Oracle 8.1.7 в среде SUN Solaris 8 возникла ситуация когда часть програмного обеспечения работала в среде 8.0.5 а часть в среде 8.1.7 .Со старой базы на новую существовали DBLINKи .И вот когда попробовали перекомпилировать формы в теле которых был PL/SQL код который делал элементарный select : select dummy into :dummy_form from dual@DBLINK80_81 Генератор форм молча выпадал в core dump - как на Unix так и на Windows . После разбора полетов и грязного приставания к саппорту ( где нас добросовестоно отшили заявив :"8.0.5 не поддерживается а на 8.0.6 и выше глюков нет .) выяснилось следующее : 1.Глюк работает только в одну сторону ! 8.1.7->8.0.5 все нормально . 2.Его нету при 8.0.6->8.1.7 и ессно не было при 8.0.5->8.0.5. 3.В случае DBLINKa 8.1.7.0.0->8.1.7.0.0 формы точно также не компилируются но при этом в любом случае если их собрать при пересозданных линках 8.1.7.2.х->8.1.7.2.х все работает ( влюбой конфигурации ). 4.Пункт 3 лечится установкой свежих патчей - ибо обусловлен багой непетчаного 8i - а именно невозможностью сделать : desc dual@DBLINK 5.Вероятно компилятору форм 6i необходима нечто еще из той же оперы что и пункт 4 . Чего ему ядро 8.0.5 не дает .После чего он не успев пискнуь выпадает в осадок.И это судя по всему не лечится .Просто на время миграции компилим через базу 8.1.7 и все . 6.При инсталляции 8.0.5 global name по умолчанию имеет префикс ".world" - а 8.1.7 нет .линки потом естественно не работают - формс реагирует аналогично . 7.Пункт 6 лечится с помощью команд : alter database rename global_name to dnname.world - если хотим добавить .world в новую базу. update GLOBAL_NAME set GLOBAL_NAME = 'dbname' - если хотим убрать приставку в старой базе. PS. линки перед этой операцией следует удалить а потом создать их по новой . 1.Создаем базу данных ( dbassist или create database .... ) 2.Переводим базу данных в режим archive log : STARTUP MOUNT ; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN ; 3.Переключаем перед началом копии "Online redo log" ALTER SYSTEM SWITCH LOGFILE; 4.Начинаем процесс : alter tablespace system begin backup; cp /ora/oradata/sys/system.dbf /backup alter tablespace system end backup ; .... итд по всем файлам данных . ALTER DATABASE BACKUP CONTROLFILE TO 'filespec'; - архивируем controlfile. alter system switch logfile ; alter system archive log [current|all] ; (вместо этих двух строк достаточто и просто archive log current) 5.Переносим на другую машину только что сархивированные данные и ВСЕ СОЗДАННЫЕ во время бекапа архивные логи . 6.Запускаем recover . startup mount recover database using backup controlfile; auto recover database using backup controlfile until cancel; cancel alter database open resetlogs ; 7.PS При необходимости изменить местоположение файлов alter database rename file '/path1/xxxxxx.dat' to '/path2/yyyyyy.dat'; а затем alter database open resetlogs ; 1.Первым делом следует нацарапать себе на лбу параметр Lazy_Dba=BAD_DBA ! 2.НЕМЕДЛЕННО сохранить все что осталось ! 3.Составить список испорченных файлов 4.Если мучения увенчаются успехом и база открылась - сделать экспорт и по возможности пересоздать базу 5.В случае порчи online redo log : - попробовать установить параметры init.ora _allow_resetlogs_corruption=true _ignore_log_corruption=yes 6.В случае порчи некоторых файлов данных : - STARTUP DATABASE MOUNT - Испорченные файлы у далить командой > ALTER DATABASE DATAFILE 'XXX' OFFLINE DROP ; (если база находится в режиме NOARCHIVELOG если же она в режиме ARCHIVELOG то хватит и просто OFFLINE) - Открыть базу > ALTER DATABASE OPEN - Если в испорченных файлах не было ROLLBACK SEGMENT и TEMPORARY то приступить к спасению данных и пересозданию TABLESPACES . - Если в испорченных файлах находились ROLLBACK и/или TEMPORARY :
- пререстартовать базу 9.Если с момента последней резервной копии был добавлен новый файл данных .
-Необходимо чтобы имелись все архивные журналы с момента создания файла .
>ALTER TABLESPACE <> OFFLINE IMMEDIATE;
или
>ALTER DATABASE DATAFILE ' ' OFFLINE IMMEDIATE;
>ALTER DATABASE CREATE DATAFILE '/...' AS '/...' ; или
>RECOVER AUTOMATIC DATAFILE '/..';
>ALTER TABLESPACE <> ONLINE;/ALTER DATABASE DATAFILE '/...' ONLINE;
5.Как узнать соответствие между номером диска ssdX/sdX и /dev/dsk/cXtYdZ
На страничке Dmitri Volkov
6.Копия системного раздела на свободный резервный диск.
9.Список событий диагностики Oracle Список утилит Oracle в каталоге $ORACLE_HOME/bin Как сделать Truncate большой таблицы |
|||
|