The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Установка Oracle Applications 11i (e-Business Suite 11.5.10 + CU2) на Linux (oracle linux install)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: oracle, linux, install,  (найти похожие документы)
From: Олег Иванов <oivanov@fors.com.> Newsgroups: email Date: Mon, 27 Aug 2005 18:21:07 +0000 (UTC) Subject: Установка Oracle Applications 11i (e-Business Suite 11.5.10 + CU2) на Linux Рассчитана на тех кто хочет посмотреть на Oracle Applications 11i - один из самых больших программных продуктов. Дистрибутив занимает около 30Гб. В инсталлированном виде около 66Гб. Для работы одному пользователю достаточно памяти 1Гб. Ставить можно на сертифицированные дистрибутивы Linux (чтобы в поддержку обращаться), можно и на Mandriva (для себя - потестировать). Важен набор библиотек, нужный продуктам Oracle. 1. установить параметры ядра /etc/sysctl.conf по разделяемой памяти для SGA: kernel.sem = 250 32000 100 150 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.shmall = 3279547 kernel.msgmni = 2878 kernel.msgmnb = 65536 fs.file-max = 327679 (основной, файлов открывается много) net.ipv4.ip_local_port_range = 1024 65536 (опционально, только если к серверу подсоединится больше 30К сокетов) опционально: kernel.domainname=домен.com (если в hosts стоит первым неполное имя, поможет обойти ошибку) fs.aio-max-nr=1048576 (необязательно, обычно используется до 20000) поставить (/etc/fstab) атрибут для файловой системы ext3 noatime - ускоряет работу после внесения изменений перегрузиться 2. в /etc/hosts первым должно идти полное имя 127.0.0.1 localhost.localdomain localhost ip_address hostname.domain_name hostname 3. в /tmp 1Гб для 11i, для остальных продуктов поменьше 4. разделяемые библиотеки которые должны быть в системе ставятся пакетами (можно взять с дистрибутива RHEL4 или скачать с rpmfind.net): compat-db-4.1.25-9 (нужна библиотека libdb.so.2 используется в httpd проверить какому пакету принадлежит файл можно rpm -qf fname) compat-gcc-32-3.2.3-47.3 (gcc версии 3.2, но можно и 3.4) compat-gcc-32-c++-3.2.3-47.3 (версия 3.2 для некоторых совсем древних библиотек Applications) compat-libgcc-296-2.96-132.7.2 compat-libstdc++-296-132.7.2 (нужны для JRE 1.3.1 libstdc++-libc6.1-1.so.2) compat-libstdc++-33-3.2.3-47.3 gcc-3.4.3-9.EL4 (при инсталляции компилируются библиотеки, т.е. требуются gcc, g++, ld, make) gcc-c++-3.4.3-9.EL4 libaio-0.3.102-1 (для aio, можно в исходниках http://oss.oracle.com/projects/libaio-oracle/dist/files/libaio-oracle-0.3.0.tar.gz) libaio-devel-0.3.102-1 (для aio) openmotif21-2.1.30-11.RHEL4.2 (для генерации отчетов нужна библиотека libXm.so.2.1) xorg-x11-deprecated-libs-6.8.1-23.EL xorg-x11-deprecated-libs-devel-6.8.1-23.EL -libgdbm2-1.8.0-25mdk (нужна если ставить на Mandriva и нет библиотеки libgdbm.so.2 и libgdbm.so.3 они используются в модулях httpd - он в Applications старенький) -make-3.80 (в предыдущих баг, хотя он не проявляется) -gnome-libs-1.4.1.2.90-44 -gnome-libs-devel-1.4.1.2.90-44 -pdksh (в Apps не нужно, нужен если ставится OID) -setarch-1.7.1 (нужна только если пользоваться опцией большой памяти в hugemem kernel) для себя можно поставить полезные пакеты: arpwatch, bittorrent, kernel-source, lsb, mc, mkcd, mkisofs, tcpdump, syslinux sysstat (если нет в поставке скачать http://perso.wanadoo.fr/sebastien.godard/ , там удобные утилиты iostat vmstat sar) после установки пакетов запустить ldconfig - она создаст линки которые бывает не создаются. 5. Установить патчи, скачав их с http://oss.oracle.com/projects/compat-oracle/files/RedHat/ compat-oracle-rhel4-1.0-3 - создает линки gcc и g++ на скрипт compat-libcwait-2.0-1 - создает библиотеку и вставляет путь к ней в /etc/so.preload патчи рассчитаны на идеальный случай конкретного дистрибутива или сделать это вручную (исходники библиотек есть в этих патчах): Oracle использует при компиляции и линковку устаревшие ключи и компиляторы, поэтому приходится пользоваться старенькими версиями и создать линки на gcc и g++ которые будут игнорировать устаревшие параметры, потому что уж совсем старинные компиляторы сейчас не поставляются. Поддерживается версия g++ 3.2, версия 3.4 уже не сможет работать с библиотеками Applications ---/usr/bin/gcc296---3926015----- #!/bin/sh exec /usr/bin/gcc-3.4.3 -static-libgcc -B/usr/lib/gcc-lib/i386-redhat-linux/2.96/ "$@" ---/usr/bin/g++296-------- #!/bin/sh exec /usr/bin/g++32 -static-libgcc -B/usr/lib/gcc-lib/i386-redhat-linux/2.96/ "$@" если это не симлинки mv /usr/bin/gcc /usr/bin/gcc-3.4.3 если это не симлинки mv /usr/bin/g++ /usr/bin/g++32 ln -s /usr/bin/gcc296 /usr/bin/gcc ln -s /usr/bin/g++296 /usr/bin/g++ потому что в 9i Oracleвские разработчики явно написали в одном из файлов /usr/bin/gcc вместо gcc. По большому счету все это шаманство из-за нежелания программистов убирать ошибки и обновлять древний код. Oracle использовал функцию, которая устарела из-за изменений в нитях в glibc. Приходится оформлять ее в виде отдельной библиотеки: -----libcwait.so----- #include <errno.h> #include <sys/syscall.h> #include <sys/types.h> #include <sys/wait.h> pid_t __libc_wait (int *status) { int res; asm volatile ("pushl %%ebx\n\t" "movl %2, %%ebx\n\t" "movl %1, %%eax\n\t" "int $0x80\n\t" "popl %%ebx" : "=a" (res) : "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0), "S" (0)); return res; } ----------------- gcc -O2 -shared -fpic -xc libcwait.c -o /usr/lib/libcwait.so Для оракловского агента создается заглушка выдающая переменные ----libctype.so--------------- #include <stdlib.h> #include <ctype.h> unsigned short int * __ctype_b; unsigned short int * __ctype_tolower; unsigned short int * __ctype_toupper; void __attribute__((constructor)) my_init() { __ctype_b = * __ctype_b_loc(); __ctype_tolower = * __ctype_tolower_loc(); __ctype_toupper = * __ctype_toupper_loc(); } void __attribute__((destructor)) my_clean() {} ----------------- gcc -O2 -shared -fpic -xc libctype.c -o /usr/lib/libctype.so Oracle использует устаревшую функцию (в /usr/lib/libc_nonshared.a фнукция stat объявлена как hidden symbol) вместо новой xstat в libclntsh.so. Она будет использоваться если пр компиляции добавить флаг -O3 но проще создать заглушку ----libstat.so------------ #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char * file, struct stat * buf) {return __xstat(3,file,buf);} ----------------- gcc -O2 -shared -fpic -xc libstat.c -o /usr/lib/libstat.so 6. Создать пользователя для ПО Oracle. Под root не ставится. Есть владелец ПО и две группы члены которых могут входить в базу с консоли без пароля. Обычно создают одну группу, так как с консоли сейчас простые пользователи не входят. groupadd -g 500 dba useradd oracle -u 500 &#8211;g dba &#8211;G root -s /bin/bash 7. вставить переменные окружения в профиль oпользователя oracle export LD_PRELOAD=/usr/lib/libcwait.so:/usr/lib/libstat.so:/usr/lib/libctype.so export LD_ASSUME_KERNEL=2.4.19 Oracle местами использует устаревшие Sun JDK (1.1.8 и 1.3.1) версии до 1.4.1, они несовместимы с новой реализацией нитей Native POSIX Thread Library (NPTL) в /lib/tls. Библиотека обеспечивает бинарную совместимость с предыдущей реализацией LinuxThreads. Если приложение не может нормально работать с NPTL, его можно запустить с использованием старой реализации LinuxThreads, установив следующую системную переменную: LD_ASSUME_KERNEL=<версия ядра> Допустимы следующие значения версии ядра: Текущая, можно посмотреть командой eu-readelf -n /lib/tls/libc-2.3.4.so, например 2.4.25 2.4.1 - Linuxthreads с плавающими стеками (floating stacks) 2.2.5 - Linuxthreads без плавающих стеков Можно вместо профиля также напрямую выловить все файлы вида jre/1.1.8/bin/.java_wrapper jre/1.3.1/bin/.java_wrapper и вставить в них export LD_ASSUME_KERNEL="2.4.19" сакральный смысл числа "19" в источниках не раскрывается, скорее смысла нет, можно и "1" ставить 8. В /etc/profile добавить a) PATH=$PATH:/sbin:/usr/sbin там лежит fusers, она нужна утилите opatch b) umask 022 чтобы создаваемые файлы могли читаться группой проверить командой umask -S выдаст u=rwx,g=rx,o=rx c) если не установлена переменная DISPLAY установить хоть что-то export DISPLAY=ip:0.0 переменная должна быть установлена хоть на что-то иначе не запустится Apache из-за JServа (обойти можно правкой конфигурации) d) If a connection attempt fails, re-set the DNS parameters in the /etc/resolv.conf file on each server node to the following values: options attempts:5 options timeout:15 поставить в /etc/profile ulimit -l 1000000 -s unlimited -u 1000000 -c 0 ulimit -n 1000000 (должно быть число) снимает ограничения для программ запускаемых из шеллов иначе при распаковке больших архивов или работе процессы сбойнут. Если стоит pam... то в файл /etc/security/limits.conf добавить: oracle soft nofile 1000000 oracle hard nofile 1000000 oracle soft nproc 1000000 oracle hard nproc 1000000 oracle soft memlock 8000000 #больше чем памяти oracle hard memlock 8000000 #больше чем памяти oracle soft stack 8000000 #должно быть больше чем памяти oracle hard stack 8000000 #должно быть больше чем памяти g) в графическом режиме проверить echo $LANG, должно выдать en_US если в конце UTF8 то 2 файла из /etc/profile.d/ переименовать, а переменную задать например в /etc/profile иначе будут глюки вроде невозможности сохранить perferred credentals в OEM 10. Так как в Linux есть тяжкое наследие unixoв то удаленной консоли в нем нет (удаленно подсоединиться к консоли сервера :0). Можно установить x11vnc-0.7.2-1.2.el4.rf.i386.rpm и отключить автозапуск графики. На клиентский компьютер установить например vnc-4_1_1-x86_win32.zip зайдя по ssh на сервер запустить "startx &" установить DISPLAY и дать команду "x11vnc -display :0 &". Чтобы буквы выглядели достойно нужно отключить в настроках фонтов смазывание. Эту технологию смазывания вставляют по умолчанию во все дистрибутивы. 11. дистрибутив Applications можно скачать с http://edelivery.oracle.com/ . Вместо StartCD дучше скачать последнюю версию http://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=4159029 (или там же по ссылке самую свежую версию) 221Мб и запустить rapidwiz (в файле doc/r11510ins.pdf есть инструкция по установке). webmin занимает 10000 порт и у Applications один из процессов по умолчанию приписан к нему, поэтому при установке просто указать в списке портов другой порт или выбрать сдвиг портов. Ставить всё под одним и тем же пользователем oracle группа dba и в одну и ту же директорию (ORACLE_BASE) /home/oracle Желательно до установки скопировать дистрибутив на отдельный жесткий диск, так как файлов тысячи с DVD ставится очень долго - головка привода скачет. Если места или диска нет, все равно скопировать те DVD, в которых тысячи файлов: oraiAS, oraApps, oraNLS. Структура каталогов: /Stage11i/StartCD/Disk1 (можно убрать директории с JRE от других операционок. Для Linux две версии JRE - обе к сожалению нужны) oraDB/Disk1-3 oraAppDB/Disk1,18-24 для PROD (из Disk1 можно убрать содержимое директории stage); для Vision наоборот Disk1-Disk17 oraiAS/Disk1-4 oraApps/Disk1-8 oraNLS/RU/Disk1 (требуется если в rapidwiz выбрать поддержку русского языка) всё это добро занимает 26-31Гб. 12. постинсталляционные действия 277295.1 п4.1 a) запустить ". APPSORA.env" (методы запуска скриптов в Linux периодически меняются - это маленькое развлечение программистов сообщества) и adadmin выбрать Maintain Applications Database Entities submenu. Then, run the Maintain Multi-lingual Tables task. иначе при заходе с русской страницы содержимое будет пустым b) apply dg11510nls.drv for each additional language. This driver is located in the $AU_TOP/admin/driver/<LANG> directory 13. Поставить авторасширение на табличное пространство APPS_TS_MEDIA - туда грузится help, можно и на остальные. 14. погасить всё кроме базы и листенера и можно будет устанавливать обновления. Чтобы база быстрее работала при обновлении можно опционально: a) на время установки CU2 можно добавить две группы журналов по 500Мб, старые удалить. Желательно добавить на новом диске, чтобы быстрее CU2 ставился. b) если база 9.2.0.5 то установить патч 3523919. Достаточно просто скопировать vppdc.o в архив libvppdc.a и запустить скрипт из патча. Это позволит работать performance manager напрямую с базой. c) пока экземпляр остановлен в initPROD.ora оставить в control_files путь только к одному файлу, остальные файлы удалить (они бесполезны). После открытия экземпляра дать команду alter database backup controlfile to trace и из директории на которую указывает параметр user_dump_dest скопировать скрипт пересоздания controlfile на случай потери. d) включить для базы aio 225751.1 (начиная с 10g включено по умолчанию). make -f ins_rdbms.mk async_on В initPROD.ora добавить filesystemio_options =asynch (заметка хотя он и не нужен - To enable direct I/O support: Set filesystemio_options = directio or setall For Oracle9i you need to download Abstract: DIRECT IO SUPPORT OVER NFS) e) создать в $OH/dbs файл orapwPROD командой orapwd file=orapwPROD password=oracle и установить remote_login_passwordfile=EXCLUSIVE, чтобы можно было управлять базой с рабочего десктопа Windows (sqlplus в Linux убог). Еще потребуется в sqlnet.ora убрать или отредактировать ограничение на подсоединение к базе (tcp.validnode_cheсking), вставить пароль на листенер passwords_PROD (чтобы его удаленно не гасили) и поменять пароли пользователям базы (например SYSTEMу). Если важна безопасность можно этого не делать. потом открыв инстанс поменять пароль SYS чтобы синхронизировать с файлом паролей: sqlplus '/ as sysdba' alter user sys identified by oracle; f) на время установки CU2 - чтобы побыстрее ставился установить параметры в 9.2.0/dbs/initPROD.ora shared_pool_size=310000000 #CU2 использует 307Мб shared_pool_reserved_size=48000000 #CU2 использует 45Мб undo_retention=240 #в кэше буферов не нужна куча блоков от этих сегментов fast_start_mttr_target=300 pre_page_sga=true g) db_cache_size=1550M # по умолчанию в сумме SGA д.быть не больше 1.8Гб больше нужно только на время установки патчей для быстроты. Если памяти на компьютере больше 2Гб имеет смысл изменить mapped base (по умолчанию 0x50000000, меняется на 0x15000000). Для этого установить для 9.2.0.5 патч 3566570 на чисто остановленной базе, дальше cd $ORACLE_HOME/rdbms/lib genksms -s 0x15000000 >ksms.s make -f ins_rdbms.mk ksms.o make -f ins_rdbms.mk ioracle кэш буферов тогда можно будет сделать 2150M (в сумме SGA уже не больше 2,7Gb на простом ядре и 3,7Gb на hugemem) если при запуске идут ошибки, то может остаться сегмент и тогда его нужно будет удалить из памяти: ipcs - список сегментов, удалять ipcrm -s <shmid> h) db_file_multiblock_read_count=128 # не должны превышать параметры ядра KIO_MAX_ATOMIC_IO из /usr/src/linux/include/linux/iobuf.h (обычно стоит 1Мб) 15. 237425.1 если oemapp console выдает ошибку java.lang.NullPointerException at oracle.ewt.lwAWT.BufferedApplet.<init>(Unknown Source) проблема с DISPLAY или был дан su (мешается pam - его суют во все дистрибутивы c гиморными настройками, можно поставить в /etc/pam.d/xserver auth sufficient pam_rootok.so account required pam_permit.so auth sufficient pam_permit.so). пример скрипта для запуска базы данных export PATH="${ORACLE_HOME}/bin:${PATH}" su oracle -c $ORACLE_HOME/bin/sqlplus /nolog <<EOF connect /as sysdba startup EOF su oracle -c "$ORACLE_HOME/bin/lsnrctl start" 16. запуск applications: можно создать скрипты в домашнем каталоге oracle и вызывать их ". db" или ". app" или "./stopall". Пример: app #!/bin/bash unset PATH export PATH=/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/sbin:/sbin . /home/oracle/prodappl/APPSORA.env db #!/bin/bash unset PATH export PATH=/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/sbin:/sbin . /home/oracle/proddb/9.2.0/PROD_prod.env startall /home/oracle/proddb/9.2.0/appsutil/scripts/PROD_prod/adlnctl.sh start PROD /home/oracle/proddb/9.2.0/appsutil/scripts/PROD_prod/addbctl.sh start /home/oracle/prodcomn/admin/scripts/PROD_prod/adstrtall.sh apps/apps stopall /home/oracle/prodcomn/admin/scripts/PROD_prod/adstopall.sh apps/apps /home/oracle/proddb/9.2.0/appsutil/scripts/PROD_prod/addbctl.sh stop immediate /home/oracle/proddb/9.2.0/appsutil/scripts/PROD_prod/adlnctl.sh stop PROD 17. установка обновлений системы кумулятивный апдейт "CU" (CU2 для 11.5.10 316366.1) обновляет с указанной версии. Сначала запустить только базу с листенером и установить переменные окружения . /home/oracle/prodappl/APPSORA.env запустить adadmin.sh, зайти в изменение режима и установить mainteinance mode установить программой adpatch (запустить из директории патча и на последний вопрос об имени файла указать u4337683.drv) AD Minipack I.2 4337683 (233044.1 пункт 5) и его русскую версию как написано в readme.txt к этому патчу. Из патча 4297568 взять файл libcplex8.a и положить к остальным (они уже есть) Установить Release 11.5.10.2 Technology Validation Utility 4318672 12Мб и его русскую версию 23К. Установить 3460000 (20 часов большая часть работа с диском на файлах пространства SYSTEM при компиляции пакетов - поэтому кэш буферов желательно побольше) и его русскую версию (15 часов на P2.4ГГц - компиляция форм). Если при установке возникает баг 4548737: В таблицу ENG.ENG_CHANGE_ORDER_TYPES_TL вставляются скриптом engupscr.sql (строка 310) 3 строки с пустым полем. Решение: update ENG.ENG_CHANGE_ORDER_TYPES set change_order_type = 'Item Attribute Changes' where change_order_type_id = 12 and change_order_type is null and type_classification = 'REVISED_LINE'; update ENG.ENG_CHANGE_ORDER_TYPES set change_order_type = 'Item AML Changes' where change_order_type_id = 13 and change_order_type is null and type_classification = 'REVISED_LINE'; update ENG.ENG_CHANGE_ORDER_TYPES set change_order_type = 'Item Attachment Changes' where change_order_type_id = 14 and change_order_type is null and type_classification = 'REVISED_LINE'; или убрать NOT NULL до установки патча, а потом руками вставить значения для CHANGE_ORDER_TYPES_ID=12,13,14. Значения брать в той же таблице из таких же строк только для языка US, пустые строки для языка RU. Если не успеть убрать NOT NULL и пишется что worker failed, то в соседнем окне запустить adctrl и во 2 пункте fix status. После этого worker повторит сбойнувшее задание. Дальше компилируются отчеты и если возникает проблема с "FABAL.pll и FARSV.pll", то установить openmotif21 и продолжить. Если закрыть окно, то часто продолжить установку патча не удастся - воркеров клинит и снять их не удастся, тогда можно начать установку патча заново. 18. зайти в http://localhost:8000/servlets/weboam/oam/oamLogin как SYSADMIN/SYSADMIN a) Site Map -> b) License Manager -> c) Products -> d) Show more options e) выбрать License Applications Product и нажать Continue -> f) нажать Выбрать всё, Next -> Submit -> OK 19. установить Online Help - патч 3275245 (17 часов) в том числе русскую версию (10 часов) при этом с Applications можно работать. После установки всех патчей запустить adadmin.sh, зайти в изменение режима и убрать mainteinance mode

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Аноним (1), 09:23, 29/08/2005 [ответить]  
  • +/
    Объясните пожалуйста:
    > kernel.sem = 250 32000 100 150
    > kernel.shmmax = 4294967295
    > kernel.shmmni = 4096
    > kernel.shmall = 3279547
    > kernel.msgmni = 2878
    > kernel.msgmnb = 65536

    На какое количество оперативной памяти эти параметры,
    и какая планируемая загрузка сервера по количеству  клиентов для таких значений семафоров?

     
  • 2, Oleg (??), 14:37, 29/08/2005 [ответить]  
  • +/
    цель:
    1) фактическая: снять ограничения - параметры ставятся по максимуму для официально поддерживаемых дистрибутивов
    2) формальная: значения рекомендованы Oracle
    глубокого смысла нет
     
  • 3, sash (??), 15:11, 07/10/2005 [ответить]  
  • +/
    Отличная статья, спасибо автору.
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру