21 апр. 2012 г.

Ускорение "1С:Предприятие for Oracle" за счет сжатия таблиц

Кроме выступления Вадима Гусева на мероприятии "Модернизация системы управления бизнесом с помощью ERP-решений 1С с помощью инновационной технологической платформы Oracle" Андрей Забелин демонстрировал возможности OLTP-сжатия для увеличения производительности одного из бухгалтерских отчётов приложения "1С:Предприятие 8.2".



Ролик можно посмотреть здесь.

Как это ни странно на первый взгляд: при сжатии не только уменьшается объем данных на диске, но и возрастает скорость выполнения запроса !

Это происходит за счет уменьшения ввода-вывода (СУБД меньше читает и пишет на диск), а это самая ресурсоёмкая операция. И это происходит не на каком-то искусственном тесте, а в реальном приложении !



Программное окружение было аналогичным как в демонстрации Вадима.

Сервер приложений "1C:Предприятие" также работал под управлением ОС Oracle Linux x64 5U6.



Основная идея демонстрации – показать:

  • Возможности Enterprise Manager для быстрого обнаружения ресурсоёмкого SQL-запроса, который являлся причиной долгого выполнения одного из бухгалтерских отчётов приложения "1С:Предприятие 8.2";

  • Быстрота и удобство анализа плана SQL-запроса;

  • Удобство навигации от плана запроса к редактированию свойств таблицы;

  • Эффективность сжатия данных с помощью Advanced Compression, которое позволяет не только уменьшить объём данных на диске, но и значительно ускорить выполнение запроса за счёт уменьшения количества обрабатываемых блоков.



Поскольку Андрей (как и все мы впрочем) не является специалистом в бухгалтерском учёте, выбранный отчёт «Анализ субконто» и параметры этого отчёта могут показаться опытному бухгалтеру некорректными, но цель была одна - нагрузить БД таким образом, чтобы набор обрабатываемых данных был наибОльшим в тестовой БД.



К сожалению, в текущей версии "1С:Предприятие" не поддерживается настройка сжатия данных таблицы через интерфейс самой 1С, что приводит к возможной потери этой настройки при обновлении конфигурации 1С, но это уже совсем другая история ... Следите за следующими публикациями !



Приятного просмотра!

Cсылка: видео.

15 апр. 2012 г.

Updates for Oracle Linux now free!

Пришла хорошая новость по поводу поддержки Oracle Linux. Теперь скачивание обновлений для этой ОС стало бесплатным !
Раньше для этого нужно было приобретать подписку на ULN (Unbreakable Linux Network).
Для настройки обновлений воспользуйтесь инструкцией на сайте http://public-yum.oracle.com. Затем выполните команду yum update
Рис. 1 Установка обновлений на Oracle Linux


Но ведь RedHat берет за обновление деньги ... :-)

10 апр. 2012 г.

Присоединяйтесь к JavaOne & Oracle Develop 2012

To ensure delivery directly to your inbox, please add replies@oracle-mail.com to your address book today.

JavaOne and Oracle Develop 2012 Russia. 17-18 April. Russian Academy of Sciences, Moscow

Присоединяйтесь к JavaOne & Oracle Develop 2012 сегодня!

Программа JavaOne сессий уже доступна!

В этом году мы снова приглашаем Вас на JavaOne & Oracle Develop, которые опять расположатся в Российской Академии Наук. Oracle предлагает сообществу разработчиков 2 уникальных дня обучения и общения.

Не упустите возможность приобрести билет по цене 1200 рублей.

В этом году мы снова приглашаем Вас на JavaOne & Oracle Develop, которые опять расположатся в Российской Академии Наук. Oracle предлагает сообществу разработчиков 2 уникальных дня обучения и общения.


Конференция JavaOne состоит из четырех потоков Базовая платформа Java, Клиентские технологии, Java Enterprise Edition, Web-сервисы и Облачные Вычисления и Java Micro Edition, Мобильные и Встраиваемые Платформы, Java-карты. А также мастер-классов и Хак-зоны.


В треке Базовая платформа Java четыре доклада представляют инженеры по производительности компании Oracle - Алексей Шипилёв и Сергей Куксенко, которые поделятся накопленным опытом с участниками конференции. Сергей Куксенко об одном из своих докладов: Многоядерные машины стали частью сурового быта: десятком, а то и сотней логических процессоров уже мало кого удивишь. Однако мы до сих пор учимся писать быстрые и корректные программы для этих почти ручных монстриков. Этот доклад посвящён разбору типичных проблем с производительностью параллельных программ, работающих на машинах с разделяемой памятью; описанию их симптомов, а также обсуждению типичных подходов к диагностике и решению проблем


Дуглас Кларк - директор компании Oracle расскажет о настоящем и будущем персистентности в Java и готовности Java к переходу к облачным приложениям.


Направление клиентских приложений будет представлено инженерами Санкт-Петербургского центра разработок Oracle непосредственно участвующих в создании технологии JavaFX. Вы узнаете о новом языке FXML, о тонкостях создания быстрых приложений на JavaFX, увидите интеграцию JavaFX приложения с игровой приставкой, получите возможность принять участие в конкурсе и выиграть ценные призы.


Java занимает все более твердые позиции во встроенных системах. Уже сегодня вы можете прикоснуться к мобильным технологиям, которые завтра будут поддерживаться миллионами устройств по всему миру.


Не пропустите доклады от экспертов признанных сообществом Java разработчиков. Впервые в Москве выступит Бёрт Эртман – обладатель звания Java Champion и являющийся идейным вдохновителем Java User Group в Нидерландах. Берт расскажет о том нужно ли, и если да, то как перейти от Spring к JavaEE 6. Антон Архипов – один из основателей devclub.eu поделится опытом продуктивной разработки JavaEE приложений.

Больше информации на JavaOne and Oracle Develop 2012.

Региcтрация на сайте

Дополнительная информация


адрес: oracle@javaone2012.ru,


телефон: 8 (499) 391-25-72

Hardware and Software, Engineered to Work Together
Oracle Corporation

Copyright © 2012, Oracle
and/or its affiliates.

All rights reserved.

Contact Us | Legal Notices and Terms of Use | Privacy Statement


1 апр. 2012 г.

Особенности работы с сервисами в серверных пулах

Начиная с версии Oracle Database 11.2 появилась новая концепция – серверные пулы (server pools). Работа с сервисами в серверном пуле имеет свои особенности, которые нужно учитывать.
Итак, серверный пул представляет собой группу серверов в кластере, объединенных в некоторое логическое понятие (пул). В кластере могут быть определены несколько серверных пулов. При создании пула указывается набор серверов, минимальное количество серверов в пуле, максимальное количество серверов в пуле и важность (приоритет) пула. Альтернативно, при создании пула можно указать перечень входящих в него узлов.






[oracle@rac2 ~]$ srvctl add srvpool -h

Adds a server pool to the Oracle Clusterware.

Usage: srvctl add srvpool -g  [-l ] [-u ] [-i ] [-n ""] [-f]
    -g      Server pool name
    -l      Minimum size of the server pool (Default value is 0)
    -u      Maximum size of the server pool (Default value is -1 for unlimited maximum size)
    -i      Importance of the server pool (Default value is 0)
    -n ""   Comma separated list of candidate server names
    -f      Force the operation even though some resource(s) will be stopped
    -h      Print usage


При необходимости в серверный пул можно добавлять серверы или же, наоборот, удалять серверы из пула. При создании БД с помощью Database Configuration Assistant [DBCA] определяется тип конфигурации этой БД:
  • Admin-Management (экземпляры создаваемой БД будут жестко привязаны к узлам заданным при создании БД);
  • Policy-Management (экземпляры создаваемой БД НЕ будут привязаны к конкретным узлам кластера, а будут выполняются на любом из серверов пула).

Рис. 1 Создание БД в серверном пуле

Идея серверных пулов состоит в отсутствии привязки ресурсов предоставляемых пользователю в кластере (приложения и базы данных) от конкретных физических серверов. Теперь при создании БД, в ней можно указывать не конкретные серверы, как это было раньше до версии 11.2, а серверный пул. При этом, в случае отсутствия серверного пула, можно сразу же его создать в DBCA. Также при этом задается количество экземпляров БД в пуле (cardinality). Если посмотреть экземпляры БД созданной в серверном пуле, можно увидеть ннтересную картину:
[oracle@rac2 ~]$ srvctl status database -d racdb
Instance racdb_1 is running on node rac2
Instance racdb_2 is running on node rac3
Instance racdb_3 is running on node rac4
Хорошо видно, что любой экземпляр может быть запущен на любом из узлов входящем в пул, и жестко не привязан к определенному узлу, как это было до версии 11.2. Как видите, теперь в локальном каталоге ORACLE_HOME узла не хранится информация об экземпляре. Информация о пулах и о конфигурац2ии БД теперь централизованно храниться в OCR. Управление серверными пулами и ресурсами в нем осуществляется Clusterware. Попробуем добавить сервер в пул, увеличив максимальное число узлов в пуле до 4-х (эксперимент проводился на 4-х узловом кластере):
[oracle@rac2 ~]$ srvctl modify serverpool -g main -u 4 -f
[oracle@rac2 ~]$ srvctl status database -d racdb
Instance racdb_4 is running on node rac1
Instance racdb_1 is running on node rac2
Instance racdb_2 is running on node rac3
Instance racdb_3 is running on node rac4
Автоматически на новом сервере был запущен новый экземпляр, при этом для него “на лету” были созданы undo-табличное пространство и redo-поток ! Понятно, что при использовании пулов для доступа к БД мы обязаны использовать Single Access Client Name [SCAN], поскольку заранее не знаем: на каких конкретно узлах будет выполняться тот или иной экземпляр БД. Данная технология в сочетании c делегированием DNS в домен кластера (Grid Naming Service) называется Grid Plug In Play [GPnP], и позволяет изменять состав серверного пула без необходимости изменения клиентских (файл tnsnames.ora) и сетевых (DNS-сервер) настроек.

Поскольку теперь экземпляры не привязаны к конкретному узлу и могут работать на любом сервере, входящем в пул, при создании сервиса мы не можем указать списки предпочтительных и резервных узлов.

Для решения этой проблемы вводится понятие "тип сервиса", который может иметь два значения:
  • Uniform
  • Singleton
Сервисы типа iniform одновременно могут выполняться на всех узлах серверного пула, типа singleton – в каждый момент времени выполняются только на одном экземпляре внутри пула. При создании сервиса с помощью утилиты srvctl, его тип задается с помощью ключа “–c” который может иметь значения UNIFORM для сервиса одновременно работающих на всех узлах пула :
[oracle@rac2 ~]$ srvctl add service -d racdb -s dss -c uniform
[oracle@rac2 ~]$ srvctl start service -d racdb -s dss
[oracle@rac2 ~]$ srvctl status service -d racdb -s dss
Service dss is running on nodes: rac1,rac2,rac3,rac4
Очевидно, что тип сервиса можно указывать только для Policy-Management БД. Если нужно гарантировать, чтобы сервис всегда работал только одном узле, то в значении ключа указывается SINGLETON:
[oracle@rac2 ~]$ srvctl add service -d racdb -s oltp -c singleton
[oracle@rac2 ~]$ srvctl start service -d racdb -s oltp
[oracle@rac2 ~]$ srvctl status service -d racdb -s oltp
Service oltp is running on nodes: rac1
В случае, если необходимо принудительно переместить сервис с одного узла на другой, точно также применяется команда relocate service утилиты srvctl, только вместо экземпляров указывается имена серверов (hostname):
[oracle@rac2 ~]$ srvctl relocate service -s oltp -d racdb -c rac1 -n rac2 -f
[oracle@rac2 ~]$ srvctl status service -d racdb -s oltp
Service oltp is running on nodes: rac2

Где:
- параметр –c определяет сервер, на котором нужно остановить сервис;
- параметр –t определяет сервер, на котором нужно запустить сервис.
- опциональный параметр –f определяет необходимость принудительно завершить все текущие сессии на узле заданном параметром -c, в случае его отсутствия все активные сессии продолжают свою работу, а новые будут создаваться только на узле заданном параметром –n.