среда, 17 августа 2011 г.

Полезные команды Unix-ов (для консультантов/разработчиков)


RHEL/OEL Solaris AIX HP-UX
 Версия операционной системы cat /etc/*-release uname -r oslevel -r uname -r
 Архитектура процессора arch arch uname -p uname -m
 Количество процессоров cat /proc/cpuinfo psrinfo -pv lsdev -C -c processor ioscan -kf | grep processor | wc -l
 Свободное место на файловых системах df -h df -h df -k
(в килобайтах)
bdf
(в килобайтах)
 Размер swap free -m swap -s lsps -a swapinfo
 Размер оперативной памяти free -m prtconf | grep Memory bootinfo -r machinfo | grep Memory
 Список работающий в системе процессов top prstat -a topas top
 Получение списка сетевых интерфейсов ifconfig -a ifconfig -a ifconfig -a netstat -in
 Добавление пользователя useradd useradd mkuser useradd
 Удаление пользователя userdel userdel rmuser userdel
 Добавление группы groupadd groupadd mkgroup groupadd
 Удаление группы groupdel groupdel rmgroup groupdel

Полезные команды:
  • Архивирование
    • Распаковать tar.gz:
      $ gzip -dc archive_name.tar.gz | tar xf -  
      
    • Создать tar.gz из директории:
      $ tar cvf - directory | gzip > file.tar.gz
    • Создать tar:
      $ tar cvf archive_name.tar directory
    • Создать tar с сжатием bzip и разбить на тома (4000m в данном примере):
      $ tar -cvj directory/ | split -b 4000m -d - "directory.tar.bz."
    • Распаковать tar:
      $ tar xvf archive_name.tar
    • Создать zip:
      $ zip -r archive_name.zip directory
    • Распаковать zip:
      $ unzip archive_name.zip
    • Распаковать все zip в текущей директории:
      $ unzip \*.zip
  • Поиск файлов
    • С расширением log в текущей директории и поддиректориях:
       $ find . -name "*.log" | more
      
    • По содержимому текстовых файлов в текущей директории и поддиректориях:
       $ find . -type f |while read i;do cat "$i"|grep -H --label="$i" -n "строка поиска"; done
      
    • По содержимому текстовых файлов в текущей директории и поддиректориях с выводом содержимого в консоль:
       $ find . -name '*.biz' -exec cat {} \; 
    • Файлы принадлежащих пользователю oracle в текущей директории и поддиректориях:
       $ find . -user oracle | more  
      
    • Измененных один день назад в текущей директории и поддиректориях:
       $ find . -mtime 1 | more
      
    • Удалить файлы изменённые более, чем 150 дней назад:
       $ find -type f -mtime +150 -exec rm '{}' \;
      
    • Файлы размер которых больше 1ГБ в текущей директории и поддиректориях:
       $ find . -size +1048576k | more   
      
    • Файлы размер которых больше 100МБ, но меньше 200МБ в текущей директории и поддиректориях:
       $ find . -size +102400k -size -204800k | more   
      
  • Процессы операционной системы
    • Вывести список процессов запущенных/использующих в директорию /u01:
       $ ps -ef | grep /u01 | more  
      
  • Копирование с одного сервера на другой использованием scp
    • С локального сервера на удалённый:
       $ scp localFile.zip remoteUser@ip-address:/remoteDir  
      
    • С удаленного сервера на локальный:
       $ scp remoteUser@ip-address:/pathToFile localDirectory  
      
  • Изменение EOL во всех файлах в директории и поддиректориях
    • С Unix-формата на Windows-формат :
       $ find . -type f -exec unix2dos {} {} \;  
      
    • С Windows-формата на Unix-формат:
       $ find . -type f -exec dos2unix {} {} \;  
      

вторник, 2 августа 2011 г.

Краткая концепция Oracle Fusion Applications

  Oracle Fusion Applications - это новое поколение систем масштаба предприятия от компании Oracle, основанное на технологиях Oracle Fusion Middleware 11g и функциональности Oracle e-Business Suite и поглощенных ранее компаний J.D.Edwards, PeopleSoft и Siebel.

Основные приложения и модули входящие в состав Fusion Applications 11.1.1.5:

Архитектура Oracle Fusion Applications:
Fusion Applications представляет трёхуровневую архитектуру:
  1. Oracle Database;
  2. Oracle Fusion Middleware;
  3. Приложения Oracle Fusion Applications (Oracle Fusion Applications Product Families).


Oracle Fusion Applications построены на основе технологий Oracle Fusion Middleware и являются Java Enterprise Edition / ADF-приложениями развернутыми на сервере приложений WebLogic, а в базе данных хранится вся информация.
Каждое приложение (CRM,HCM, Projects и т.п.) представляет собой:
  • одну или несколько схем в базе данных;
  • одно или несколько Java Enterprise Edition / ADF-приложений и ADF Business Service-ов;
  • один или несколько композитных SOA-процессов.

Компоненты Fusion Middleware можно разделить на два типа:
  • Компоненты FMW используемые в Fusion Applications;
  • Инфраструктурные компоненты Fusion Applications.

К инфраструктурным компонентам относятся:
  • Enterprise Scheduling Service (ESS)
    Внутренний планировщик задач в Fusion Applications.
    Выполняет аналогичные операции, как диспетчер запросов (Concurrent Manager) в Oracle e-Business Suite 11i/R12.
  • Approval Management Service (AMS)
    Сервис согласований с пользователем (human workflow) на основе технологии FMW Human Tasks.
  • Oracle Enterprise Crawl and Search Framework
    Эта функциональность обеспечивается интегрированным в инфраструктуру Oracle Fusion Applications продуктом Oracle Secure Enterprise Search (SES).

К компонентам FWM относятся:
  • Oracle WebLogic
    Сервер приложений соответствующий стандартам Java EE 5.0, который является инфраструктурным компонентов для следующих компонентов.
  • Application Developer Framework (ADF)
    Представляет собой фреймворк построенный на основе Java Server Faces (JSF), предоставляющий возможности связывания сервисов с компонентами пользовательского интерфеса на основе декларативного подхода ('Drug and drop' в среде разработки Oracle JDeveloper). Для разработки бизнес-сервисов обеспечивающих декларативный доступ к реляционным базам данных используются бизнес-компоненты Oracle ADF (ADF Business Components) соответствующие спецификации JSR-227, с помощью которых можно реализовать собственную бизнес-функциональность, бизнес-правила, разграничение доступа к данным и т.п.
  • Компоненты Oracle SOA Suite:
    • BPEL
      Представляет собой сервер выполнения бизнес-процессов на языке BPEL 1.1/2.0 и взаимодействие с расширениями Oracle, такими как адаптеры.
    • Mediator
      Сервисная шина, которая в SOA Suite 10g называлась Oracle ESB. Предоставляет все основные возможности систем ESB - динамический роутинг, трансфирмации, валидации данных и т.п.
    • Human Tasks
      Представяет собой технологию управления жизненным циклом задач пользователей основанную на ADF.
    • Business Rules
      Простой и гибкий механизм бизнес-правил интегрированный в инфраструктуру SOA.
  • WebCenter
    Комплекс продуктов для создания порталов с функциональностью Enterprise 2.0 (имеется ввиду встроеные компоненты по взаимодействию со службами обмена сообщениями, блоги, wiki, тэги, форумы, социальные сети и т.д.) на основе SCA. Технологически это набор интегрированных приложений построенных на основе Oracle WebCenter Framework, который является расширением ADF.
  • Enterprise Content Management
    Система управления контентом обеспечивающая хранение и управление жизненным циклом документов и приложений(аттачментов). Технически представляет собой интегрированные Java EE/ADF-приложения развернутые на сервере приложений, а весь контент физически хранится в базе данных.
  • Business Intelligence
    Платформа Oracle Business Intelligence предоставляет широкий спектр современных инструментов бизнес-анализа: интерактивные информационные панели, подсистему отчетности, средства исполнения нерегламентированных запросов, механизм уведомлений, элементы "мобильной аналитики" и др.
  • Data Integrator
    Основная роль данного продукта в Fusion Applications - это синхронизация данных. Oracle Data Integrator представляет собой развитое средство ETL, базирующееся на SOA-архитектуре.

Скачать Oracle Fusion Applications можно с E-Delivery:

четверг, 28 июля 2011 г.

Конвертирование образа виртуальной машины Oracle VM в VMware

Описание: конвертирования виртуальной машины с операционной системой Linux из Oracle VM (или Xen)-образа в VMware.
Сокращение: ОВМ - образ виртуальной машины, ВМ - виртуальная машина.
  1. Сделать резервную копию ОВМ (в формате Xen или Oracle VM).
  2. Запустить ОВМ.
  3. Проверить используется ли ядро ОС с поддержкой Xen.
    Для этого выполните команду:
     $ uname -r  
     2.6.18-238.9.1.0.1.el5PAE  
    
    Если в результате выполнения команды нет слова xen, то ядро без поддержки Xen. Пример варианта с ядром Xen:
     $ uname -r  
     2.6.18-238.9.1.0.1.el5xen  
    
  4. Если используется ядро с Xen, то надо переключить в загрузчике ОС на загрузку с другого ядра без Xen-а. Если используется загрузчик Grub, то надо отредактировать следующий файл:
     $ vi /boot/grub/grub.conf  
    
    В данном файле надо изменить загружаемое ядро по-умолчанию изменив значение поля default (нумерация начинается с 0). Например:
     # grub.conf generated by anaconda  
     #  
     # Note that you do not have to rerun grub after making changes to this file  
     # NOTICE: You have a /boot partition. This means that  
     #     all kernel and initrd paths are relative to /boot/, eg.  
     #     root (hd0,0)  
     #     kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00  
     #     initrd /initrd-version.img  
     #boot=/dev/sda  
     default=1  
     timeout=5  
     splashimage=(hd0,0)/grub/splash.xpm.gz  
     hiddenmenu  
     title Oracle Linux Server (2.6.18-238.9.1.0.1.el5debug)  
         root (hd0,0)  
         kernel /vmlinuz-2.6.18-238.9.1.0.1.el5debug ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
         initrd /initrd-2.6.18-238.9.1.0.1.el5debug.img  
     title Oracle Linux Server (2.6.18-238.9.1.0.1.el5PAE)  
         root (hd0,0)  
         kernel /vmlinuz-2.6.18-238.9.1.0.1.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
         initrd /initrd-2.6.18-238.9.1.0.1.el5PAE.img  
     title Oracle Linux Server (2.6.18-238.9.1.0.1.el5xen)  
         root (hd0,0)  
         kernel /xen.gz-2.6.18-238.9.1.0.1.el5  
         module /vmlinuz-2.6.18-238.9.1.0.1.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
         module /initrd-2.6.18-238.9.1.0.1.el5xen.img  
     title Oracle Linux Server (2.6.18-238.9.1.0.1.el5)  
         root (hd0,0)  
         kernel /vmlinuz-2.6.18-238.9.1.0.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet  
         initrd /initrd-2.6.18-238.9.1.0.1.el5.img  
    
  5. Выключить ВМ.
  6. Выполнить конвертирование образа(-ов) виртуального жесткого диска с помощью qemu-img (скачать можно отсюда ):
     $ qemu-img convert system.img -O vmdk system.vmdk
    
    Вместо выделенного красным подставить имя файла из которого конвертировать и имя файла в который конвертировать.
  7. Создать новую ВМ в Vmware Player (или Server, Workstation, Fusion), но при создании не создавать новый виртуальный жесткий диск (или диски, если их несколько), а выбрать - использовать существующий, где указать тип устройства - IDE (значение по-умолчанию - SCSI).
  8. Готово.

Если требуется дальнейшее конвертирование в Vmware ESX, то можно использовать Vmware Converter.

среда, 20 июля 2011 г.

Массовая отмена параллельных запросов (concurrent request) в Oracle e-Business Suite R12

Предыстория: в очереди к стандартному диспетчеру запросов было более 485тыс. одинаковых ресурсоёмких запросов. Возникла необходимость отменить их выполнение...

  1. Остановить appsTier (или как-минимум Concurrent Manager);
  2. Подключиться в базе данных пользователем apps
    1. Выполнить следующий SELECT:
       SELECT a.request_id,  
        a.oracle_process_id "SPID" ,  
        q.concurrent_queue_name ,  
        fu.user_name ,  
        fu.user_id ,  
        c.concurrent_program_id,  
        c.concurrent_program_name  
        || ': '  
        || ctl.user_concurrent_program_name concurrent_request,  
        a.description ,  
        a.ARGUMENT_TEXT ,  
        b.node_name ,  
        b.db_instance ,  
        a.logfile_name ,  
        a.logfile_node_name ,  
        a.outfile_name ,  
        a.phase_code,  
        a.status_code,  
        actual_start_date ,  
        actual_completion_date ,  
        ROUND((NVL(actual_completion_date,sysdate)  
             -actual_start_date)*1440,2) mins ,   
        ROUND((actual_completion_date   
           - requested_start_date),2) * 24 duration_in_hours  
       FROM APPLSYS.fnd_Concurrent_requests a,  
        APPLSYS.fnd_concurrent_processes b ,  
        applsys.fnd_concurrent_queues q ,  
        APPLSYS.fnd_concurrent_programs c ,  
        APPLSYS.fnd_concurrent_programs_tl ctl ,  
        apps.fnd_user fu  
       WHERE a.controlling_manager  = b.concurrent_process_id  
       AND a.concurrent_program_id  = c.concurrent_program_id  
       AND a.program_application_id = c.application_id  
       AND a.phase_code <> 'C'  
       AND b.queue_application_id = q.application_id  
       AND b.concurrent_queue_id = q.concurrent_queue_id  
       AND ctl.concurrent_program_id = c.concurrent_program_id  
       AND a.requested_by = fu.user_id  
       AND ctl.language = 'US'  
       ORDER BY a.actual_start_date DESC  
      
      По результатам выписываем user_id (по имени пользователя) и concurrent_program_id (по названию запроса) для отмены.
    2. Выполнить следующий UPDATE:
       UPDATE FND_CONCURRENT_REQUESTS c  
       SET c.phase_code = 'C', c.status_code = 'D'  
       WHERE c.phase_code in ('R','P')   
       AND c.requested_by = 1428
       AND c.concurrent_program_id = 57368
       AND TO_DATE(c.request_date) >=
           TO_DATE('19-07-2011','DD-MM-YYYY')  
      
      Пояснение: подставляем значения user_id и concurrent_program_id из предыдущего SELECT-а и дату в соответсвии с той когда были созданы параллельные запросы (вместо помеченных красным).
    3. Зафиксировать изменения (COMMIT)
  3. Запустить appsTier.

Полезная ссылка: расшифровка значений status_code и phase_code таблицы FND_CONCURRENT_REQUESTS

пятница, 1 июля 2011 г.

Старт Admin и Managed-серверов с использованием Node Manager и WLST

Допущение: Node Manager сконфигурирован. Конфигурирование Node Manager описана здесь
  1. Запускаем Node Manager:
     $  nohup $MIDDLEWARE_HOME/wlserver_10.3/server/bin/startNodeManager.sh &  
    
  2. Открыть консоль и выполнить:
     $  $MIDDLEWARE_HOME/wlserver_10.3/common/bin/wlst.sh  
    
  3. Приконнектиться к Node Manager с помощью nmConnect(). Например:
     wls:/offline> nmConnect('weblogic','welcome1','localhost','5556','soa_domain')
    
    где weblogic - имя администратора WebLogic Server;
        welcome1 - пароль администратора WebLogic Server;
        localhost - имя хоста на котором запущен NodeManager;
        5556 - порт хоста на котором запущен NodeManager;
        soa_domain - имя домена.
  4. Стартовать AdminServer с помощью nmStart(). Например:
     wls:/nm/soa_domain> nmStart('AdminServer')  
    
  5. Стартовать ManagedServer с помощью nmStart(). Например SOA Server:
     wls:/nm/soa_domain> nmStart('soa_server1')  
    
  6. Выйти из консоли.
     wls:/nm/soa_domain> exit()