Про Diagnostics Pack, Tuning Pack и их лицензирование без использования GUI Enterprise Manager
Нас часто спрашивают про лицензирование Diagnostics Pack и Tuning Pack без использования GUI Enterprise Manager. Читаем документ Oracle Database Licensing Information начиная со страницы 2-20.
В версии 11g поддержка этих двух паков контролируется на уровне СУБД параметром СONTROL_MANAGEMENT_PACK_ACCESS, который имеет одно из трех значений: NONE (ничего не включено), DIAGNOSTIC (включен только Diagnostic), DIAGNOSTIC+TUNING (включены оба). Обратите внимание, что нет четвертой комбинации "только TUNING". С точки зрения логики лицензирования заказчик не может купить Tuning не купив Diagnostics -- ну как можно что-то лечить (тюнить), пока не поставлен диагноз? Если Вы ставили Enterprise Edition, то по умочланию значение этого параметра = DIAGNOSTIC+TUNING. Поэтому, если Diagnostics Pack и Tuning Pack у Вас не лицензированы, то параметр надо вручную поставить в значние NONE :^) Все это верно только для версии 11g. В версии 10g доступ к функциональности паков отключить на уровне СУБД нельзя, что не освобождает от ответственности их лицензировать, если паки реально используются.
Теперь самое интересное. Каково определение "реально используются"? Как Вы уже знаете, паки работают на уровне СУБД, где они собственно и собирают всяческую полезную информацию. Oracle не интересует каким образом осуществляется доступ снаружи. Доступ к этой информации/функциональности может осуществляться как со стороны графического интерфейса Enterprise Manager, так и с помощью database command-line API, всяческих скриптов, программы SQL*Plus, TOAD, SQL Developer, QUEST Spotlight и множества других продвинутых и не очень вещей. С точки зрения лицензирования Ораклу все равно какое средство осуществляет доступ к информации/функциональности паков. Существует простое правило: если паки используются напрямую или опосредованно, то их надо лицензировать.
Кстати, этим правилом лицензирования Oracle убил бизнес некоторых компаний, специализирующихся на создании внешних интерфейсов к этим пакам, так как получается, что необходимо лицензировать Enterprise Edition, Diagnostics/Tuning packs и одновременно продукт третьей фирмы.
Вообще, пора делать отдельный семинар Deep Dive to Oracle Licensing :^) -- тaм навалом различных тем.
Читаем документ Oracle Database Licensing Information дальше, чтобы понять, надо ли лицензировать Diagnostics Pack, если у нас, например, есть отчет, который использует V$ACTIVE_SESSION_HISTORY...
Diagnostics Pack определяется как следующий контур функциональности:
Oracle Diagnostics Pack features can also be accessed by way of database server APIs and command-line interfaces:
- The DBMS_WORKLOAD_REPOSITORY package is part of this pack.
- The DBMS_ADDM package is part of this pack.
- The DBMS_ADVISOR package is part of this pack if you specify ADDM as the value of the advisor_name parameter, or if you specify for the value of the task_name parameter any value starting with the ADDM prefix.
- The DBMS_WORKLOAD_REPLAY.COMPARE_PERIOD_REPORT function is part of this pack.
- The V$ACTIVE_SESSION_HISTORY dynamic performance view and its underlying table, X$ASH, are part of this pack.
- The DBA_STREAMS_TP_PATH_BOTTLENECK view is part of this pack.
- All views beginning with DBA_ADDM_ are part of this pack.
- Some data in DBA_STREAMS_TP_COMPONENT_STAT requires Oracle Diagnostics Pack. The following filter clause to any query on DBA_STREAMS_TP_COMPONENT_STAT shows Diagnostics-Pack-dependent data:
where STATISTIC_UNIT = 'PERCENT'
For example, the following query shows Diagnostics-Pack-dependent data only:
SELECT * FROM DBA_STREAMS_TP_COMPONENT_STAT
where STATISTIC_UNIT = 'PERCENT';
- All data dictionary views beginning with the prefix DBA_HIST_ are part of this pack, along with their underlying tables.The only exception are the views: DBA_HIST_SNAPSHOT, DBA_HIST_DATABASE_INSTANCE, DBA_HIST_SNAP_ERROR, DBA_HIST_SEG_STAT, DBA_HIST_SEG_STAT_OBJ, and DBA_HIST_UNDOSTAT. They can be used without the Oracle Diagnostics Pack license.
- All data dictionary views with the prefix DBA_ADVISOR_ are part of this pack if queries to these views return rows with the value ADDM in the ADVISOR_NAME column or a value of ADDM* in the TASK_NAME column or the corresponding TASK_ID.
- The following reports found in the /rdbms/admin/ directory of the Oracle home directory are part of this pack: awrrpt.sql, awrrpti.sql, awrgrpt.sql, awrgrpti.sql, awrgdrpt.sql, awrgdrpi.sql, addmrpt.sql, addmrpti.sql, ashrpt.sql, ashrpti.sql, awrddrpt.sql, awrddrpi.sql, awrsqrpi.sql, awrsqrpt.sql, awrextr.sql, awrload.sql, awrinfo.sql, spawrrac.sql.
Tuning Pack определяется как следующий контур функциональности:
Oracle Tuning Pack features can also be accessed by way of database server APIs and command-line interfaces:
- DBMS_SQLTUNE
- DBMS_ADVISOR, when the value of the advisor_name parameter is either SQL
Tuning Advisor or SQL Access Advisor.
- V$SQL_MONITOR
- V$SQL_PLAN_MONITOR
- The following report found in the /rdbms/admin/ directory of the Oracle home
directory is part of this pack: sqltrpt.sql.
>В версии 10g доступ к функциональности паков отключить на уровне СУБД нельзя, что не освобождает от ответственности их лицензировать, если паки реально используются.
ОтветитьУдалитьСамое противное то, что AWR по умолчанию включен, и чтобы его выключить, надо обратиться к пакету, который требует лицензию. По этому поводу специально выпустили пакет dbms_awr, чтобы можно было отключить AWR без нарушения лицензии.
Добрый день!
ОтветитьУдалитьЯ понимаю, что незнание закона не освобождает..., но все-таки вопрос:
Что, если я не знал про платность этой опции и пользовался им еще до покупки Oracle, а нынче собрались лицензировать?
А можно ли получить список объектов базы, составляющие ту или иную фичу, в самой базе, а не через доки?
ОтветитьУдалить2Анонимный: я думаю формально претензии от Oracle могут быть только в период времени, когда вы эти нелицензированные опции использовали в коммерческих целях - либо в продукте для собственных нужд, либо в продукте, поставляемом своим заказчикам. Если этот период не велик и вы всё-таки лицензировали соответствующие опции, не думаю, что у Oracle будут к вам претензии, т.к. это не окупит юридических издержек, ну и приведёт к потере клиента или партнёра.
ОтветитьУдалитьSergey Danilov:
ОтветитьУдалитьВообще, пора делать отдельный семинар Deep Dive to Oracle Licensing :^) -- тaм навалом различных тем.
Всецело за, т.к. вопросы лицензирования с одной стороны щепетильны из-за возможных последствий, а с другой не всегда однозначны в трактовке и применимости.
Timur, спасибо за замечание.
ОтветитьУдалить>> Что, если я не знал про платность этой опции
>>и пользовался им еще до покупки Oracle,
>>а нынче собрались лицензировать?
Нужно лицензировать. Нужно открыто объяснить руководству, что Вам это нужно и Вы реально используете эту функциональность. Oracle нормально относится к тому, что приходит "серый", недолицензированный заказчик и лицензируется.
Ghost.DBA,
ОтветитьУдалить>>А можно ли получить список объектов базы,
>>составляющие ту или иную фичу,
>>в самой базе, а не через доки?
Мне кажется, что нельзя. С другой стороны, есть набор скриптов (думаю, что он доступен где-нибудь на металинке), который скажет Вам какие именно Database Options у Вас используются, а какие нет. При этом, не думаю, что такие скрипты смогут выловить описанный в посте случай, когда где-то сбоку есть скрипт, который читает V$ACTIVE_SESSION_HISTORY :^)
Если смотреть на проблему шире, то есть нюансы лицензирования, которые вообще нельзя выловить программно.
Вообще, в любом лицензионном соглашении прописан примерно такой пункт: "Заказчик соглашается с тем, что Oracle может прийти с лицензионным аудитом, уведомив заказчика за 30 дней до проведения этой процедуры. Oracle не отвечает за финансовые расходы Заказика, которые может вызвать эта процедура. В течение 30 дней заказчик обязан оплатить недолицензирование, которое выявила процедура аудита".
Посмотреть наличие опций в базе, насколько я знаю, можно и без металинка и хитрых скриптов: есть представление v$option.
ОтветитьУдалитьС помощью этого представления я, например, реализую несколько вариантов создания больших таблиц (с секционированием, паралельностью и т.п.), в зависимости от доступности этих опций на конечной системе.
Хотя, конечно, "значение опции" TRUE или FALSE немного говорит о том, лицензирована она или нет.
Так что, ждём семинара? ;-)
мне кажется Oracle CIS с сожалением говорил о том, что процедура аудита не применима для российской специфики %) и "серость" является практикой, а не исключением.
ОтветитьУдалитьЯ не разу не видел реальных данных по уровню "серости". Как мне кажется, уровень серости весьма высок.
ОтветитьУдалитьSergey, согласен про уровень "серости". Обусловлено это, скорее всего отличием менталитета в бизнесе в России и на Западе. У нас, к сожалению, платят за что-то 100% только тогда, когда нельзя это "что-то" получить нахаляву :( - О! Работает опция без лицензирования - ну и ладно, ну как придут с аудитом - тогда и заплатим, а то "авось" и не придут. С другим ПО ещё взлом добавляется.
ОтветитьУдалитьХотя тут ещё есть ньюанс цены за опции в Oracle. Трудно соотносить такие большие цифры (по крайней мере для SMB) с тем преимуществом, что эти опции дают. Боссы обычно смотрят на цифры и мало понимают в технологиях, а IT-шники наоборот. И тут "Надо учить!" в смысле IT-шников, а не боссов - тех бесполезно.
Ghost.DBA,
ОтветитьУдалитьЯ думаю, что чем заказчик более "корпоративный", тем для него более очевидна ценность опций. Например, чем у заказчика больше данных, тем он больше видит ценность от Partitioning. Чем заказчику более необходима high avalilability и масштабируемость, тем он больше смотрит в сторону RAC, и т.п. Чем заказчик меньше, и чем меньшую роль для играют данные/информация в его бизнесе, тем менее интересны ему опции и, в принципе, Oracle как СУБД. Т.е. Вы правы, в SMB спрос на опции будет в общем-то меньше, чем в секторе крупных заказчиков.
Учить, мне кажется, надо и тех и других, просто делать это надо по-разному. Начинать надо с IT-шников, Вы правы. CIO не купит продукт, пока его IT-шники не скажут ему что "это круто". Работать с IT-шниками необходимо, но не достаточно.
Очень часто можно продать технологию придя только к боссу и рассчитав его затраты без технологии, а потом с технологией. Босс купит просто потому, что с технологией получается дешевле, чем без технологии. Ему все равно как технология работает. Но босс все равно (если он не дурак :^) для подстраховки пойдет к IT-шникам и спросит: "Partitioning внедрить сможете?" Если они в этот момент ему скажут: "Да ради бога, босс, дай только команду", то босс купит. Если IT-шники скажут: "Мы это говно попробовали, а оно вообще не работает -- забудь, босс", то босс не купит. (хотя IT-шники могли в этот момент просто не разобраться с технологией) Т.е. получается, что работать с IT-шниками необходимо, но не достаточно. Если работать только с IT-шниками, то босс никогда не узнает, что там они используют и нечего покупать не станет (если только IT-шники не супер-продвинутые и сами не придут к боссу и не скажут "ты че, босс, давай лицензироваться!"). Тут уже многое зависит от внутренних отношений/культуры организации и роль IT-шников в ней.
На самом деле, реальная жизнь намного сложнее, но контекст примерно такой.
Во многом согласен - в особенности насчёт корпоративного уровня. Но собственный опыт подсказывает, что боссу действительно всё равно, чего у него там работает - он и комп-то в большинстве видит в виде ноута с вечной заставкой, так что до опций и слов Partitioning ему совсем далеко - да и не надо, не тот уровень. Вот когда боссу предлагается несколько решений какой-либо проблемы (производительности, надёжности, масштабируемости и т.п.), которое с учётом и без учёта опций СУБД стоит по разному, то тут уж босс на коне - он видит $$$. Поэтому, я таки настаиваю, чтобы в первую очередь научить IT-шников найти среди всего многооборазия СУБД - СУБД Oracle, потом подходящую(ие) технологию(ии), научиться видеть преимущества технические и финансовые - тут уже уровень начальника IT-шного отдела возникает. Так что IT-шник сначалане попробует опцию и потом должен суметь донести большому боссу на тарелочке с голубой каёмочкой эффективность в $$$, а не в милисекундах, терабайтах или минутах downtime.
ОтветитьУдалитьЧто-то, наверное, уже одно и тоже по кругу мусолю :-/
... в догонку...
ОтветитьУдалитьяйца всегда за то, что они первее курицы!!! :)))
вот был бы я большим боссом... %-)
>>собственный опыт подсказывает,
ОтветитьУдалить>>что боссу действительно всё равно,
>>чего у него там работает
С технической точки зрения, бизнес не интересует, как устроена технология. При этом бизнес может интересовать что там лицензировано, а что нет, так как это вопрос рисков. Риски уже интересуют бизнес. Например, их интересует вопрос получим ли мы поддержку, если вдруг остановится бизнес-критичная система. Их не итнересует как там крутятся жесткие диски, но их могут интересовать характиристики надежности, если они понимают, что бизнес организации построен на информационных технологиях. Тут уже легко подстчитать прямые фифнасовые потери от часа простоя системы и т.п. Если бизнес не сильно зависит от IT, то босса может вообще не интересовать что там в IT. Вы правы. Ну тут и не факт что им и Oracle нужен как таковой. :^)
>> Поэтому, я таки настаиваю, чтобы в первую очередь научить IT-шников...
Я в приципе ничего портив такого подхода не имею. "Не приближаемся к CIO пока полностью не завоюем сердце IT-шников. IT-шники все потом пробъют". Иногда это единственный способ внедрить технологию. Главное, чтобы босс не обиделся, что кто-то там пришел и с его IT-шниками что-то шушукается без его ведома и отвлекает их ценнейшее время на что-то ему неведомое. :^)
Я всегда считал одним из важнейших критериев успеха любого проекта именно поддержку со стороны руководства. Технология должна быть нужна руковоству. Босс должен чувствовать потенциальную вогоду, чтобы дать зеленый свет пилоту. Руковолитель должен быть "спонсором" проекта в организации. Руководитель должен понимать, что IT-шники сейчас тратят свое сремя на такой-то пилот, т.к. они хотят выяснить то-то и то-то, и на основе этой работы он потом примет судьбоносное решение.
Если, например, попытаться внедрить RAC без ведома руководства, просто тупо начав с IT-шников, то сразу можно обломаться на том факте, что под рукой нет нужной техники для пилота, а без босса ее не купить. Плюс, пилот не простой и понядобится время. Времени нет, так как идут другие проекты. Надо идти к боссу на самых ранних стадиях пилота и объяеснять что мы задумали и зачем это все надо, чтобы получить его поддержку. В общем, Вы поняли мою идею... :^)
При этом я подписываюсь под тем, что плотная работа с IT-шниками является ключевым критерием успеха.