Feed on Posts or Comments

Oracle Database &Ликбез &Общее Андрей Пивоваров on 23 Jul 2007 04:07 pm

Про лицензирование продуктов Oracle

Постоянно задают вопросы типа:

\”Если мы купим 5 пользовательских лицензий на базу Oracle Standard Edition , но все наши сотни пользователей будут заходить в базу под одним логином, будет ли это нарушением лицензионной политики?\”

или

\”Если у нас одновремнно к базе подключается не больше чем 10 пользователей, но всего у нас 100 пользователей, сколько мы должны купить лицензий?\”

и т.п.

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

Прежде всего, где найти информацию о лицензировании продуктов Oracle?
Найти ее можно по адресу http://www.oracle.com/corporate/pricing/index.html

На этой странице есть ссылка на крайне полезный документ, называющийся Software Investment Guide (SIG), в котором расписаны очень многие положения и моменты, связанные с лицензированием. Поэтому, по-хорошему, начинать нужно с него.

Но как обычно бывает и с чтением документации – она хороша, но в ней \”много букв\”, да еще на английском. Поэтому мало кто этот документ читает. Хотя зря. Он не такой большой.

На той же странице лежит ссылка на прайслисты Oracle, которые довольно часто (иногда раз в неделю), но незначительно, обновляются.

Если говорить о базовых технологиях, то подавляющее большинство продуктов продается по двум метрикам лицензирования – Named User Plus и Processor.

В SIG или на последних страницах прайслиста есть определение, что значат эти метрики. Например:

Named User Plus: is defined as an individual authorized by you to use the programs which are installed on a single server or multiple servers, regardless of whether the individual is actively using the programs at any given time. A non human operated device will be counted as a named user plus in addition to all individuals authorized to use the programs, if such devices can access the programs. If multiplexing hardware or software (e.g., a TP monitor or a web server product) is used, this number must be measured at the multiplexing front end. Automated batching of data from computer to computer is permitted. You are responsible for ensuring that the named user plus per processor minimums are maintained for the programs contained in the user minimum table in the licensing rules section; the minimums table provides for the minimum number of named users plus required and all actual users must be licensed.

Как перевести это на человеческий язык?

Named User Plus – это метрика, по которой лицензируются так называемые именованные пользователи. Именованный пользователь – это конкретный человек или устройство, которое работает с продуктом, например с СУБД и которого можно идентифицировать и посчитать. То есть, это не логин, прописанный в базе, а конкретный Иванов И.И., который работает на предприятии. То есть, у вас может работать 100 человек, которые работают с базой – и вам нужно на них 100 лицензий, независимо от того, как устроено приложение, с которым они работают. Все ли они ходят под одним логином или у каждого свой или даже у каждого этих логинов может быть несколько. Считаются именно люди. Или устройства. Если у вас есть какой-то датчик температуры или счетчик электричества, который работает с базой, например пишет туда показания, такое устройство тоже считается пользователем и должно быть пролицензировано.

Бывают ситуации, когда все пользователи работают, например, через сервер приложений или через другое приложение, которое само работает с базой данных. То есть, в СУБД может быть открыта одна сессия от имени одного пользователя-сервера приложений, а все реальные пользователи работают через этот сервер приложений. В этом случае кажется, что вроде бы у нас один пользователь СУБД, но на самом деле тут мы сталкиваемся с ситуацией, когда сервер приложений называется мультиплексором. То есть, множество пользователей работает через него. Это вопрос архитектуры системы, использовать ли сервера приложений, кластера и т.д, но все пользователи которые работают с базой даже через мультиплексор, должны лицензироваться.

Хороший момент в лицензии Named User Plus заключается в том, что тот же самый Иванов И.И., имея пользовательскую лицензию на СУБД Oracle database EE может работать с любым сервером на предприятии, на котором стоит Oracle Database EE. То есть, вам на Иванова И.И. нужна только одна лицензия для работы с 10 серверами Oracle.

Однако, существует такое понятие как лицензионные минимумы, которые у каждого продукта свои. Например, в случае Oracle Database EE – минимум – 25 пользователей на процессор сервера. Если у вас 10 однопроцессорных серверов, на которых установлена база и 100 реальных пользователей, которые работают с этими десятью серверами, то число лицензий будет 250, то есть по 25 пользователей на сервер, а не по 100 пользователей на сервер, как можно было бы подумать если бы лицензия была привязана к одной машине. С другой стороны, если бы у вас есть только один однопроцессорный сервер, то несмотря на то, что минимум – 25 пользователей, а в реальности у вас их 100 – лицензировать нужно 100. Но если вы поставите к нему второй сервер и сделаете из них кластер, то формально, нужно докупить только опцию Real Application Clusters, а самих лицензий на базу у вас и так хватает, так как минимум на 2 однопроцессорных сервера – 50 лицензий, а у вас их уже 100.

Лицензионная метрика Named User Plus применяется в тех случаях, когда количество пользователей можно четко сосчитать. То есть, можно составить список всех людей и всех устройств, которые работают с базой или другим продуктом. Но такие ситуации существуют не всегда. Например, если у вас есть банкомат, который связан с базой Oracle, а с банкоматом работают клиенты со своими карточками, то в этом случае каждый клиент банка является пользователем Oracle, но работает он с ним через мультиплексор – банкомат.

В этом случае у нас проблема – у нас не только очень много пользователей, но и количество пользователей сосчитать невозможно, так как банкоматом могут пользоваться не только клиенты банка, но и клиенты других банков. Такая же ситуация возникает и с интернет приложениями – сколько у вас будет пользователей – неизвестно и сосчитать это невозможно.

Другая ситуация – когда пользователей сосчитать можно, но их очень много – например, есть у вас 1000 пользователей, которые пользуются приложением раз в месяц. Нагрузка на сервер небольшая. Однопроцессорной машины может хватить, но с другой стороны не хочется покупать 1000 лицензий.

В случаях, когда пользователей сосчитать нельзя или их число очень велико, применяется лицензионная метрика Processor.

С ней все гораздо проще. Есть у вас однопроцессорная машина – вы покупаете на этот один процессор процессорную лицензию и сколько у вас пользователей или устройств, которые работают с базой и используются ли мультиплексоры или нет – не важно. Для большинства продуктов использование процессорной метрики оправдано, когда у вас больше чем 50 пользователей на процессор. Потому что процессорная лицензия обычно стоит столько же, сколько 50 пользовательских. Например, для Oracle Database EE – пользовательская стоит $800, а процессорная $40000.

Например, в случае, если у вас однопроцессорный сервер, с которым работает 100 человек – процессорная лицензия будет стоить в два раза дешевле, чем 100 лицензий на пользователя. С другой стороны, если у вас больше чем 2 сервера, то вам может быть выгоднее покупать по пользователям.

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

Отдельная тема – что считать процессором в случае многоядерных процессоров?

Лицензионная политика постоянно меняется и подстраивается под увеличивающуюся мощь компьютеров. Когда-то для расчета количества лицензий использовалась частота процессора на сервере или число одновременно работающих пользователей.

В случае с многоядерными процессорами, Oracle долгое время не делал разницы между ядрами и процессорами, и каждое ядро нужно было считать за отдельный процессор. Но в этом случае, получается, что не смотря на то, что двухъядерный процессор (чип) стоит дешевле, чем два одноядерных, в то же время, лицензия на двухъядерный процессор стоит столько же, как на два одноядерных, хотя двухъядерный процессор по производительности не эквивалентен двум одноядерным.

А если ядер 4 или больше?

В итоге, решили считать каждое ядро за процессор, с некоторым понижающим коэффициентом. Например, на текущий момент, многоядерные процессоры Intel и AMD считаются с коэффициентом 0.5. То есть на два ядра нужно покупать 1 процессорную лицензию.
В случае с Sun UltraSPARC T1 коэффициент 0.25.
Все остальные ядра процессоров считаются с коэффициентом 0.75.
Если при расчете получается дробное число – оно округляется в большую сторону.

Возможно, что в будущем тут еще что-то поменяется.

Конечно, в короткой заметке нельзя рассказать обо всех особенностях лицензирования. Не говоря уж о том, что Named User Plus и Processor, – это не единственные метрики, хотя и наиболее часто используемые. Существуют, например, специальные типы лицензирования для разработчиков. Или есть правила лицензирования для Standby серверов. И т.д.

Еще раз рекомендую читать Software Investment Guide.

На какие-то вопросы могу я ответить. Но, если вы собрались покупать, то лучше консультироваться с той компанией-партнером Oracle, где вы хотите купить продукт. Или, если вы не работаете с каким то определенным партнером, то можно адресовать вопросы непосредсвенно в Oracle. Хотя, не исключено, что отвечать на эти вопросы придется именно мне :-)

__________________________________
Читайте также:
А еще можно почитать мой твиттер @apivovarov

8 Responses to “Про лицензирование продуктов Oracle”

  1. on 23 Jul 2007 at 5:02 pm 1.Yo! said …

    >В итоге решили считать каждое ядро за процессор с некоторым понижающим коэффициентом.

    не совсем так: коэффициент применяется лишь на EE редакцию, в SE и SE one считаются именно сокеты, независимо от кол-во ядер.

    еще забыт выриант процессорной лицензии на 3-4 года, он существенно дешевле.

  2. on 23 Jul 2007 at 6:04 pm 2.Андрей Пивоваров said …

    Yo!

    Я написал, что нельзя в одной заметке написать обо всем. :)

    Коэффициенты считаются не только для EE, а для всех продуктов, и на самом деле для SE и SE One сделано исключение из этого правила.

    Про скидки, ASFU и проч я тоже не писал, хотя они есть.

  3. on 24 Jul 2007 at 10:57 am 3.Yevgen35 said …

    Особенно мне нравится трактовка Oracle-м слова “мультиплексор”.

    Возьмем биллинговую систему оператора мобильной связи. Реально с биллинговой системой работает огранниченное кол-во сотрудников, которых можно по пальцам пересчитать. Нагрузка на биллинговую систему максимальна только в период биллинговой кампании, то есть несколько дней в месяц.
    Кроме того есть Job-ы отвечающие за загрузку данных пришедщих с коммутатора и отправку обновлений счетов. Никаких промежуточных серверов приложений нет.
    Из уст сотрудников компании Oracle не раз слышал, что коммутатор мобильной связи(это при том что он никаким местом не связан с БД) – это мультиплексор, а следовательно либо платите по числу пользователей мобильного оператора( кол-во пользователей услуги),
    либо покупаете процессорные лицензии на процессоры.
    Альтернатив нет.

    Есть еще некрасивый момент в лицензировании standby конфигураций. То есть рабочую нагрузку standby не несет, а лицензируется как primary cервер.
    Причем за последние 5 лет слышал кучу трактовок по лицензированию stadnby конфигураций.

    Вообщем мой опыт следующий:
    1. Лицензирование – это вопрос договоренностей сторон, то есть “продукт непротивления сторон”. Полное кол-во лицензий платить просто глупо и сотрудники представительств Oracle это хорошо понимают. Что по-русски означает “Как договоришься”.
    2. Поэтому платить нужно столько, насколько договоритесь с локальным представительством Oracle.

  4. on 24 Jul 2007 at 1:57 pm 4.Андрей Пивоваров said …

    Yevgen35

    А зачем говорить про кучу трактовок? В упомянтом Software Investment Guide есть и определение что такое Multiplexing и что такое Batching. Можно там прочитать.
    Я не специалист по биллинговым системам, но из бытовой логики, если я звоню по телефону и в билинговую систему попадают данные о том сколько я наговорил и потом мне на основе этого выставляется счет, (то есть я являюсь пользователем отчетов, получаемых из биллинговой системы), то это похоже на мультиплексирование. По крайней мере, не видно чем это отличается от тех же банкоматов.

    Там же в SIG есть и описание того что такое и какие различия между Backup, Failover, Standby и Remote Mirroring. И как они лицензируются. Можно всегда ссылаться на этот документ, а не на то у кого какие версии.

    Ваш опыт видимо говорит о том, что можно получить скидки. Можно. Как и везде. Поэтому это договорной процесс. Но это ведь не значит, что нарушаются правила лицензирования.

  5. on 24 Jul 2007 at 4:56 pm 5.Yevgen35 said …

    Согласен, есть одна и очень расплывчатая.
    Поэтому в SIG и вводится следующая формулировка.

    If Oracle software is part
    of an environment in which multiplexing hardware or software is used, then all
    users and/or devices must be licensed at the multiplexing front end.

    Про standby тоже понятно.
    Только откуда постоянно блуждающая информация,о том, что если standby не используется в работе более чем определенное время, то он не лицензируется.
    Пару месяцев тому как один наш клиент в Европе покупал лицензии на Oracle на этих условиях у Dell-a, то есть без дополнительной платы за standby, причем Dell c такой трактовкой согласился.
    Ссылка на SIG в данном случае как вы понимаете не совсем уместна ибо приводит к дополнительным затратам со стороны клиента.

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

  6. on 24 Jul 2007 at 5:20 pm 6.Андрей Пивоваров said …

    Я думаю, что про standby это из определения про Failover:
    Failover – In this type of recovery, nodes are configured in “cluster;” the first installed node acts as a primary node. If the primary node fails, one of the nodes in the cluster acts as the primary node. In this type of environment, Oracle permits licensed Oracle Database customers to run the Database on an unlicensed spare computer for up to a total of ten separate days in any given calendar year. Any other use requires the environment to be fully licensed. Same rule applies for Internet Application Server.

    Насчет того, что SIG не закрывает все вопросы – я с вами согласен, более того он разруливает многие проблемы связанные с базой данных, но есть куча других продуктов, где есть свои тонкости в лицензировании. Даже государственное законотворчество – процесс непрерывный, что уж говорить про какой-то документ на 60 страниц. Однако, в подавляющем большинстве случаев его хватает. В более сложных нужно разбираться и иногда приходится привлекать дополнительные ресурсы внутри Oracle

  7. on 25 Jul 2007 at 9:38 am 7.Apex said …

    >Из уст сотрудников компании Oracle не раз
    >слышал, что коммутатор мобильной связи
    >(это при том что он никаким местом не связан
    >с БД) – это мультиплексор
    Чушь. Коммутационное оборудование тут вообще не при чем, оно действительно никаким боком не связано с БД. Информацию о вызовах в базу пишут другие системы,которые скорее подходят под определение датчиков или пакетных заданий.

  8. on 25 Jul 2007 at 4:00 pm 8.Yevgen35 said …

    >Коммутационное оборудование тут вообще не при чем

    Я как раз это понимаю, просто при слове биллинговая система, никто даже слушать не хочет про лицензирование “Named User”.
    Только процессорная лицензия.
    На вопрос “почему?” всегда есть
    ответ “у нас так исторически сложилось”.

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply