the magic of calculations

Update 3.  8 Мая.   Я готов признаться в провокации -) Мне было интересно, что напишут люди отвечающие за продажи продукта, насколько они понимают архитектуру решения, ее баланс.  Коротко, я стал атаковать утверждение,  что базы данных целиком будут сжиматься в 10 раз.

Короткий ответ на провокацию должен бы быть такой: "это не важно, в 10 или в 8, или в 4. У нас есть только 3 варианта: 45 Tb, 22 Tb, 9 Tb и ты обязательно поместишься в один из них.  После того как ты поместишься в один из вариантов мы сожмем несколько важных таблиц для увеличения скорости критических бизнес отчетов, но так, чтобы не убить процессоры для остальных задач. Насколько мы сожмем зависит от природы данных конкретной таблицы и характера твоего приложения. Нужно будет посильнее - отсортируем. Пока можешь оценить сам с помощью dbms_advisor.". Точка.  Ну если я купил 9 Tb ну нахрена мне держать там пережатым  1Tb и ждать пока они декомпрессуются если у меня есть еще 8  ?  Что там, картошку хранить ? Ну конечно же лучше пожать что-то сильнее, что -послабее чтобы был лучше баланс между IO и CPU. Размер БД когда есть всего 3 варианта поставки вообще не важен - никакой экономии вы не получите все равно. Но для этого надо знать архитектуру, лицензирование и прочее...

Вместо этого, началось доказательство что обязательно в 10 раз, что точно и ни разом меньше, но обещать не можем. В довершении в лучших традициях перешли на личности.   Это значит, что если в проекте с вами не получится в 10 раз, или вы не дай бог начнете задавать вопросы - то вы узнаете о себе много нового. Подумайте об этом -)
------------------------------------------------------------------------------------------------------------------------

Берем пост про миграцию на Tukcell. Читаем презентацию. Видим, что с 250 Tb база стала 25 Tb. Т.е. в Hybrid Columnar Compression сжала БД в 10 раз. Аплодисменты. Шампанское. Выпив, я рассудил трезво:

в презентации находим ссылку на блог. Смотрим на табличку, понимаем что сортировать таблицу перед компрессией все таки не слишком честно, делим 137/21 получаем ~ 6.5. Отличный результат, между прочим, OLTP Compression дает примерно 2-3.




Я решил заняться пересчетом коэффициентов потому что вчера послушал специальный Webcast про Hybrid Columnar Compression. В нем приводятся коэффициенты от 4-х до 6. При этом если почитать презентацию станет понятно что использовали они в production for archive low, т.е. 4.3. Также Real Customer Case между прочим.

Кстати, вы можете использовать advisor compression и без Exadata чтобы получить оценки. Как вы видите, он хотят и занижает результат, но в принципе дает очень близкий. Вот что я делал еще давно - взял TPC-H схему и попробовал advisor. Получил примерно ~ 5 раз.

Видно, что очень зависит HCC компрессия от природы данных, от того захотите ли вы их сортировать каждый месяц или нет. Что точно неправильно - это рассчитывать что ВСЯ БД будет сжата во сколько-то раз на постоянной основе. Возможно если у Вас есть бесконечно много времени вы и вправду будете переезжать на Exadata сортируя данные. В презентации есть детали, 36 часов им понадобилось на основные 40 Tb, переливали они их с помощью pl/sql процедур, но сортировали они их или нет и когда - не ясно -(. Понятно что остальные 60 Tb им тоже пришлось переливать когда-то. Я уверен что Сергей Данилов выкрутиться и в этот раз, просто интересно как -))))
PS Чего нельзя отнять - так это то что турки молодцы. Все таки они клево пробились, переливать такие объемы вручную (pl/sql процедуры) - это сильно по ковбоиски ...

Update 1. 07 Мая

Я сделал скринщот оригинального поста про Туркселл:

Всем видно что написано "Технология HCC сжала данные в 10 раз "? Теперь в комментариях (там треш) читайте как следует на самом деле это понимать -))))

Правда заключается в том, что у турков было 100 Tb (сжатых компрессией 10g, стр 3 презентации), они перевели на Exadata 90 Tb (стр 11 презентации), для улучшения компрессии они сортировали данные в момент перелива, получили 25 Tb. 90 / 25 каждый делит для себя сам.

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

UPDATE 2 by Sergey Danilov:

Сергей Данилов знает о компрессии примерно столько же, сколько о жизни на Луне :^) Сергей Данилов объясняет бизнесу как вон тот ящик сделает бизнес качественнее, поэтому Сергей Данилов срезает технические углы. Нет ничего проще, чем аппелировать к технической неточности в словах Сергея Данилова. Это "как два байта переслать" :^)

Читаем что пишет сам Ферхат в своем техническом документе. Это данные от человека, который сделал проект своими руками.

Compression in Action

Old System 10gR2 Compression
• ~2-3 times ~250TB raw data to 100TB

Exadata V2 with EHCC
Raw Data 250TB to 25TB (Data) + 5TB (Temp) = 30TB
EHCC - Compress ratio ~7-10x
• Archive compression is efficient but high CPU consumption

Там все четко написано Raw Data 250TB to 25TB (Data). Там также отдельно выделена эффективность технологии сжатия: ~7-10х. Метрика 10x при переезде на Exadata была реально достигнута (как совершенно правильно пишет Ферхат, "при помощи HCC"). И аппелировать к неточностям надо в материале Ферхата, а не Сергея Данилова.

Под Oracle сжатие 10х никак, я повторюсь, никак не достижимо без Exadata.


Читать дальше...

nmon + rrdtool

Все знают, что файлы собранные nmon следует анализировать с помощью nmon analyzer который представляет собой   Excel таблицы. С этим связано несколько неудобств:
- Excel не умеет работать с файлами длиннее 65,000 строк
- Сам Excel -(

В принципе альтернативы есть, и первая называется nmon2rrd. В данном случае все заливается в rrdtool и с его помощью отстраиваются графики. Небольшое отвлечение, почему rddtool - она умеет консолидировать данные и вы совершенно бесплатно получите позже trend для ваших данных !

Вот примерная последовательность действий:
  1. Я решил что хочу анализировать данные на своей рабочей станции. Сейчас. А потом не знаю. Возможно отдать кому-нибудь. Или переставить где-нибудь. Поэтому - мой выбор виртуалка. Я скачал Virtual Box (это бесплатно  и есть для всех мыслимых платформ). 
  2. Затем я поставил  туда Oracle Linux 5.6 (опять бесплатно), и соединил с репозиторием yum-public. 
  3.  Следующий шаг - установка rrdtool. 
    1.  yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel make -y
    2. wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.4.tar.gz
    3. gunzip, tar 
    4. ./configure --disable-tcl
    5. make
    6. make install
    7. ln -sf /usr/local/rrdtool-1.4.4/bin/rrdtool /usr/bin/rrdtool
  4. Теперь пора скачать nmon2rrd, увидеть что он под AIX, скомпилить его под Linux. 
  5. Быстренько ставим Apache:  yum install httpd
  6. Генерим графики nmon2rrd -f xxx_db.nmon -d  /var/www/html/xx_db -x 
  7. Наслаждаемся просмотром
Вышеперечисленное можно повторить практически на любой ОС включая Windows.

 Достоинства: процесс можно автоматизировать, потому что с этим Excel руками каждый день строить графики не очень приятно.

Недостатки: не слишком удобный index.html строится по умолчанию. Придется работать напильником, или я чего-то не дополнял.



Есть альтернативный подход (подход N2) основанный на скрипте nmon2web. Он правда также использует rrdtool. И хотя этот скрипт уже почти готовое решение, раскладывает все по дням, умеет находить что появился новый сервер - график он построил чуть с худшим качеством чем nmon2rrd. Возможно я и придираюсь, все таки сервис явно получше.
Вам есть что выбрать -))

В следующих сериях мы будет грузить в rrdtool statspack -)


Читать дальше...

"Life in Oracle" by Igor Menlikov

Как вы видите в этом блоге началась маркетинговая шиза - мы с Сергеем буквально соревнуемся в том, кто найдет круче видео  -)

В это же время настоящие пацаны ведут простые технические блоги - welcome to Life in Oracle  by Igor Melnikov ! 


Читать дальше...

Сколько у Вас DBA и сколько у Вас баз данных?

Аналитическая компания Forrester проводит много разных исследований. Одно из исследований было такое: Сколько баз данных (инстансов в понятии Oracle) в среднем администрит один DBA.

Forrester несколько раз публиковал график, который говорит нам, что например в 2000 году на одного DBA в среднем приходилось 15 баз данных (инстансов в понятии Oracle), в 2007 24 баз данных, и в 2010 году 40 баз данных на одного DBA. За всем этим нет какой-то большой науки. Они просто профессионально проводят опросы и публикуют статистику.

Я спросил один очень крупный американский инвестиционный банк сколько у них DBA и сколько у них баз данных (объяснив им при этом, что под базой данных я подразумеваю instance в понятиях Oracle). И большой IT-начальник того банка сказал мне, что у них глобально в мире около 5000 баз данных (Oracle, DB2, SQL Server, Sybase и т.д.) и 346 DBA, которые администрят эти 5000 баз данных. Я тупо разделил одно число на другое, получилось 15 баз данных на одного DBA. И тогда я наложил это число на график Forrester и сказал тому начальнику, что их компания живет в состоянии, в котором большинство компаний были 10 лет назад (по данным Forrester). И начальник меня понял, так как раньше он работал в другом инвестиционном банке, где это число получалось намного выше. Теперь банк разворачивает программу повышения уровня автоматизации работы DBA, чтобы достичь метрику 40 баз на DBA.

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

Вопрос в общем-то очень простой :^)

Пояснения:

  • Всех баз данных, не только Oracle. (Под базой данных мы понимаем instance в понятиях Oracle. Я знаю, что в SQL Server, например, базой данных называется что-то похожее на schema в Oracle).
  • Я знаю что в маленьких организациях метрика будет меньше, чем в больших организациях, поэтому если можно опишите также размер организации любыми доступными Вам словами.
  • Пожалуйста, постарайтесь не писать в комментариях к этому посту ничего кроме запрошенной информации. Подискутировать можно в других постах -- их здесь навалом.
UPDATE: Кстати, у аналитика из Forrester, который занимается этим исследованием есть блог, в котором он пишет про собираемую им метрику более подробно.

UPDATE 2: Черт, ну любит у нас народ пообсуждать. Иногда цифры намного и интереснее чем рассуждения "так ли мы живем" и "к тому ли мы стремимися". Всем будет интересно. Хотя бы просто понять порядки цифр. Религиозные приверженцы MS SQL могут прислать данные "в понятиях MS SQL" но тогда пожалуйста укажите еще сколько у Вас физических серверов :^)


Читать дальше...

1,000,000

Чтобы окончательно добить сегодня тему маркетингового булшита - в том же видео делается упор на 1,5 mln IOPS операций в секунду. Я сам видел на Open World этот тест, хотя тогда он давал 1 mln,  просто сейчас что-то улучшили. Т.е. да это правда, у меня нет сомнений.   Необыкновенная гордость за достижения распирает пока не наткнешься на сайт на котором 1 PCI карточка дает 1,2 mln IOPS и держит объем 5  TB (=объем flash'а в Exadata full rack). Циничным издевательством выглядит наличие драйверов в том числе для Windows XP.  1 (одна)  PCI карточка по характеристикам (как по IOPS, так и по объему) = всему  flash cache в Exadata Ful Rack. Я готов снять видео -))
   


Читать дальше...

Are You ready ? Yes, We are !

Я нашел что ответить нашему английскому джентельмену в ответ на его "Are you ready ?"
-))




Но конечно же по настоящему интересное видио тут, когда про Power 7 рассказывает команда из Германии, которая принимала участие в разработке. Один из инженеров честно говорит - "мне просто было офигенно интересно". 


Читать дальше...

turbo core

У старшего поколения Power  машин (начиная с 780)  есть интересная возможность - называется turbo core. Подробное описание вы найдете (правда для System I, зато с картинками) здесь, а своими словами:  половина ядер отключается, зато вторая половина ядер начинает работать с повышенной частотой и получает в два раза L3 cache на ядро.  Повышение частоты при этом составляет с 4.0 GHz до 4.31 GHz (+13%), что прямо скажем - не очень много.

Включается эта возможность весьма легко - но конечно же потребует перезагрузки машины.

Основной (для меня) вопрос - как этот режим влияет на производительность СУБД остается непонятным.

Ниже вы найдете картинку (я не знаю ее источника и даже не до конца понимаю что там нарисовано) из которой  вроде бы следует что производительность single thread возрастает незначительно (~ частоте), а вот SMT4 здорово добавляют. Не знаю, можно ли из этого сделать вывод что если у нас уж больно много потоков то лучше не переключаться с SMT2 а перейти в turbo.




Но есть и интересная деталь к Turbo Core режиму - это примечание из Oracle Overview of licensing policies for partitioned environments:

"Using IBM processors in TurboCore mode is not permitted as a means to reduce the number of software licenses required; all cores must be licensed"

В интернете считается что это значит что  Oracle требует оплаты всех (для Power 7)  8 ядер, хотя на самом деле у меня всего 4 в  turbo. Так вот нет, я уверен что есть вполне легальный способ заплатить за 4 ядра и называется он LPAR. Переводя процессор (или ядра) в turbo вам необходимо выделить capped LPAR с 4 ядрами и заплатить за 4 ядра. Где еще 4 ядра - никого не волнует. Их может и не быть (как в случае с turbo), а могут быть заняты App Server'ом - главное что Oracle использует всего 4 ядра. В чем же тогда смысл фразы ? Он очень простой, (ведь вы помните что мы читаем про partitioned enviroment) - пожалуйста если в вашей LPAR 8 ядер не нужно рассказывать что на самом деле их 4 и они в turbo - Oracle не будет в этом разбираться. Так что делайте как я написал выше и все в порядке. Это мое оценочное мнение, если что -).


Читать дальше...

Oracle on Power

Прошло первое событие из серии Oracle on Power. Пришло 77 человек. Задавали вопросы, делились собственными знаниями - мне понравилось. Мы делали живые демо - как всегда не все шло гладко - но вроде все получилось в конце концов.

Для меня событие началось еще вчера вечером со звонка инженера из центра Montpellier - мол, давай, надо тестировать демо. Подготовка всего вечером накануне мероприятия становится доброй традицией. Установили VPN, применили напильник, прошли сценарий, - все работает. Заработало и на семинаре - я показывал Live Partition Mobility одного из узлов RAC с хоста на Power 6 на хост с Power 7. Все on-line. Swingbecnh ничего почти и не заметил. Слушатели хором подсказывали мне как работать с HMC консолью -))

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

Таким образом у нас есть демо стенд здесь, в ICC центре, в Москве и VPN в Montpellier. Можем тестироваться -)

Мне лично понравилось выступление Алексея Перевозчикова, а конкретно про turbo-core, постараюсь написать про это отдельно. Юра Степанов упомянул интересную деталь, что в машинах с большим количеством процессоров рекомендуют уменьшать SMT c 4-х до 2-х. Буду потихоньку разбираться. У меня не заработал Orion, скачанный с otn. Из зала сказали что надо было взять его из дистрибутива -)

Ссылка на материалы, по старой традиции пароль сообщался на мероприятии -)
Форум

Update 1. В архиве нашлись ошибки - извините - архив был обновлен. Если вы уже скачали, скачивать заново смысла нет. 
Update 2. Рекомендую прочитать презентацию Илья Деева про псевдосекционирование, которую Илья делал для RuOUG.

Update 3. Отзывы:

"Как ни странно содержание докладов соответствовало заявленной теме"


Читать дальше...

Are YOU ready?

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


Читать дальше...

FUD: Fear, Uncertainty and Doubt

В 2004 году, когда Oraсle только выпустил 10g я провел несколько десятков презентаций "Введение в Oracle Enterprise Grid", которая, как всегда, начиналась "издалека". Я рассказывал о том, что давным-давно, когда я еще не родился на свет, единственным серьезным игроком на рынке IT была компания IBM. Еще не было Oracle, не было Microsoft и еще никто не мог утереть нос голубому гиганту.

В 1964 году в компании IBM был изобретен первый mainframe. Компьютер, на котором эта компания построила свое будущее. Человека, которые изобрел первый mainframe, и возглавлял ключевую группу инженеров, звали Gene Amdahl. Интересно, что через некоторое время после изобретения mainframe, Gene Amdahl ушел из IBM и оcновал собственную компанию Amdahl Corp. Как мы знаем, хорошие инженеры долго не засиживаются на одном месте :^). Так вот, Джин Эмдал ушел со своей прекрасной, высоокооплачиваемой позиции в IBM, чтобы создать свои собственную компанию. Смелый шаг и редкое явления для 60-х годов. И сделал он это только для того, чтобы разработать еще более крутой компьютер, чем mainframe. И тут началась гонка. Гонка по созданию все более и более мощных серверов. В гонку включились все игроки IT и борьба пошла не на жизнь а на смерть. Дальше я рассказывал, сами понимаете, про RAC :^)

Но сейчас я про другую часть этой истории. Когда Джин Эмдал ушел из IBM, и фактически начал конкурировать с голубым гигантом, он столкнулся с интерсным феноменом, который он определил как FUD (Fear, Uncertainty, Doubt). Феномен заключался в том, что сейлы IBM, впервые столкнувшить с реальной конкуренцией, начали распространять среди заказчиков неподкрепленную реальными фактами дезинформацию о продуктах Amdahl Corp., а именно элементы страха (fear), неуверенности (uncertainty) и сомнений (doubts) или попросту говоря FUD.

Классический пример FUD можно почитать в моем комментарии к посту "про золушку-2", где я пишу про некачественный опто-изолятор 4N25, который в любой момент может оставить материнскую плату большого компьютера без питания. Мы сталкиваемся с FUD, когда сейл говорит: "Не покупайте эти сервера компании XXX, так как они часто ломаются", но при этом не подкрепляет информацию реальными фактами.

Еще примеры: "это плохой продукт, так как он делается на заводе в Китае", "а что будет, если с Китаем начнется война? Вы хоть понимаете какой Вы на себя берете риск?" или "заводы Fujistu расположены в Японии, а там часто бывают землетрясения", "если в компьютере не дублированы все PCI-карты то он не надежен", "эти сервера радиоактивные", и т.д. В общем, не полностью обоснованные утверждения, направленные на внедрение в мозг заказчика неуверенности, сомнений и страха быть уволенным за покупку некачественного товара :^)


Читать дальше...

is Oracle the Apple ?

Нашел весьма занятный отчет IDC на сайте Oracle. Не очень сложный английский, можно прочитать. Занятный термин oServer (сравните с iPad) -). Весьма положительный для Oracle  отчет, где  Exadata и Exalogic представлены как революционные продукты, почти такие же как  продукты Apple -) Все так (я про Exadata), спору нет. Вот только ...кажется мне что атака  на HP (вы помните про Itanium ?) она уж как совпала по времени с попытками прорваться на рынок  Intel систем. Насколько я понимаю на этом рынке HP сейчас лидер. A если так, Oracle решил серьезно прорываться на рынок  с Intel решениями...то зачем тогда нужны M-series ? Ведь невозможно уже сейчас объяснить заказчику что лучше - M9000 или Exadata (на самом деле конечно можно, но маркетинг специально этого не делает). Конечно объявлен Exalogic на T3-1B, это настоящий SPARC, спору нет, но ..это не M-Series. Что-то мне подсказывает, что Ларри понравились T3/T4 машинки, а вот M-ки в улучшем случае будет проданы,  в худшем просто остановлены. Очень соглашение с Fujitsu напоминает начало конца (продаж)...В общем то купить Sun чтобы построить затем бизнес на Intel + внутренние SATA диски ход гениальный -))) Никто ничего не понимает, можно продавать что хочешь -).  Итак, поскольку ставка в любом случае ставиться на небольшие серверы - RAC наше все, как и пытались мы с Сергеем Даниловым вам внушить все это время.
Совсем заболтался и забыл ради чего я все это написал - сегодня же день рождения опции Real Application Clusters и Сергея Данилова !   Сергей, поздравляю !


Читать дальше...

statspack discrepancy

Получив очередной statspack я с удивлением обнаружил следующее сообщение:

Note: There is a 50% discrepancy between the OS Stat total CPU time and
      the total CPU time estimated by Statspack
          OS Stat CPU time: 1209725(s) (BUSY_TIME + IDLE_TIME)
        Statspack CPU time: 2419488(s) (Elapsed time * num CPUs in end snap)

Jonathan Lewis (я безусловно рекомендую прочитать все его статьи про statspack) приводит замечательный пример, когда такое возможно:  например  CPU  intensive процедура не завершилась ко времени снимка statspack.   В этом случае время OS time >  чем Statspack CPU time, потому что время считается только для завершившихся запросов.  Однако в моем случае все наоборот:  OS time <  Statspack time !  Надо отметить, что   =  2419488 / 1209725 =  2.000031412097791. Хорошая такая точность, до 4 знака после запятой.

Как репортит statspack, мы имеем дело с  Oracle 10.2.0.4.0,   Num CPUs:   96

Однако nmon - наше все (если у нас AIX). И он нам сообщает что на нашей машине Power 595 у нас всего 48 активных процессоров и SMT выключено (я так думаю, в противном  случае  вкладка CPU_ALL содержала бы примечание про SMT, а его нет в этом случае).  Я предполагаю, что  Oracle в данном случае ошибочно считает, что SMT всегда включено.   



Читать дальше...

COOPERTITION

В 2006 году меня попросили сделать презентацию в офисе IBM на открытии совместного мероприятия IBM-Oracle и я начал презентацию вот с этого слайда. Это одно слово (COOPERation и одноврменно compeTITION) как нельзя точно передает отношения между двумя компаниями. С одной стороны конкуренция, с другой кооперация. На момент проведения презентации конкретно в России было 424 совместных заказчика IBM-Oracle, которые использовали СУБД Oraсle на технике IBM. Эти крупнейшие заказчики представлены во всех секторах от Public Sector до Commercial.

Реальность современного IT рынка состоит в том, что, конкурирующие между собой вендоры часто оказываются в ситуации, когда они сами и их продукты должны работать совместно ради создания у Заказчика бизнес-критичного решения. В таких случаях оба вендора больше потеряют, чем приобретут, если на какой-то момент позволят стратегическому соперничеству взять верх над тактической кооперацией. Именно поэтому в IBM и в Oracle существуют люди, работающие над совместными решениями не смотря на усиливающуюся конкуренцию и эта реальность не изменится.

Несмотря на то, что при покупке Sun элемент compeTITION усилился, у компаний есть совместный центр тестирования в Montpellier, France (фотографии копирайт Дмитрия Волкова), где работают несколько десятков человек над тестированием и обкаткой совместных решений Oracle-IBM и которые буквально получают зарплату из рук обоих компаний одновременно. Заказчики могут приехать в центр, протестировать софт, выпить чашечку кофе и полюбоваться Лазурным Берегом. Мой отъезд в Oracle UK был освещен достаточно ярко на этом блоге, а отъезд Дмитрия остался как-то в тени. Так вот, Дмитрий работает в одной из групп IBM, которые занимаются совместными решениями "техника IBM под СУБД Oracle". До Montpellier Дмитрий не доехал -- он базируется в московском офисе IBM.

Поэтому в этом блоге (похоже, что теперь уникальном блоге Oracle/IBM) Вы видите весьма интересные метаморфозы (по биологии проходил давно еще :^) . Большая просьба не искать в этом блоге какой-либо политики -- ее тут нету. Любой заинтересованный человек может оставить комментарий. Я конечно иногда обожаю оставлять всякие гадостные комментарии (чтобы никого сильно не метаморфозило), но это я так, любя :^)

Как Вы уже наверное читали ниже в постах "читая TPC-C" и "core factor", помогая Заказчикам осознавать value железа IBM POWER Дмитрий на самом деле автоматически помогает Oracle продвигать Oracle Database (да еще с каким коэффициентом core factor!), поэтому я лично вижу совместную выгоду для обоих компаний :^)

P.S. Если кто-то не понимает происходящего на блоге, то всегда можно задать вопрос.


Читать дальше...

про золушку-2

Вы про золушку помните ?  И были это еще не ее беды.. По первой же попавшейся ссылке мы читаем из чего состоит database cell:
   * X4275 Server
   * 2 Quad-Core Intel® Xeon® E5540 Processors
   * 24GB RAM
   * Dual-port 4X QDR (40Gb/s) InfiniBand card

Перечитываем еще раз и убеждаемся что карта Infiniband ..одна, только двухпортовая. Повторю - это обычная PCI -E карточка, стоимостью $2,295. Что удивительно, так то,  что ничего не мешает нам поставить их две, это поддерживается. Инженеры Sun обо всем подумали проектируя X4275. Теперь внимание вопрос - что произойдет если у системы за $300K за железо  +  $360K за специальное ПО сгорит 1 карточка за $2K?  Да в общем ничего, вы же помните что данные задублированы причем обязательно на других  cell. Потеря 1/3 производительности ? Потеря данных, если за до замены карточки  сгорит диск ? Весьма сложная ребалансировка когда карточку заменят ? Who care about... Как же это могло произойти, почему всего одна?   Я честно говоря не понимаю (есть  версия - просто закончились свободные порты).  Но знаю точно, что это совершенно бессмысленная и беспощадная экономия $2K. Кстати купить за свои деньги и доставить - нельзя -). Остается только молиться.  Enjoy !


Читать дальше...

Апрель

Прошло время, есть изменения по этому тексту:

В Апреле состоится несколько интересных, на мой взгляд, событий :

  • 20,  (а не 18 как я писал раньше) будет проводиться RuOUG. Бесплатно при условии членства в RuOUG. Если вы забыли зарегистироваться, наверно еще можно написать на welcome@ruoug.org чтобы спросить что Вам делать. Программа семинара.
  • c 18 по 20 апреля В мае  в партнерской академии Oracle будет проводиться очень интересный семинар под пока кодовым названием 'RAC is Simple'.  За 3 дня вас научат как поставить и протестировать RAC 11gR2 на платформе Linux, как перенести приложение, как мигрировать с single instance. Вам предложат более 10 лабораторных работ на виртуальных машинах.   Это платный семинар, стоимость около $60 в день. Все детали лучше выяснять у партнерской академии.
  • 29 апреля состоится очередной технологический клуб Power, в этот раз посвященный работе Oracle на платформе Power. Программа. Ссылка на регистрацию.


Читать дальше...

service as is

Отмазка: предлагаемый сервис ограничен по времени, не предполагает выполнения каких-либо работ в ограниченный срок и представляется AS IS безо всяких  всяких гарантий. 


Читать дальше...

911

Если при установке AIX ввести в качестве опции установки 911 (а не то что перечислено на экране), то волшебным образом установка перейдет в режим отладки и вы сможете увидеть детальный лог. Мне просто нравится, когда инженеры продолжают вставлять чит-коды даже в казалось бы   очень серьезные программы  -))


Читать дальше...

core factor


После прочтения core factors table каждому разумному человеку становиться понятно, что Oracle стоит покупать только на SPARC T3 процессор из-за коэффициента 0.25. И все крики что не не все процессоры одинаково полезны сталкиваются с "а докажите !". Доказать, это кстати интересное упражнение -).

Начну издалека: во первых, лично я ненавижу разговоры о БД на серии T из-за того что они ...были сделаны для Web серверов, и только потом появилась (я уверен что в маркетинге) идея запихивать их под БД тоже. Собственный тест на еще на T1 показал мне что так оно и есть. По моему убеждению Intel Xeon порвет T2/T3 под нагрузкой БД. 4 сокета максимум в T3 тоже не добавляют оптимизма. Борорься с Intel на 4-х сокетах сейчас очень не просто даже настоящим RISC. Что не вовсе не умоляет иженерных достоинств T3, в том числе весьма достойной виртуализации. Во-вторых, мне кажется странным, что Oracle решил вот так просто отдавать что-то дешевле. Не верю, что за счет весьма стабильного бизнеса СУБД решили поднимать производство T3. Я хочу показать, что причина тут в другом.
Все, пора показать данные:



Читать дальше...

STU.Part 3

На мероприятии мне удалось побывать на ..лекциях по тому как работает Unix. Мне они очень понравились, хотя и не все оказалось понятно. Читал их волшебный дядька, который сделал из скучной в общем то темы целый концерт и вызвал желание разобраться/вспомнить некоторые вещи. Например он сказал что в качестве первого шага для того чтобы понять что происходит, он запускает vmstat. Тут одна проблема, вывод vmstat очень сложно понимать, он требует реальных знаний данной ОС. В качестве примера приведу колонку %wait for IO. В Linux сейчас эта колонка называется wa.Читаем man и видим:
"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle"
Так вот дядька и сказал, что не нулевой Wait for IO не говорит о проблемах с I/O, а также нулевой I/O не гарантирует, что их нет. Что за колонка такая по которой ничего сказать нельзя -) ? Для начала, что нам хотел сказать man: на самом деле процессор не тратит реального времени на ожидания ввода-вывода, и если ему есть что делать то он занимается реальной работой, отвлекаясь по прерываниям чтобы посмотреть не пришли ли ему данные с устройства. Поясню еще - если процесс блокируется в ожидании ввода-вывода, то дальше идти он не может. Но возможно в системе есть и другие процессы которым нужно процессорное время. Поэтому, если у нас загруженная система, то Wait for IO может быть близким к 0, независимо от от объема ввода-вывода. С другой стороны, если системе делать нечего, то время которое процессор провел в ожидании реального ввода-вывода будет зафиксировано не в idle а в wa.
Даже это (как мне кажется разумное) объяснение не отвечает на вопрос - куда смотреть то чтобы понять есть проблемы с вводом - выводом или нет ? Похоже что для начала нужно смотреть в колонку b - blocked for IO (это я так думаю), а вот что думает man Linux:
"b: The number of processes in uninterruptible sleep."
а документация AIX: "This includes threads that are waiting on filesystem I/O or threads that have been suspended due to memory load control." Что же смотреть в колонке b ? если там постоянно больше процессов чем у вас устройств ввода-вывода (дисков или путей) - это знак. Скорее всего, да - все такие проблемы найдутся.
По моим воспоминаниям, на Solaris был магический барьер - если wait for IO больше 40%, то ищи проблем с вводом выводом, если меньше - то скорее их не найдешь. Число магическое, объяснить я его никак не могу. Конечно же окончательный диагноз дает iostat с service time (<10 ms отлично, больше 100ms все уже умерли) и средней длиной очереди на устройство.

Ну и напоследок, когда я подешел к дядьке и спросил в чем по его мнению разница между swapping и paging, он стал кричать на меня что такого слова swapping нет вообще -) Наверно поэтому она не встречается в описании команды vmstat на AIX, а на Linux (и Solaris) есть цельные колонки -)). На дальше всех пошли пижоны из Apple и я не нашел vmstat на Mac, а vm_stat вообще не содержит колонок, а которых я писал -))


Читать дальше...

STU.Part 2


Оперативной памяти почти всегда не хватает если у Вас есть база данных.  Поэтому инженеры начали борьбу за то чтобы ее стало больше -)

На сегодня существует два подхода:

Если у Вас Solaris или Linux (кто бы сомневался в таком ограничении) то вы можете использовать Smart Flash Cache – если очень коротко, то это кэш второго уровня (L2) для Buffer Cache.   Чтобы влючить эту возможность вам понадобится установить параметры db_flash_cache_file (указать устройство) и db_flash_cache_size (указать размер).  Конечно устройство должно быть быстрее наших дисков и поэтому предполагается использовать solid state storage devices.  Подождите, даже SSD  нам придется поставить не один, потому что один диск  скорее всего  не вытянет нужную нам производительность !
Дальше читая документацию мы находим фразу  “can improve response time for read intensive OLTP application”. Мне кажется что это ключевой момент, потому что если приложение write intensive то этот механизм может сделать даже хуже.

Все равно, отличная инженерная идея !  L2 кэш давно  используется при разработке процессоров и пора уже было давно сделать что-нибудь подобное.  К сожалению, даже после прочтения этого поста я не понял как это работает
 - каков алгоритм вытеснения из памяти во  FC
-  скорее всего процесс если ему нужны данные и они во FC считывает их и они попадают обратно во buffer cache. Но так ли это ?


Теперь перечитайте этот пост сначала – все это волшебство только для Solaris и Linux.
Инженеры IBM нанесли ответный удар – технология называется Active Memory Expansion. Они предложили .. сжимать страницы основной памяти, но не все конечно, а какую-то их часть (дальше я предполагаю что и не все типы страниц памяти сжимаются). Для приложения эта технология абсолютна прозрачна и приложения просто видят больше памяти, чем физически есть на машине.







После запуска специальной команды awepat вы сможете увидеть (если у Вас AIX 6 или 7 и машина класса 750 или выше)

True Memory                    : 1.00 GB
SMT Threads                    : 4
Active Memory Expansion        : Enabled
Target Expanded Memory Size    : 1.50 GB
Target Memory Expansion factor : 1.60


Что в моей системе (LPAR) только 1 Gb физической памяти, которая превратилась в 1.5 Gb видимой приложению. Постойте, но чтобы сжимать память нам нужна процессорная мощность?  Да, конечно и поэтому в следующем разделе awepat вы видите

Expansion    Modeled True      Modeled              CPU Usage
Factor       Memory Size       Memory Gain          Estimate
---------    -------------     ------------------   -----------
     1.00          1.50 GB         0.00 KB [  0%]   0.00 [  0%]
     1.20          1.25 GB       256.00 MB [ 20%]   0.00 [  0%]
     1.60          1.00 GB       512.00 MB [ 50%]   0.18 [ 18%] << CURRENT CONFIG



что доп 512 Mb памяти нам будут стоить  18% от одного  ядра. Нагрузка эта распределяется между всеми ядрами LPAR. Посмотреть % реальной занятости ядер обслуживанием этого механизма  можно с помощью lparstat -c.  Сколько же нам попросить доп памяти по отношению к основной чтобы не убить процессоры ?   По оценкам инженеров пока рекомендуется использовать Expansion factor в районе 1.2 – 1.5.

Два дополнительных замечания:
- все таки это новая возможность и пока рекомендуется ее использовать для test & dev.
- попробовать эту возможность можно совершенно бесплатно и легально в течении 60 дней, ничего покупать не нужно -). А вот дальше придется доплатить, но конечно меньше чем за реальную память.
Как вы видите, теперь ответить на вопрос а сколько у меня памяти отведено  под Oracle весьма непросто. Скажу больше, что на AIX с учетом Active Memory Expantion & Active Memory Sharing вывод команды vmstat может довести до истерики -))) Но об этом на семинаре 29 апреля -)






Читать дальше...

STU.Part 1

Пока Игорь Мельников собирал по деревням Шотландии DataPump файлы, мне повезло попасть на Oracle Open World IBM System Technical University.  Первым делом я поинтересовался где у них тут наш Рачок. К удивлению не только не набили морду, но и ...показали как узел RAC переезжает с сервера c Power 6 процессорами на сервер c Power 7 без остановки. Называется эта технология Partition Live Mobility (PLM). Все что пришлось подготовить на новой машине с Power 7 процессорами - это сконфигурить пути, чтобы переехавший узел смог увидеть voting диски и собственно базу.  Из видео (хотя видно плохо) видно что транзации на всем кластере замерли буквально на секунду и продолжили раньше. Никакие механизмы FAN или TAF тут не работали -  PLM background скопировал память, затем остановил Partition на одном сервере и тут же поднял на другом. TCP/IP соединения не разрывались. Остановка на секунду была очевидно из-за cluster freeze - в момент переезда кластер подумал уж не отвалились ли нода, но потом удачно вернул ее обратно. Конечно эта демонстрация была не вполне честной, по честному было необходимо остановить узел, но ковбойский метод сработал.



Читать дальше...

Datapump in RAC

При импорте или экспорте данных в среде RAC возникает проблема расположения файлов дампов. Они должны быть "видны" всем узлам кластера. Есть конечно возможность положить dmp-файлы на локальный диск одного узла, и далее установить некластерный режим работы Datapump: параметр CLUSTER=N утилит expdp и impdp, либо через параметр SERVICE_NAME=<имя сервиса>.
Где "имя сервиса" - сервис жестко "привязанный" только к одной ноде.

Но если файлы дампов для импорта занимают около 1Тб (уже сжаты с помощью Advanced Compression), и на локальных дисках мало свободного пространства?
Да и объем данных большой, и хотелось бы для импорта использовать все узлы кластера.
В случае Exadata Database Machine именно так и происходит ...

Но у нас есть возможность хранить dmp-файлы DataPump прямо на ASM !
Осталось только перед импортом скопировать dmp-файлы в отдельный каталог на дисковой группе ASM.

Сказано - сделано.
1. Создаем шаблон на ASM для хранения dmp-файлов (отключаем зеркалирование - для экономии места и располагаем файлы на внутренних дорожках диска):

ALTER DISKGROUP FRA ADD TEMPLATE my_dpdump_template ATTRIBUTES (UNPROTECTED COLD FINE); 

2. Создаем каталог на ASM для хранения dmp-файлов:
ALTER DISKGROUP FRA ADD DIRECTORY '+FRA/orcl/dpdump';

3. Создаем каталог (объект directory) в БД:
 CREATE OR REPLACE DIRECTORY MY_DUMP_DIR as '+FRA(my_dpdump_template)/orcl/dpdump';
обратите внимание, что для файлов каталога используется созданный на 1-ом шаге шаблон.

4. Теперь можно скопировать в этот каталог файл с помощью утилиты asmcmd (/u01/dump - это промежуточный каталог на локальном диске узла):
ASMCMD> cd +FRA/orcl/dpdump
ASMCMD> cp /u01/dump/appfull01.dmp ./
copying /u01/dump/appfull01.dmp -> +FRA/orcl/dpdump/appfull01.dmp
ASMCMD> ls -l
Type Redund Striped Time Sys Name
N appfull01.dmp => +FRA/ASM/DUMPSET/appfull01.dmp.260.747620627

как видите реально в каталоге dpdump присутствует ссылка на файл +FRA/ASM/DUMPSET.
Все правильно, но почему в каталоге ASM, а не orcl ?
Утилита asmcmd работает от имени экземпляра ASM и не знает к какому экземпляру относится ваш файл !
И так просто переложить его в правильное место (+FRA/orcl/dumpset) не получится ...

Выход простой: для копирования dmp-файлов нужно использовать пакет dbms_file_transfer:
create or replace directory MY_SRC_DIR  as '/u01/dump';
begin
dbms_file_transfer.copy_file(source_directory_object => 'MY_SRC_DIR',
source_file_name => 'appfull01.dmp',
destination_directory_object => 'MY_DUMP_DIR',
destination_file_name => 'appfull01.dmp');
end;
/

Теперь все нормально:

ASMCMD> cd +FRA/orcl/dpdump
ASMCMD> ls -l
Type Redund Striped Time Sys Name
N appfull01.dmp => +FRA/ORCL/DUMPSET/COPY_FILE_0_0.260.747621645
ASMCMD>

Обратите внимание что системное имя файла на ASM теперь имеет другой "говорящий" вид.

Дальше осталось автоматизировать этот процесс для всех файлов dumpset-а, то есть написать скрипт для правильного копирования всех файлов дампа...

На фотографии запечатлен процесс импорта данных на Exadata X2-8 в центре тестирования в г.Линлитгоу, Шотландия (Linlithgow, Scotland), зеленые лампочки ячеек хранения очень красиво переливаются. :-)

После завершения импорта и построения индексов - БД заняла на дисках ~10Тб, и началось тестирование. Но это уже другая история ...


Читать дальше...

Oracle Database 11g R2 XE Beta

Oracle Database 11g R2 (11.2.0.2) Express Edition Beta уже доступен для скачивания!

Документация доступна по этой ссылке.

Oracle Database 11g XE доступен только для двух платформ: Linux x64 и Windows x86.
Все ограничения остались прежними кроме одного: размер БД может занимать 11Gb, а не 4Gb как в предыдущем релизе.


Читать дальше...

Все на System z !




Wow ! 11gR2 выпустили на System Z !  Поскольку по времени это совпало с объявлением про Intanium то очевидно рекомендация Oracle для владельцев Intanium - это System z, не так ли   ?

Update 1. Mama mia ! "each Oracle ACE will receive a half-rack Exadata and Exalogic package for their labs" !


Читать дальше...

без комментариев

Источник: http://www.linkedin.com/company/oracle/statistics

"Similar companies are based on the same industry and similar size"




Читать дальше...

Itanium - FYI

Вчера Oracle решил остановить разработку следующих версий под Itanium. Наиболее взвешенное объяснение я нашел здесь - если коротко, то Microsoft и Red Hat прекратили поддержку Itanium еще раньше. Но HP тоже прав - так бросать заказчиков не следовало (см комментарий Романа).

Пока можете скачать себе в коллекцию последние версии базы под эту платформу -(
Update 1: Не знаю кому и верить: "We remain firmly committed to delivering a competitive, multi-generational roadmap for HP-UX and other operating system customers that run the Itanium architecture.", Paul Otellini, president and CEO of Intel Corporation.
Update 2: ААА, Ларри просто обиделся на вот это -)
Update 3: Парни держат слово, в MOS 742060.1 обещали выпустить версию для Itanium 15 марта 2011 года. Как в известном анекдоте "не получилось"...
“HP gets hit. Oracle’s database is a major workload on HP’s Itanium servers, with possibly up to 50% of HP’s flagship Superdome servers running Oracle. A public statement from Oracle that they will no longer develop their database software will be a major drag on sales for anyone considering a new Oracle project on HP-UX and will make customers and prospects nervous about other key ISV packages as well.”
“HP believes in fair and honest competition. Competition is good for customers, innovation and the marketplace. We are shocked that Oracle would put enterprises and governments at risk while costing them hundreds of millions of dollars in lost productivity in a shameless gambit to limit fair competition.”


Читать дальше...

про золушку

Предположим у нас есть 3 дисковые стойки по 12 дисков. Стойки "тупые", а потому мы ставим  ASM и создаем группу с Normal Redundancy. Думаю, пока возражений нет ? Затем у нас ..неожиданно выключается диск. Это полная ерунда, поскольку у нас ASM и данные обязательно зазеркалированы..ну, так  скажем на каких-то еще дисках. Внимание опрос - какова вероятность потери данных при выходе из строя следующего диска ?


Читать дальше...

читая TPC-C


Многие спрашивают, что же за  волшебный SuperCluster. Чтобы понять о чем дальше пойдет речь вам нужно прочитать пост "изучаем aнглийский вместе с Ларри". 
Итак, новый рекорд в TPC-C с весьма впечатляющими цифрами. Одновременно нам рассказывают про новый процессор T3, который в 2 раза производительнее старого,  Infiniband, новый Solaris 11 и Flash Array. 

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

Для этого рассмотрим два теста,
 старый: 7,646,486 tpmC, 384 ядра, UltraSPARC T2 Plus 1.6GH, Flash Array, 12 узлов RAC
  новый:  30,249,688 tpmC, 1728 ядер, SPARC T3 1.65GHz, Flash Array, 27 узлов RAC


Тот же Flash Array, тот же Solaris 10 (да-да, а вовсе не Solaris 11), версия RAC изменилась с 11gR1 до 11gR2 но документированных  улучшений в производительности я не видел. Что странно, на диаграммах в обоих случаях в качестве RAC Network стоит 10GbE switch (?). Я думал, что в качестве интерконнекта использовался Infiniband ..(поправьте меня если я что-то пропустил)

По человечески вроде бы результаты понятно - 30/7 ~ 4 , т.е. мы взяли в 2 раза больше узлов (27/12)  и в два раза более мощный процессор.

Теперь о странном: Если поделить число транзакций на ядро, то окажется, что новый T3 дает нам 17,505, старый T2  дает 19,912. Что совсем выглядит пугающее, в соседней строчке в том же TPC-C  Power 7 дает 53,990 (хоть и на другом приложении, но транзакции то одни и те же ).

Не внушает оптимизма и тот факт, что из $47 млн $22 млн стоит Flash Array (суммы до скидок, просто для того для того показать соотношение).

Flash Array (или SSD диски), Infiniband, 10Gg Ethernet - все это на данный момент практически стандартные компоненты, предлагаются многими вендорами.

Я остался в полном непонимании от применимости результатов теста supercluster  в реальной жизни. Т.е. решив увеличить результат, просто увеличили объем железа, удвоив стоимость. Мне кажется что supercluster это все таки победа больше маркетинга, играющего коэффициентами в processor core table.   Что, конечно же, не умаляет заслуг инженеров, все это собравших  -)


 Пока я вижу только одну хорошую новость - большее число узлов RAC смогло дать прирост производительности, а значит RAC все таки работает -)






Читать дальше...

Fish and chips

Несколько мелких улучшений в работе администратора СУБД: установка клиента, GUI, настройка ssh  и т.п.  Буду благодарен если в комментариях сообщите о своих улучшениях для каждодневной работы



Читать дальше...

listeners in 11gR2 RAC

Посмотрев   в listener.ora в на узле 11gR2 я сильно удивился.

Теперь там дословно написано вот это:

LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))))            # line added by Agent
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1))))                # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON                # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON              # line added by Agent

и появился файл endpoints_listener.ora

в котором написано вот это:

LISTENER_PROD01=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=prod01-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.25)(PORT=1521)(IP=FIRST))))          # line added by Agent



Мне не удалось найти в документации что такое endpoints_listener, что значит  ENABLE_GLOBAL**.   Если кто-нибудь меня ткнет в документацию - будет замечательно. Понятно, что теперь пользователи подсоединяются на scan и потом уже на listener  конкретной ноды, понятно что теперь нужно ставить local_listener на LISTENER (теперь имена листенеров одинаковы на всех узлах) а remote_listener на listener-scan, т.е. мне кажется я понимаю как это работает - но я не понимаю что значат слова в конфигурационых файлах и зачем их два.

Появилось несколько новых параметров команды srvctl

prod01-> srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node prod01
prod01-> srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): prod02,prod01
prod01-> srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node prod01


И наконец феерическое:


Bug 8595653
The endpoints_listener.ora file is used to get endpoints of the default listener when data files of Oracle Database 11g Release 1 or Oracle Database 10g Release 2 are created on a release 11.2 Oracle ASM disk group. However, when the listener is modified (such as changing a port number using Network Configuration Assistant), the endpoints_listener.ora file is not updated.

Что такое scan достаточно хорошо описано тут.  Но сегодня мне задали идиотский вопрос - если один из scan listener'ов упадет ведь клиенты будут попадать на него и получать tcp/ip timeout ? Оказывается нет, потому что scan живет поверх scan vip ip, его поднимут другие узлы и клиент быстро поймет что его там никто не ждет. Теперь на public interface любого узла кластера живет 3 адреса - vip, scan vip, public этого узла. Никто не отменял что в случае падения узла, на выживших появится vip с упавшего.  Объяснить почему у меня на интерфейсе 4 новых ip адреса я затруднился ограничившись техническим термином "так надо, главное ничего не менять".

Коротко - scan приляпали сверху ко всем,  что существовало в 10g/11gR1 постаравшись все сохранить. Обяъяснить зачем все это нужно стало практически нереально. Просто ничего не трогайте после установки  -)

Update 1: совсем просмотрел во что installer поставил параметры local/remote listener. Теперь их хотя бы стали ставить при установке (на самом деле деваться некуда), но вот почему не через tnsnames, опять загадка -)


SQL> show parameter local

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string      (DESCRIPTION=(ADDRESS_LIST=(AD
                                                 DRESS=(PROTOCOL=TCP)(HOST=192.
                                                 168.1.31)(PORT=1521))))

SQL> show parameter remote

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_dependencies_mode             string      TIMESTAMP
remote_listener                      string      rac-scan.us.oracle.com:1521


Читать дальше...

wget magic

Чтобы избежать закачки дистрибутива на свою машину, а затем передачи на сервер удобно воспользоваться wget. Однако OTN требует, чтобы перед загрузкой вы согласились с OTN License Agreement, на что wget без вас пойти не может.


Ниже приведена команда для загрузки дистрибутива Oracle Database:

wget --http-user=dsvolk --http-password=*** --load-cookies=cookies.txt http://download.oracle.com/otn/linux/oracle10g/10201/10201_database_linux32.zip


остается маленькая проблемка  - откуда взять cookies.txt ?

Если вы пользуетесь FireFox то для того чтобы получить файл cookies вам может пригодится вот такой plugin.


А чтобы скачать  патч мне не понадобились даже cookies (но все еще нужен  логин и пароль)

wget --http-user=dsvolk --http-password=***  --no-check-certificate --output-document=p6810189_10204_Linux-x86-64.zip "https://updates.oracle.com/Orion/Services/download/p6810189_10204_Linux-x86-64.zip?aru=10029612&patch_file=p6810189_10204_Linux-x86-64.zip"

Внимательные читатели заметят не только мой пароль на OTN, но и также что я скачивал 32-х битную версию БД с 64 битным патчем к ней -)




Читать дальше...

Сплайсинг в PL/SQL через синонимы - в мирных целях

В компьютерных вирусах широко применяется технология сплайсинга. Смысл которой заключается в подмене кода вызываемой функции, выполнив свои действия, вирус должен уметь выполнить оригинальный код функции.
Сплайсинг может быть использован в PL/SQL. Для этого лучше всего использовать локальные синонимы.

Внимание: автор и редакция ответственности за ваши действия НЕ несут. См. УК РФ - статья 273. Создание, использование и распространение вредоносных программ для ЭВМ. Материал предоставлен исключительно в ознакомительных целях, для защиты функционала, а также его расширения для существующих приложений.

Итак, предположим у нас есть приложение, которое не поддерживает RAC. В коде приложения формируется анонимный блок порождающий множество job-ов через пакет DBMS_JOB. Перед этим приложение формирует входные данные для заданий в виде набора заполненных таблиц. При переходе в кластер происходит страшное: задания распределяются по узлам кластера, и происходит большая конкуренция с разных узлов за одни и теже сегменты.
Средствами пакета DBMS_JOB мы не можем заставить задания выполняться на том же узле, на котором они были порождены: этот пакет не "понимает" сервисов, и вообще говоря начиная с 10g НЕ рекомендуется к использованию.

Ну хорошо: мы можем в параметре instance процедуры dbms_job.submit выставить номер текущего узла:
dbms_job.submit(instance => dbms_utility.current_instance,...  ...  ...
Но если код приложения недоступен ?
В этом случае на помощь приходит сплайсинг: мы можем создать свой пакет (например под названием dbms_job_rac) который полностью повторяет спецификацию пакета dbms_job, а тело пакета мы определим по своему - в данном случае вызывая методы из DBMS_JOB и выставляя параметр instance в номер текущего узла.
Затем остается только создать локальный синоним в схеме приложения:
create synonym dbms_job for dbms_job_rac; 

На этом все - теперь приложение не подозревая об этом, будет вызывать наш пакет!

Этот способ работает, даже если код PL/SQL приложения зашифрован или приложение проверяет его контрольную сумму - ведь PL/SQL код НЕ меняется. Перехват управления производится без модификации исходного кода!

Как-то можно противостоять этому красивому перехвату ?
Да - очень просто: указывать вызов системного пакета напрямую, а не через синоним:
SYS.dbms_job.submit( ...
Любой инструмент может быть как орудием созидания, так и орудием разрушения ... :-)


Читать дальше...

setup OpenFiler 2.3 as paravirtualized guest for Oracle VM 2.2

OpenFiler - бесплатный и весьма популярный продукт обеспечивающий вам доступ к вашим дискам по iSCSI, NFS, SAMBA. Я широко его использую как при построении демонстраций, так и как домашний NAS.  При попытке скачать его вы обнаружите что существует даже вариант "Xen domU Filesystem", однако радость будет не долгой - это не образ машины, а  действительно tar с файловой системой.  Есть также вариант называющийся ISO image, но поставить его в Oracle VM не получается, virt-install не находит нужных файлов.

Для того, чтобы превратить tar с файловой системой  в настоящий paravirtualized guest мне понадобились:
  • установленный Oracle VM (2.x), Linux ovm1.us.oracle.com 2.6.18-128.2.1.4.25.el5xen
  • Openfiler 2.3  tar.gz
  • Любая версия Oracle Linux (iso или DVD образ), Я использовал OEL 5 Update 3. 
  • Петр Фатьянов

Шаги который нам придется пройти

- сделать новую вирутальную машину
- распаковать в ней tar с Openfiler
- настроить grub


Читать дальше...

Oracle VM - install gcc

Достаточно часто при попытке использовать Oracle VM после успешной инсталляции оказывается, что необходимо скомпилировать драйвер сетевой карты или multipath драйвер. И драйвер находится на сайте производителя, вот только gcc не устанавливается по умолчанию с Oracle VM. Вот что нужно сделать чтобы исправить это недоразумение (для версии Oracle VM 2.2 ядро 2.6.18-128.2.1.4.25.el5xen):

1. Необходимо с установочного диска Oracle VM (директория Server) установить пакеты:

kernel-devel-2.6.18-128.2.1.4.25.el5.i686.rpm
kernel-ovs-devel-2.6.18-128.2.1.4.25.el5.i686.rpm

2. Далее необходимо скачать с http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/3/base/i386

 compat-glibc-2.3.4-2.26.i386.rpm
 compat-glibc-headers-2.3.4-2.26.i386.rpm
 cpp-4.1.2-44.el5.i386.rpm
 gcc-4.1.2-44.el5.i386.rpm
 glibc-devel-2.5-34.i386.rpm
 glibc-headers-2.5-34.i386.rpm
 kernel-headers-2.6.18-128.el5.i386.rpm
 libgomp-4.3.2-7.el5.i386.rpm 

Обратите внимание, что в моем случае мне понадобились 32 битные версии rpm.


Читать дальше...

семинар RuOUG, 18 апреля

Пожалуйста обратите внимание, что на сайте RuOUG скоро появится -) объявление о следующем семинаре RuOUG, 18 апреля - RuOUG spring seminar. Одним из докладчиков с темой RAC/ASM будет Alex Gorbachev, Oracle ACE Director, Pythian Group. Что немаловажно, Alex будет рассказывать по-русски.  

Я постараюсь приготовить демонстрацию по  защите БД как от логических ошибок так и от аппаратных сбоев   с помощью Oracle Clusterware (бесплатный продукт). Пока деталей больше сообщить не могу, я работаю над демонстрацией/презентацией. 

Если вы хотите выступить свяжитесь пожалуйста со мной или Андреем Криушиным. Обратите внимание, чтобы принять участие нужно быть участником RuOUG (ссылка на регистрацию).

Update 1. Место проведения:  офисе Oracle, в Москве: Пресненская наб 10, (Краснопресненская наб 18), Москва-Сити, бизнес-центр "Башня на Набережной" , Блок С,  9 этаж. 

Update 2. Регистрация будет по email, детали я ожидаю увидеть на сайте RuOUG.


Читать дальше...

Изучаем английский вместе с Ларри

Меня что-то вдруг потянуло к английскому языку :^) В качестве упражнения по освоению английского рекомендую посмотреть свежее видео Ларри (от 2 декабря 2010), где он аннонсирует TPC World Record Database Performance on New SPARC Supercluster и можество всякой аппаратной всячины. Одно из существенных достоинств видео в том, что мышкой можно включить captions (субтитры) в левом верхнем углу и смотреть на полном экране. Если картинка не видна, то скорее всего у Вас не установлен Adobe Flash Player. На Mac и PC должно работать.

Мне нравится как Лари рассказывает. Он умеет говорить просто о сложном и он замечательный спикер, поэтому видео будет интересно тем, кто интересуется ведением презентаций и работой с аудиторией. Да, Стив Джобс круче. Но там уже религия.

Если Вам понравилось это упражнение, то можете также прослушать нетленную речь про Cloud Computing (см. малелький черный прямоугольник по ссылке), текст которой я написал в комментарии.

This is a Playlist Player.

P.S. Специально для Сергея Качановского (он же ranger) и др.: В этом видео нет никаких откровений про "практику продуктивных систем", про технические детали и про лечение ORA-600. Также, пост писался с постоянной мыслью о необходимости уменьшить уровень пафоса :^)

UPDATE: Технические детали опубликованы на сайте www.tpc.org


Читать дальше...

Happy New (Christmas, Year, Ramadan)

Респект проекту Wikipedia: "Это пятый по популярности сайт в мире. Другие четыре разработаны и содержатся при помощи многомиллиардных инвестиций, огромных штатов корпораций и неустанного маркетинга". Пожалуйста прочитайте это. Помните, что один человек все еще может победить корпорации и инвестиции. Я считаю эту победу гораздо важнее создания этих самых корпораций.

Теперь о достижениях за этот год:
  • В уходящем году нам с вами удавалось делать то, что не может делать маркетинг Oracle несмотря ни на какие вложения - интересные события. Спасибо вам, вы научили нас их делать.
  • Timur Akhmadeev (пользуясь случаем поздравляю !) получил номинацию oakie ! Один человек, без маркетинга и инвестиций....
  • И наконец этот блог ( я написал блог, потому что эту номинацию формально может получить только не сотрудник Oracle и получил номинацию формально я, но это формальность) получил номинацию Oracle ACE. Это удивительно, потому что этот блог ведется на русском языке, а номинацию присваивает Oracle HQ.
Поздравляю всех с наступающим новым годом ! В первую очередь я желаю всем администраторам, которым придется дежурить в эту новогоднюю ночь, чтобы эта смена прошла спокойно. Чтобы backup'ы закончились во время и без ошибок, чтобы место не закончилось ну и так далее. Вы знаете о чем я :))

PS
Я только что закончил почти 6-ти часовой maintenance Exadata half rack, высоконагруженную production систему. Мы перегружали cells, одну за другой, при этом БД оставалась on-line. Все что я вам говорил на презентациях, мне пришлось проделать руками. Я благодарен судьбе за этот шанс. Это был мой новогодний подарок :)


Читать дальше...

Домодедово - epic fail again

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




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


Читать дальше...