четверг, 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()