Happy New Year 2009 !

Дорогие друзья !

Этим сообщением я постараюсь подвести некоторые итоги уходящего 2008 года и немного рассказать о наших планах на 2009 год.

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

Во вторых, я отдельно хотел бы поблагодарить всех, кто приходил на наши семинары в течении 2008 года. Большое Вам спасибо за Ваши вопросы, они были интересными. Отдельно спасибо за Ваши анкеты, они были оригинальными :)

2008 год стартовал для меня с лучшего семинара в мире, Optimising Oracle, который читает Джонатан Люис. Некоторые его идеи легли потом в наши семинары. Некоторые еще нужно осознать :)

В феврале, 14-15 февраля провели первый в 2008 году RAC Deep Dive For Developers (DD4D).

Март, не скрою был посвещен изучению новых возможностей 11g, их презентации на родине Игоря Мельникова, а также составлению пилотного тренига по Oracle VM.

В апреле мы потрудились на славу. 1 апреля мы выезжали послушать, что расскажут наши гуру в ракостроении в Европе, 10-11 мы провели RAC DD4D в Москве, а уже 15 числа стартовал уникальный 3-х дневный семинар в Екатеринбурге.

В мае шла напряженная работа по переработка семинара RAC DD4D, сдача экзаменов, после которой захотелось немного освежиться.

В июне для прогулки была выбрана малопосещаемая речка Сумульта (Алтай), 5 KC.

30 июня прошло событие Database Options для технических специалистов, в Моске в отеле Мариотт. Теперь на все мероприятия заказываются вишневый сок и пиво. А опыт проведения этого мероприятия нам очень пригодился при создании нового семинара.

В июле мы совершили невозможное - мы перехали на 11gRAC и Oracle VM. Значительно ускорились и стабилизировались наши демонстрации.

В августе мы опять проводили семинар RAC DD4D, только уже в формате 1:1. Напряжение от подготовки было столь велико, что пришлось проехать в Киргизию, для сбора новых сил - М. Нарын -Чонг-Кемин, 5 КС.

Впечатления от просмотра порогов навели на мысль, что не RAC'ом единым только живет современный ораклист. И в сентябре мы открываем новый семинар Database Options Details (DBOD). В то время, всего лишь однодневный, хоть и 11 часовой :)

В октябре нам пришлось съездить на Open World, что-бы таки понять, что такое Exadata. После возвращения мы выпускаем RAC DD4D LAB Edition. В октябре, же мы впервые записываем наш семинар RAC DD4D на видео, переводим его на английский язык. Надеемся, что позовут в какую-нибудь теплую страну прочитать наш семинар.

Ноябрь, 5 число - Oracle Tech Forum. На мой взгляд, получилась одна из самых технических сессий DB & Options за последние несколько лет.

Декабрь, 4-5. После просмотра Гранд-Каньона, стало ясно что DBOD достоин двух дней и мы сделали это. 8 спикеров, практически постоянно демонстрации опций, и высочайшие (не побоюсь этого слова) оценки слушателей.

Усилия по продвижению RAC не прошли впустую. Если до 2008 года наиболее востребованной была опция Partitioning, то сейчас, это RAC. Это факт.

2009 год для нас - год мировых путешествий. Сергей Данилов совершит мировое турне с семинаром Options are not Optional. Мы проведем семинар RAC DD4D на Украине (уже обсудили меню в комментариях). Прочие страны пока отстают. Очень жду заявки от Казахстана, например.

Мы представим на Ваш суд 2 совершенно новых семинара - один по upgrade, другой ....RAC для ..начальников. Мы научим их ...ставить RAC. Звучит фантастично ? :))))

C наступающим вас 2009 годом и до встречи на наших семинарах в новом году !

Надеюсь, Вам понравиться знаменитая мелодия In the Mood из кинофильма "Серенада солнечной долины", 1941 год, записанная Оркестром Глена Миллера.

UPDATE 1.
Действительно, так посмотришь, и не верится: что столько всего было за год сделано.
Сейчас у нас постепенно набирается новый материал (большей частью благодаря "трудным" вопросам слушателей). Поэтому в новом году вас ждет много интересного.
И конечно же, все мы в новом году будем жить в ожидании второго релиза (11.2) Oracle Database; по ее новым возможностям тоже будет сногшибательный контент ! :-)

Best regards
Igor Melnikov


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

LoadBalance 11.1.0.7 released!

В соответствии с roadmap-ом выпушено обновление утилиты LoadBalance, предназначенной для тестирования балансировки нагрузки в RAC.
Хотел бы напомнить, что в настоящий момент LoadBalance позволяет тестировать только connection-time балансировку.

Перечень новых возможностей LoadBalance 11.1.0.7 :

1) Параметр SHOWTIME.
Расчет и показ среднего времени (в миллисекундах) каждого узла затраченного на создание одной сессии , - позволяет оценить уровень отклика листенера и экземпляра в момент открытия соединения;

2) Параметр RND_TIMEOUT.
Этот параметр позволяет задать случайный интервал (в секундах) между созданиями сессий. Напр: RND_TIMEOUT=10,60
Это позволяет избежать "шторма" сессий на листенеры, и более приближено к реальной ситуации, когда пользователи случайным образом открывают/закрывают сессии;

3) Параметр COUNT, теперь может иметь значение MAX.
Напр: COUNT=MAX
В этом случае число сессий не ограничено, и LoadBalance будет открывать соединения до появления ошибки. Это позволяет оценить: сколько максимально сессий может "держать" кластер или Single-Node экземпляр;

4) Параметр KEEP_CONNECT.
Этот параметр позволяет управлять удержанием сессий в LoadBalance. По умолчанию, после открытия соединения, LoadBalance удерживает ее до завершения работы. С помощью параметра KEEP_CONNECT можно заставить утилиту закрывать сессию сразу после открытия . Этот режим удобен для длительного тестирования балансировки (можно задавать сколько угодно большое число сессий в параметре COUNT) и мониторинга поведения узлов;

5) Параметр DETAIL.
Позволяет выводить дополнительную информацию о кластере: параметры сервиса, перечень активных узлов и т.д.

6) Параметр IGNORE.
Этот параметр позволяет опционально игнорировать ошибки, возникающие при открытии соединения. Иногда это бывает полезно, например: для проверки кластера при сильном "шторме" сессий.

7) Как обычно, зафиксированы некоторые баги...

Следует отметить, что утилиту LoadBalance можно использовать и для Single-Instance базы данных.

Скачать утилиту можно по этой ссылке .

LoadBalance имеет множество недокументированных параметров, которые позволяют осуществлять некоторые продвинутые тесты кластера. Зарегистрированные пользователи, а это участники семинара RAC DD4D, будут иметь к ним доступ. :-)

На мой взгляд, LoadBalance должен быть в арсенале каждого серьезного RAC-овода !
:-)


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

Как оформить заявку на OPTIONS ARE NOT OPTIONAL

Итак, Ваша организация является партнером Oracle и Ваши технические специалисты вполне неплохо разбираются в Oracle Database Options. Вполне может быть, что они уже побывали на наших семинарах DBOD и RAC DD4D, и вполне может быть, Ваши специалисты уже давно перешли в разряд гуру. Ваша организация может быть очень сильна с точки зрения продуктовой экспертизы. У Oracle есть такие партнеры - они сами кому хочешь технологические семинары сделают. Если так - поздравляем! Половина пути Вами пройдена. Но умеют ли в Вашей организации продавать Oracle Database Options?

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

Если менеджеры по продажам Вашей организации хотят получить релевантную информацию о Database Options именно с точки зрения продаж, то Вы можете отправить нам заявку, чтобы мы организвали для Вас мероприятие OPTIONS ARE NOT OPTIONAL. Это может быть индивидуальное мероприятие в Вашем офисе, и индивидуальное мероприятие в нашем офисе. Это может быть групповое мероприятие. Если Вы далеко, то это может быть Web-семинар. У нас есть для Вас все что угодно - all shapes and sizes.

Главное, обозначьте перед нами Вашу потребность. Дайте нам знать о себе, если у Вас есть желание повысить продажи Database Options в Вашей организации. Ни в коем случае не допускайте, чтобы менеджеры по продажам сидели в информационном вакууме (пока это происходит Вы просто теряете деньги). Если Вы чувствуете, что я написал про Ваш случай - оформите заявку!

Заявка это просто. Напишите мне короткое сообщение со своего рабочего адреса. Мой рабочий адрес: sergey.danilov гав-гав оракле тчк ком (если непонятно что это такое, то позвоните мне по телефону +7 (495) 2ЗЗ-821O и я продиктую по буквам. В сообщении укажите пожалуйста:

  • Тему письма OPTIONS ARE NOT OPTIONAL
  • Название организации, web сайт, где Вы базируетесь
  • Фамилию и Имя, контактный телефон (желательно мобильный)
  • Ваша должность в организации
  • Количество менеджеров по продажам в группе
  • Есть ли в Вашем офисе помещение, где можно провести такое мероприятие
После получения заявки мы свяжемся с Вами и организуем мероприятие, а заодно подключим к процессу машину партнерского отдела Oracle CIS.

Есть множество вариантов организоваться. Мы можем подъехать к Вам, Вы можете подъехать к нам. Можно посмотреть календарь ближайших групповых мероприятий. Есть Web-семинары и т.п.

Было бы желание. :^)


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

Как оформить заявку на семинары RAC DD4D, RAC DD4DBA, DBOD, DBUG

Я решил написать, как Вы можете гарантировать себе место на ближайших семинарах RAC DD4D, RAC DD4DBA, DBOD, DBUG. Этот способ подходит для всех, и для тех, кто работает в партнере Oracle, и для тех, кто работает у заказчика Oracle. Конечно, Вы можете просто зарегистрироваться в том момент, когда открывается регистрация, и Вас обязательно пригласят. Но не обязательно в этот раз :(( Приоритет отдается тем, кто или выступает с нами или напишет специальную заявку.

Для оформления заявки на определенный семинар (1 семинар = 1 заявка), напишете пожалуйста письмо мне (Dmitry.Volkov@оракл.ком) со своего рабочего адреса и укажите:

  • Тему письма DBOD.request или DD4D.request или DBUG.request или RACDD4DBA.request (в зависимости от того семинара, куда Вы хотите попасть)
  • Название организации, web сайт.
  • Customer Support Identifier - CSI.
  • Фамилию и Имя
  • Email
  • Контактный телефон (желательно мобильный)
  • Род ваших занятий (dba, developer, начальник, гуру)
  • Ваш опыт работы с Oracle (сколько лет, начиная с какой версии)
  • Текущие версии СУБД с которыми Вы работате
  • Текущие или предстоящие проекты, в которых Вы предполагаете использовать полученные знания. Этот пункт пожалуйста поподробнее. Обязательно название проекта, системы.
Я сохраню Ваше письмо, постараюсь немедленно связаться с Вами, и безусловно приглашу на ближайшее мероприятие.

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

Для семинара DBUG есть отдельное требование - написав заявку, вы соглашаетесь с тем, что мы Вам позвоним, и спросим как прошла миграция, про которую Вы нам написали.


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

Пример заполнения заявки.


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

Oracle Develop 2008 Hands On Labs Tutorials

Если Вы не смогли поехать на OpenWorld из-за слишком сильной занятости на проектах, то Вы наверняка пропустили не только Grand Canyon, но и лабораторные работы на Open World. И если с первым ничего уже не поделаешь, то второе можно исправить: Oracle Develop 2008 Hands On Labs Tutorials.

PS Я надеюсь, что Вы уже зарегистрировались на Oracle Develop ? По секрету - место осталось уже совсем не много, я лично получил уже подтверждение, что могу приходить. Зачем мне это было нужно ? Тсс... Сотрудников не пускают на лабы. А я в этот день возьму отгул...и пройду на Database Track :)


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

OPTIONS ARE NOT OPTIONAL - простыми словами о сложном

К нам часто приходят менеджеры по продажам и просят сделать отдельную серию мероприятий про Oracle Database Options. Семинары DBOD и RAC DD4D с их глубоко техническим контентом слишком тяжелы для легкоранимой натуры продавцов. "Сделайте нам качественное мероприятие про технологии, только чтобы в нем ничего не было про технологии", говорят нам сейлы, и их можно понять, поэтому мы разработали специальную серию мероприятий для менеджеров по продажам.

Мы долго думали о названии. Название должно говорить о важности database options; о том, что бизнесу необходимы database options; о том, что database options уже используются нашими заказчиками. И мы придумали название: OPTIONS ARE NOT OPTIONAL.

Если в Вашей организации есть менеджеры по продажам Oracle, то сообщите им о мероприятиях OPTIONS ARE NOT OPTIONAL. Пусть приходят. Мы гарантируем, что им понравится.

На мероприятиях OPTIONS ARE NOT OPTIONAL мы рассказываем Вам о каждой опции с точки зрения ценности для бизнеса. Очень важно понимать, что история про то, зачем продукт нужен для бизнеса часто отличается от истории про то, как этот продукт устроен технически. Например, большинство людей покупают автомобиль потому, что он обеспечивает свободу от сложности передвижения, а не потому, что людям просто интересно как технически работает впрыск топлива, система охлаждения или коробка передач.

Календарь OPTIONS ARE NOT OPTIONAL на первый квартал 2009г.

Не удобен календарь? -- Оформите заявку.


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

RAC и Active Data Guard

Все время RAC сравнивали с Data Guard. Оба решения используются в том числе и для защиты от сбоя одного компьютера. Иногда пользователи считают, что могут и подождать активации Standby, не стоит платить денег за лицензии RAC. Даже аргумент, что после активации Standby требуется разогрев кеша БД, иногда не принимается в расчет. Пожалуй, основным аргументом в пользу RAC всегда было то, что машина, стоящая под Standby, не несет полезной нагрузки - т.е. простаивала.

И тут появляется опция Enterprise Edition Active Data Guard (ADG). Пожалуйста, открывайте на чтение Standby, в этот же момент продолжают накатываться изменения с primary. На семинаре DBOD я показывал, что в режиме Maximum Availbility задержка буквально несколько секунд. И теперь Вы можете запускать свои отчеты на Active Data Guard, Ваша Standby машина не простаивает !

Давайте рассмотрим в этой связи два вопроса - что нам делать с приложением, и сколько стоят лицензии Oracle в этих двух вариантах.

Про приложение

И для RAC и для ADG приложение должно быть разбито на сервисы. Вы конечно знаете, что сервисы, с одной стороны представляют собой логическую абстракцию общей нагрузки, с другой стороны сервисы заводятся в БД и OCR.

В конфигурации RAC сервисы используются для балансировки нагрузки, в ADG - с тем, чтобы поднять в триггере on startup database в зависимости от роли (primary, standby) либо RW сервисы, либо RO.

Про стоимость

RAC традиционно стоит 50% от стоимости Enterprise Edition. ADG значительно скромнее ~ 12%

Вместо заключения

Несомненно, ADG позволяет Вам масштабировать Ваше приложение. Но, только в том случае, если Ваша нагрузка RO составляет значимую часть от вашей общей нагрузки. Если нагрузка RO увеличится...Вы конечно можете поставить еще один Standby, но тут придется заплатить и за лицензии EE и за лицензии ADG. А если увеличится нагрузка RW ? Упс. Не очень гибко получается. К тому же, Вы же помните, что ADG это опция только EE. А что, если Ваш заказчик захочет приобрести Standart Edition (SE) ? На SE нет Data Guard. Т.е. Вы можете создать standby но логи Вам придется передавать вручную. И тут, (surprise, surprise !) хочется вспомнить, что RAC для Standart Edition - бесплатен. По моим представлениям, из-за этого, стоит сейчас весь код сразу разрабатывать с учетом особенностей RAC.

Тогда путь развития ИС заказчиков видится мне так:

  • Поставлем Standart Edition. Хочется надежности - пожалуйста RAC. Пока лицензируется только SE.
  • Не помещаемся в ограничения SE - Пожалуйста EE. Хочется надежности - лицензируем Standby
  • Не хватает производительности - покупаем Active Data Guard.
  • Опять не хватает - покупаем RAC.
Каждая инвестиция приносит значительное увеличение производительности. Но только ссли в системе сразу были заложены сервисы.

Более того, чтобы "научить" приложения отрабатывать потерю узла в RAC или primary в конфигурации с data guard нужно сделать одно и тоже. И тоже самое, для HA кластера. Напишу отдельно, как именно научить приложение отрабатывать потери текущего экземпляра.


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

One day trip


Что действует на русского человека за границей больше всего ? Правильно, таблички "нельзя". Фотоотчет.

Прочитав, что ну никак нельзя в один день спускать к Colorado River c North Rim и возвращаться обратно,

Grand Canyon National Park - Day Hiking (U.S. National Park Service): "North Kaibab Trail"

"Under no circumstances should you attempt to hike from the rim to the river and back in one day!
"

решил я - ну какой русский не любит быстрой ходьбы ? И сходил таки. Я начал спускаться, достаточно поздно, в 9 утра. На середине спуска , навстречу мне поднимались люди, который шли уже по несколько часов (4-5) что меня удивило. В мои планы это не входило :). Не было у меня столько времени. Ведь я хотел еще искупаться в Colorado. Что конечно опять таки запрещено :). Спуск прошел гладко, везде была вода, каждый кто поднимался, здоровался с тем, кто спускался. Небольшой отдых внизу и маршбросок к просмотру Colorado c скал. Красиво. Стало жарко. Просмотрел тропу которая ведет к самой реке. Прикинул время спуска. 1 час, максимум 1.15. Щазз. Тропа резко ухудшилась. После 1.5 часов спуска занервничал и спросил у встречного где река. Получил ответ, что идти еще час. Однозначно подъем в темноте. Все плохо. Но цель была слишком близка. Дошел за 20 минут. На реке отдыхала группа. Залез купаться, они подошли посмотреть, что я делаю. Замахал им рукой, давайте мол со мной. Их как ветром сдуло, сразу убежали по тропе дальше. Нет ну прохладно конечно, но не ужас-ужас. Ну и ладно. Посмотрел на сплав. Посидел на песке. Прикончил последнюю половинку банана. Время не ждет. Надо подниматься. Около 4.5 часов непрерывного подъема. Соревновался с местными спортсменами. Крепкие парни я вам доложу. 2-е убежали от меня, хотя большая часть группы отстала. Спасает, что каждые 1.5 мили можно набрать воды. Хотя после нескольких литров понимаешь, что пить дальше опасно. Надо просто полоскать горло. Поднялся на самом закате. На внешние раздражители не реагировал. Смог добраться до кемпинга. Поел совсем немного. Лег в палатку и много думал над загадочной русской душой.

Так мы отдыхаем. Видели бы вы, что мы делаем за деньги ! (C)

PS
Уже только потом я прочитал что спускался (и поднимался) я с высоты 1800 метров, что вполне прилично. Для одного дня.


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

RAC customers

Вот два наших заказчика на 11g RAC:
Один из них, Pacific Gas and Electric Company (PG&E) смигрировал с IBM DB2 on a mainframe на "scalable clustered configuration". Там очень популярно написано про экономическую выгоду их перехода.

Другой, National Ignition Facility & Photon Science (NIF) хранит данные в RAC в secure files. Объем - "we'll generate hundreds of terabytes each year". Поэтому им так полезна Advanced Compression, про которую так блестяще рассказывал Игорь Мельников на DBOD.

Update 1.
Не успел я написать про первых двух, как мне рассказали про Fidelity National Financial
10gR2 RAC, который накопил "50 million PDF/XML Title Repository documents"


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

Как Oracle CIS провел лето...

Как Oracle CIS провел лето. (Записал Анатолий Бачин).


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

Oracle JeOS

Наткнулся на Oracle EL JeOS - Oracle Enterprise Linux JeOS for building Oracle VM templates.

Скачал. Оказалось, что это специальный rpm, чтобы делать Oracle VM template, без самого Oracle VM. Можно задать желаемые параметры будущей ОС, указать какие пакеты поставить, создать виртуальные диски. Можно указать скрипты, которые кастомизируют образ при первом запуске (спросят hostname, ip адрес, что-то еще)

В общем-то предназначается для ISV, которые хотят распространять свое приложение.

Скачать можно здесь. Загадкой осталось, JeOS делает паравиртуализированные образы или full виртуализированные. В Oracle VM у virtinstall есть ключ для указания, а тут нет.

Да, я могу Вам напомнить, какие виртуальные среды поддерживаются Oracle, а какие нет ?


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

Active Data Guard and TEMP tablespace

Вадим Гусев (Vadim.Gousev) задался целью выяснить, где происходят сортировки, когда мы переводим наш 11g Active Standby в состояние Read Only.

Как Вы конечно знаете, переведя БД в состояние Read Only мы можем запускать на ней отчеты, при этом продолжается применение redo. Таким образом наши отчеты видят актуальные данные (в зависимости от настроек с запозданием от нескольких секунд до 1 red log).

Во первых Вадим обнаружил, что TEMP datafile находится в состоянии READ WRITE

 SQL> select name, enabled from  v$tempfile
NAME ENABLED
---------------------------------- ----------
/u01/app/oracle/oradata/stby/temp01.dbf READ WRITE


Далее, запустив достаточно большой запрос под пользователем sys, требующий сортировки он увидел, что


SQL> SELECT s.username, u.tablespace, u.contents, u.extents, u.blocks
FROM v$session s, v$sort_usage u
WHERE s.saddr=u.session_addr;
USERNAME TABLESPACE CONTENTS EXTENTS BLOCKS
------------------- ----------------------- ------- --------- ----------
SYS TEMP TEMPORARARY 6 768




И наконец, включив трассировку он уидел событие ожидания direct path wite temp


grep -i direct /u01/app/oracle/diag/rdbms/stby/stby/trace/stby_ora_5896_10046.trc
WAIT #1: nam='direct path write temp' ela= 49 file number=201 first dba=434953 block cnt=15 obj#=18 tim=1229005511408393
WAIT #1: nam='direct path write temp' ela= 4 file number=201 first dba=434968 block cnt=15 obj#=18 tim=1229005511425026
WAIT #1: nam='direct path write temp' ela= 6 file number=201 first dba=434998 block cnt=15 obj#=18 tim=1229005511437579
WAIT #1: nam='direct path write temp' ela= 3 file number=201 first dba=435013 block cnt=15 obj#=18 tim=1229005511452812

Сомнений, нет TEMP используется на WRITE, когда наша Standby открыта на Read Only.

Если Вы экспериментировали с active duplicate for Standby, Вы конечно обратили внимание, что TEMP не передается, а создается на стороне Standby. И наконец, если Вам для отчетов нужны временные таблицы, Вам придется создать dblink на как какую-то другую БД, например на собсвенную primary. Создать конечно же еще на primary, чтобы он переехал на Standby.

UPDATE 1.

По мотивам комментариев
Limitations of a Read-only Database
"When executing on a read-only database, you must commit or roll back any in-progress transaction that involves one database link before you use another database link. This is true even if you execute a generic SELECT statement on the first database link and the transaction is currently read-only."

Давайте создадим global temporary table на primary

SQL> conn scott/tiger@orcl
Connected.
SQL> create global temporary table test_gtt(id number(4) primary key) on commit preserve rows;
Table created.


Выполним аналитический запрос на standby и сохраним его на primary в GTT.

SQL> conn scott/tiger@stby
Connected.
SQL> insert into test_gtt@db_orcl select empno from emp;

14 rows created.
SQL> commit;
Commit complete.


Затем запустим наш отчет, показывающий результат процедуры на предыдущем шаге.

SQL> select * from test_gtt@db_orcl;
ID
----------
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934

14 rows selected.
SQL>




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

9i to 11g migration

Если у Вас совершенно случайно есть 400 баз данных на 9i, и Вы все еще стесняетесь их мигрировать на 11g то эта ссылка для Вас:


9i_to_11g_real_world_customer_experience.pdf (объект «application/pdf»)

Очень подробно по шагам изложено, что сделано, какой получен эффект. Когда, какой параметр поставлен, какие нужно создать табличные пространства, указываются также детали миграции с 10g, решения проблем с time zone.

Есть пример использования RAT, SQL Profile, dbms_sqltune. Очень подробно. Буквально по шагам.

Крайне рекомендую.


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

Oracle Develop

Впервые Oracle Develop в России !

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

* Более 35 технологических сессий и классов, проводимых гуру Oracle.
* Выступления лидеров разработки Oracle – Марка Таусенда ( Mark Townsend ) и Ларри Кейбла ( Larry Cable )
* Секции, посвященные Java и rich enterprise applications, сервис-ориентированым архитектурам и базам данных
* Общение с экспертами и вашими коллегами

Дополнительную информацию можно узнать на сайте Oracle: www.oracle.com/events/oracledevelop/moscow/index.html

Регистрация: www.eventreg.com/oracle/develop/moscow

Кодовое слово для регистрации: DEVRUS

Адрес: Москва, площадь Европы, 2, Гостиница РЭДИССОН СЛАВЯНСКАЯ

Не пропустите первый в России форум для разработчиков Oracle Develop - Регистрируйтесь сейчас!

UPDATE 1. Я надеюсь, Вы заметили, что среди авторов появилась Юлия Богданова. Анонсы будущих мероприятий будут появлятся в этом блоге теперь регулярно.


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

DBOD-2, отчет

Завершилось наше мероприятие Database Options Details (2 Days). Cсылка на презентации и демонстрации (22 Mb, архив rar), Ссылка на видео (RAT, Exadata. Сергей Томин, 113 Мб, архив rar), на все фотографии (21 Mb, архив rar). Пароль сообщался на мероприятии.

Немного статистики - мы получили 260 заявок на мероприятие. Но смогли пригласить только 80 слушателей. Разработчиков и администраторов примерно одинаково, и они составляют 90% от всех слушателей. 10% слушателей используют 8i, 25% слушателей используют 9i, 45% - 10g, 10% - 11g. Остальные воздержались.

Некоторые фотографии (by Сергей Данилов).

По традиции, выбранные отзывы. Оригинальная стилистика сохранена.

Что понравилось:

  • Отлично изложено именно для технических специалистов. Живые демо на работающей базе. (АКБ Авангард)
  • На вопросы из зала быстро и четко дается ответ, даже если ответ "не знаю" (СБСОФТ).
  • Наличие демонстраций с реальными примерами. (ФОРС-БС)
  • Сбалансированность презентаций и демонстраций по времени (Kraftway)
  • Высокая квалификация докладчиков и доступное изложение материала (FORS)
  • Специально пришел второй раз, был в сентябре. демонстрации и презентации гораздо лучше. Spatial - в отдельный семинар ! Наталья Гусева - восторг ! (Капитал - Софт)
  • Все, особенно доклад по OLAP (ЗАО РиТ)
  • Уровень докладов и докладчиков великолепен (Протек)
  • Живой стиль общения (Банк Москвы)
  • Понравилось огромное кол-во демонстраций (АРСТЕЛ Консалтинг)
  • Все презентации были информативны и полезны (БОСС "Кадровые системы")

Что не понравилось
(курсив мой):
  • В названии не было указано, что это опции Enterprise Edition. Без комментариев :)
  • Душно, правда хорошо кормили. Да как обычно кормили :)
  • Где сувениры ? Были, не стоило рано убегать.

Ссылки: cайт Натальи Гусевой (спикера, доклад был награжден аплодисментами и ценным подарком), и ссылка на сайт Рахат Агиветовой (слушательницы). Рахат, не отставайте. Ждем Вас с докладом. Сайт Александра Рындина. Сайт Андрея Пивоварова.

Oracle® Database Licensing Information. Обратите внимание на таблицу Feature Availability by Edition, из которой можно выяснить, например, что SQL Plan Management можно использовать только в Enterprise Edition.

Все прайс-листы Oracle. Технологический прайс-лист. Прайс-лист по Exadata.

Очень интересная дисскуссия по поводу OLTP, Exadata, FLAS SSD в блоге Kevin Closson, сотрудника Oracle.


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

11g - информация для Вашего руководства

Если Вы захотите склонить свое начальство или начальство Ваших заказчиков к миграции на 11g Вам понадобятся красивые картинки с ответом на вопрос - чем же 11g лучше, чем 10g и 9i ?


Не хочу вдаваться в техническую дискуссию - картинки для Большого начальства. Красивые. Подробностей их получения у меня нет. Однако, такие вещи публикуют только после тестов, это точно.

Вы найдете еще красивые слайды в презентации Andrew Mendelsohn, Senior Vice President Database Server Technologies. Также Вам могут пригодиться высказывания заказчиков про 11g (англ.)


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

ASM - to be or not to be ?

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

В книге Oracle Automatic Storage Management Bill Bridge пишет, что идея ASM возникла у него в 1996 году, когда он работал в проекте по внедрению Oracle Video Server. У них возникли проблемы с производительностью, из за того, что часть дисков оказалась перегружена, а часть простаивала. Тогда, идея, чтобы БД сама автоматически распределяла экстенты между всеми дисками показалась ему отличной.

В 1996 году еще не было Linux LVM (так думает википедея), SUN Microsystems еще не раздавала Solaris Volume Manager, а Windows еще не умела зеркалировать диски (так думаю я).

С тех пор, ОС сделали большой шаг вперед, и многие содержат встроенные средства зеркалирования и балансировки нагрузки между дисками. Но каждая ОС обладает своим особенным volume manager, а значит его нужно изучать.

ASM дает нам возможность использовать кросс-платформенное средство хранения наших файлов Oracle (данные, redo, archive log, control, backup. Все кроме binaries). А значит, время вложенное в ASM для администратора не пропадет, при изменении платформы.


Если функции зеркалирования и балансировки нагрузки выполняет Ваш умный дисковый массив, стоит ли Вам использовать ASM ? Стоит, но разумно. Стоит поручить массиву работу, которую он выполнить лучше чем софтверное решение, и при этом не потребит CPU вашего сервера БД. Т.е. в ASM нужно выдать 1 lun и создать на нем одну группу external redundancy для данных (возможно еще одну для FRA). Почему все таки не создать на этом lun обычную файловую систему ? Как видно из картинки, ASM минует несколько уровней системных вызовов, а поэтому окажется эффективнее. По производительности ASM приближается к производительности сырых (raw) устройств.

Когда стоит не использовать ASM ? Если у Вас куплен, например, Veritas Storage Foundation, Oracle Disk Manager, у Вас всегда используется только одна ОС, накоплен многолетний опыт работы с Veritas, очень серьезная по нагрузке БД - я бы рекомендовал продолжить работать с Veritas. Там есть некоторые приятные возможности по работе с группами, которых нет в ASM. Хочу уточнить, что ASM бесплатен, в отличии от весьма серьезных затрат на лицензии Veritas.

Еще один аргумент в защиту ASM - если ваша single instance уже использует ASM, то переход в RAC или на Exadata для Вас будет значительно облегчен.

Можно построить даже extended cluster используя ASM, а не покупая дорогостоящих дисковых подсистем с опциями синхронизации между площадками.

Если вы добавите диск в конфигурацию дисковой группы, ASM произведет перераспределение нагрузки между дисками. При этом, вы можете указать степень влияния процесса перераспределения на существующую систему. Насколько я принимаю, делать такое в ONLINE умеют только аппаратные массивы класса midrange и выше.

Несколько фактов использования ASM (Статистика основана на нашей внутренней информации. Пользователи могу использовать или не использовать ASM не уведомляя Oracle):

  • В промышленной эксплуатации с 2004 года
  • 65% инсталляций RAC используют ASM
  • 25% исталляций 10g используют ASM

Много VLDB баз данных объемом до 10TB используют ASM.

Примеры серьезных инсталляций:
  • Sprint - 300 TB data
  • Amazon – 150 TB data


Здесь вы найдете массу технических деталей по ASM.

Ребята из CERN озаботились, а вдруг что-то случиться с заголовками дисков, где ASM хранит свою конфигурацию и надо будет достать данные. И разобрались, что к чему.


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

Redo Transport Compression for Data Guard ASYNC

Как Вы знаете, в 11g осуществляется компрессия redo при передаче на standby, но только во время преодоления отставания (gap resolution). Понятно, что хочется компрессировать redo при передаче и в нормальном режиме, чтобы не допустить этого самого отставания (gap)

Появилась замечательная Note:729551.1: Redo Transport Compression in a Data Guard Environment.


Для того, чтобы включить компрессию нужно установить атрибут в log_archive_dest_x

LOG_ARCHIVE_DEST_2='SERVICE=stdb ASYNC COMPRESSION=ENABLE DB_UNIQUE_NAME=stdb'

и установить параметр:
_REDO_TRANSPORT_COMPRESS_ALL=TRUE


Если используется Data Guard Broker то можно указать такой синтаксис
DGMGRL> EDIT DATABASE 'boston' SET PROPERTY 'RedoCompression' = ENABLE;

(параметр _REDO_TRANSPORT_COMPRESS_ALL должен быть установлен)


Хочу обратить Ваше внимание, что согласно ноте, это работает только для асинхронного режима
(asynchronous redo transport mode)

Также в ноте, есть любопытное замечание - что указание атрибута MAX_CONNECTIONS не дает преимуществ после включения компрессии при передачи redo.


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


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

Совместный семинар Oracle и RDTEX

28 ноября Oracle Сonsulting и компания РДТЕХ проводят совместный семинар
"Миграция на новую версию СУБД Oracle. Методика и опыт реализации в многофилиальных
компаниях".

Семинар ориентирован на руководителей IT-подразделений крупных холдингов и компаний,
имеющих филиальную сеть.

Регистрация на сайте РДТЕХ: http://www.rdtex.ru/win/root/event20081128.html


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

Exadata Storage Server, part 2

Exadata Storage Server, part 1 .

Наверное, самое интересное техническим специалистам, а как именно происходит фильтрация данных, как именно Exadata возвращает меньше данных, чем обычный дисковый массив ?

В английской терминологии этот процесс еще называют Predicate Offload или Smart Scan.

Оптимизатор может использовать режим обращения Predicate Offload только, если запрос использует Direct Read Full table scan и таблица расположена на дисковой группе, которая состоит из дисков Exadata. Обычно, Direct Read производиться, используя Parallel Query. В Parallel Query один процесс выполняет роль координатора, другие (PQ slaves) выполняют собственно чтение. PQ slave, определяет фильтр и набор за писей, который ему нужно прочитать. Если это возможно, вместо кода чтения direct path вызывается код взаимодействия с Exadata (речь идет о kernel code path). Этот код, с помощью ASM, переводит имена сегментов в диски, смещения, необходимый объем для чтения. Дальше открывается специальный поток, в котором эти данные передаются на Exadata. (если у нас несколько cell, это также легко определить с помощью метаданных ASM. Таким образом правильный набор команд посылается нужному cell)

Процесс CELLSRV на стороне Exadata, получает поток команд на чтение и необходимый фильтр. Далее с помощью библиотеки из состава ядра Oracle он выполняет необходимую фильтрацию и возвращает результат. Результат - это только необходимые нам записи и колонки. Я где-то прочитал, что на самом деле это блоки БД, которые содержат только нужные данные, но не подтвердить, не опровегнуть этого утверждения не могу.

На самом деле, процесс конечно более сложный, там целый протокол общения - iDB (Intelligent Database protocol). Из документов следует, что iDB работает через Reliable Datagram Sockets (RDSv3), не могу не процитировать "extremely fast low-latency protocol".

Что следует из вышеприведенного текста. Ячейкам Exadata (cell) нет необходимости общаться между собой в момент выполнения запроса. Каждая ячейка получает нужную ей команду.

Поскольку речь идет о Direct Path Read, нет проблемы c read consistency. Перед началом Direct Path Read всегда выполняется tablespace checkpoint object-checkpoint, т.е. сброс грязных блоков этого объекта.

Выполнение Join. Exadata не выполняет Join. Их по прежнему выполняет сервер СУБД. Но если идет связка очень большой и очень маленькой таблицы, почему бы не подсказать Exadata некоторые ключи для фильтрации ? :)

Презентация с OpenWorld утверждает, что Smart Scan умеет обрабатывать:

  • Uncommitted data and locked rows
  • Chained rows
  • Compressed tables
  • National Language Processing
  • Date arithmetic
  • Regular expression searches
  • Partitioned tables
А также:
  • Star join filtering is performed within Exadata storage cells
  • Dimension table predicates are transformed into filters that are applied to scan of fact table

Последнее утверждение совпадает с тем, что я написал чуть выше про Join.

Наконец еще несколько деталей. Я приводил график, из которого следует, что сильно ускоряется например tablespace creation. Можно предположить, что с сервера СУБД просто идет команда Exadata на разметку определенного дискового пространтсва, что конечно быстрее чем форматировать каждый блок .

Конечно, у Вас могут одновременно существовать дисковые группы ASM и на обычном массиве и на Exadata. Ограничение - в составе одной группы могут быть только диски одного типа (либо Exadata grid disk, либо обычнные). Но я пока не знаю, можно ли выполнять smart scan по таблице, чьи партиции лежат на разного типа группах ? Подозреваю, что нет.


Продолжение следует... Поговорим о миграции и стоимости. А пока, расскажите об этом блоге своему директору :))))))


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

Exadata Storage Server, part 1

Как я писал, на Open World было объявлено о Database Machine и Exadata Storage Server. Данная заметка, первая из серии, об Exadata.
Отмазка:
Сразу оговорюсь - моя цель написать максимально доступно, а значит, не всегда абсолютно технически верно. Также я сделал массу предположений, которые могут оказаться неправильными.

Благодаря служебному положению, у меня есть доступ к Exadata Storage Software, я потихоньку разбираюсь, как оно все работает.



Идея:
В хранилищах данных при обработке запросов между дисковым массивом и сервером СУБД передается слишком много данных. Даже если мы делаем выборку по определенному региону, нам нужно передать информацию блоками данных (8K или даже 16K) в которых нам полезными могут оказаться 100 или 200 байт. Все эти блоки данных нужно передать через SAN маршрутизаторы, SAN адаптеры, выделить под них память с ОС, отфильтровать не нужные нам записи и колонки. Что если уже на выходе дискового массива к нам придут только нужные записи и колонки ? Было бы неплохо. Но для этого дисковый массив должен знать структуру блока и немного понимать SQL.

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

Реализация:
Аппаратная реализация - мы собираем наш дисковый массив (storage server) из ячеек (cell), в каждой ячейке HP ProLiant DL180 G5, 12 дисков, 2 - 4-x ядерных процессора. Используя SAS диски, получаем 1.5 Tb, SATA - 3,3 Tb. В каждой ячейке 2 InfiniBand порта.



Программная реализация - Oracle Unbkreakable Linux + Oracle Exadata Storage Software. Последнее - это не ASM и не Database. Это некоторое новое ПО. Ниже я попытаюсь пояснить, что оно делает.

Раз Exadata - это дисковый массив, значит его нужно подключить к нашему серверу БД.
На сервере БД у нас есть ASM. Значит ASM должен увидеть нашу Exadata как внешний storage. Чтобы ASM увидел, мы создаем пару конфигурационных файлов в /etc/oracle/network/cell директории. А раз возникает новая функциональность, то поддерживается она только начиная с версии 11.1.0.7.

По пржнему, ASM выполняет всю свою работу - поддержание striping, mirroring, rebalancing и пр. БД выполняет свою - разбор SQL выражений, и определение, нельзя ли попросить storage выполнить ту или иную часть SQL запроса. Чтобы стало совершенно понятно, где что стоит, привожу картинку.



Обратите внимание на специальный уровень libcell & процесс diskmon.

Так что же умеет Oracle Exadata Storage Software ?

По крайне мере 3 вещи:

  • Зная структуру блока, обеспечивает фильтрацию данных и возвращение результата используя протокол iDB. Я думаю, что Exadata умеет фильтровать не сложные условия. Например если в условие влючить pl/sql функцию, то Exadata может вернуть данные, основвывая только на других предикатах, а окончательная фильтрация будет осуществляться на стороне сервера БД
  • Управление правами доступа между серверами БД и управление нагрузкой.
  • Реализует проверку блоков БД при вводе - выводе ( HARD инициатива)

Что же мы видим со стороны сервера БД ?

Вот такой план выполнения со словами TABLE ACCESS STORAGE FULL.


TTDEMO@orcl > select count(*) from cell_accounts;

COUNT(*)
----------
1000000

TTDEMO@orcl > select plan_table_output from table(dbms_xplan.display_cursor(null,null,'BASIC ROWS +NOTE +COST +PEEKED_BINDS'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
EXPLAINED SQL STATEMENT:
------------------------
select count(*) from cell_accounts

Plan hash value: 3481329747

-------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)|
-------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | 1504 (100)|
| 1 | SORT AGGREGATE | | 1 | |

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
| 2 | TABLE ACCESS STORAGE FULL| CELL_ACCOUNTS | 808K| 1504 (1)|
-------------------------------------------------------------------------


FAQ:

Q. Поддерживает ли Exadata Advanced Compression ?
A. Поскольку компрессия работает на уровне блока, для того, чтобы посмотреть в блок ничего не надо, достаточно знать как блок устроен. Поэтому, да.

Q. Поддерживает ли Exadata Advanced Security ?
A. Для того, чтобы расшифровать блок, нужно знать ключ. Пока нет описанного метода передачи ключей между серверов БД и Exadata. Поэтому, скорее, нет.


Q. Нужно ли модифицировать приложение, чтобы оно использовало Exadata Storage ?
A. Нет. Любое существующее приложение будет работать с Exadata как с обычным массивом. Для приложения существуют лишь таблицы, расположенные в табличных пространтсвах на группах ASM. Но приложение может получить прирост производительности, если выполняет тяжелые запросы к БД.

Благодарности: Андрею Пивоварову (Andrey.Pivovarov, oraclebi.ru) за мозговой штурм в части как-оно-там-работает-на-самом-деле.

Ссылки:
exadata-technical-whitepaper.pdf (объект «application/pdf»)
Kevin Closson blog

Осталась масса вопросов - какие приложения получат выигрыш, какие нет, как мигрировать, как смотреть планы и так далее.
Продолжение следует...


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

DBOD-2

UPDATE 4. Мы начали рассылку приглашений. Если Вы были в листе ожиданий, возможно Вы получите приглашение 2 раза, это нормально. Регистрироваться 2 раза не нужно :). Письма с подтверждением или отказом в регистрации придут от моего имени (Dmitry.Volkov@оракл.ком). Все это связано с временными (я надеюсь) проблемами с нашей системой регистрации. Надеюсь на Ваше понимание.

UPDATE 3 . Регистрация открыта !

Следующий семинар Database Options Details будет проходить 4-5 декабря в Москве.
Мероприятие будет открытым - и для партнёров и для заказчиков. Адрес мероприятия - Москва, Шлюзовая наб., дом 6, отель Катерина-Сити,этаж 8, зал «Нобель»

Приглашение на семинар. Ссылка на программу.
Правила регистрации. Регистрация.

Если у Вас есть проблемы с регистрацией, обращайтесь пожалуйста к Юлии Ивановой (julia.ivanova)


Основные изменения по сравнению с предыдущим событием:

  • Новая фотография двигателя Конкорд.
  • Событие стало 2-х дневным. Мы добавляем Spatial, Security, OLAP, Exadata (!)
  • Мы улучшили контент благодаря замечаниям слушателей первой версии.
  • Большее число спикеров - 8 (!) человек.

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

  1. Написать мне письмо, почему именно Вы должны попасть на событие: рассказать о каких-то существующих или планируемых проектов с 11g.
  2. Попасть на событие в качестве спикера. Темы - Ваш опыт использования опций в 11g/10g, опыт миграции на 11g. Присылайте тезисы доклада - договоримся.

PS
Спикеры с наших предыдущих событий получают место автоматически на все следующие события.


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

duplicate <..> for standby from active database

Я был совершенно уверен, что копирования БД через сеть идет в один поток. И был совершенно не прав. Так бывает, что запоминаешь информацию, и забываешь откуда ее услышал :(

Наш эксперт HA Вадим Гусев (Vadim.Gousev) убедительно показал мне, что это не так.
Действительно, после команды

rman target / auxiliary sys/oracle@stdb.ru.oracle.com

появляется одно соединение, а после выполнения

configure device type disk parallelism 2;
run {

duplicate target database for standby from active database;
}

их открывается 2. За сетевыми соединениями я следил с помощью команды

lsof -i | grep oracle | grep stdb

На standby появляются 2 сессии ожидающие передачи по сети.

select MACHINE, sid, serial#, WAIT_CLASS, WAIT_TIME from v$session;

dbsrv 139 4 Network 0
dbsrv 140 3 Network 0


Вот и строй после этого людям стенды. А они тебя еще и научат за это :))))))))))))))))))


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

Oracle and Flash Drive

Ребята из EMC выложили интересный ролик про их технологию Flash Drive. Обещают ускорение OLTP приложений в 30 раз.

К ролику прилагается более сдержанная в оценках white paper. Ответ Intel.

PS
Мне лично показалось интересным тот факт, что ролик выложен на YouTube. С одной стороны, такая информация должна появляться на официальном сайте. С другой стороны, если люди привыкли выкладывать свои "домашние" ролики на YouTube, почему не взять камеру и не записать 8 минутный ролик? Мне кажется будет потихоньку происходить размытие между корпоративным консерватизмом и реально удобными сервисами. Мы кстати, тоже имеем возможность записать какие-то части презентаций и выложить их на YouTube. Будет это интересно ?


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

Oracle Extended RAC Cluster on Oracle VM

Невероятной силы статья как собрать и протестировать Extended Cluster в домашних условиях:
Build Your Own Oracle Extended RAC Cluster on Oracle VM and Oracle Enterprise Linux

После такого собрать кластер может даже школьник. Написал ее кстати, если я правильно понял, аспирант :)

Единственное, что я не понял - как он вводит задержку, для эмуляции собсвенно расстояния. Этот момент описан, просто он остался пока мне непонятен. Буду благарен, если в комментариях появится ответ.


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

Spatial на русском

Александр Рындин (Alexander.Ryndin, Oracle CIS) начал вести блог по Spatial на русском языке.

Не расстрайивайтесь, если не сразу все поймете. Я вот, например полностью понял только пост про установку Linux, и то, потому, что там картинок много :))))))))

Spatial - серьезная тема....

Не пропустите мега-пост как скрестить Spatial и BI!

Александр будет выступать на семинаре Database Option Details, 4-5 декабря.


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

RAT perfomance overhead

И White Papers, и наша wiki считают, что performance overhead при использовании RAT, цитата - "обычно менее 5%". Давайте посмотрим, что это за магическое число и что имеется в виду под perfomance overhead.

Для того, чтобы разобраться как работает захват (Capture) рекомендую прочитать патент на RAT DATABASE WORKLOAD CAPTURE AND REPLAY ARCHITECTURE. Оказалось, что его читать интереснее, чем документацию.

Несомненно, рекомендуют прочитать в оригинале, вот несколько цитат из него:

"
Capture processes <..> may be implemented as separate concurrently executing processes or as concurrently executing threads of the same process, for example. <..> Capture processes <..> capture all workload that production database server receives from external entities
"
"
Data stored in these in-memory buffers is compressed and written out in batches to persistent storage
"
"
When executed, SQL SELECT statements may cause production database server to return <..> values that satisfy the criteria specified in the statements. <..> the captured workload includes selected values that are returned as a result of the execution of SQL SELECT statements.
"

OS - Linux dbsrv 2.6.18-53.1.13.9.1.el5xen
Hardware - HP Compaq 8510w
Oracle 11g (11.1.0.7)


Для начала несколько тестов. чтобы набрать фактов для дальнейших размышлений.

drop table t1;
create table t1 (
id number(10),
small_vc varchar2(10),
padding varchar2(1000)
)
;

create unique index t1_pk on t1(id);


Тест N1
1 сессия, commit вне цикла, один курсор

set timi on set time on begin for i in 1..100000 loop insert into t1 values(i, lpad(i,10), rpad('x',1000)); end loop; commit; end; /

160K данных в директории Capture. Разницу в производительности с включенным capture & выключенным я измерить не смог. Таким образом этот случай укладывается в выше приведённые 5 %.


Тест N2
commit в цикле, sql выражения генерим случайным образом (execute immediate). Объем директории с данными Capture вырос до 6 Mb (для сравнения, объем файла trc после включения event 10046 составляет 90 Mb). Вы видете, что объем захваченной информации вырос в 30 раз. На одной сессии я опять таки не смог измерить разницу в производительности. конкретной сессии.

declare random_str varchar2(500); sql_stmt varchar(1000); begin for i in 1..200000 loop select dbms_random.string('U', 10) into random_str from dual; sql_stmt := 'insert into t1 (id, small_vc, padding) values(' || to_char (i)|| ', lpad(' || to_char(i)|| ',10),'|| chr(39)|| random_str ||chr(39) ||' )'; execute immediate sql_stmt; commit; end loop; end; /

OK, теперь самое время понять, как это работает. Для начала, как работает захват нагрузки. < href="http://download.oracle.com/docs/cd/B28359_01/server.111/e12253/toc.htm">Oracle® Database Real Application Testing User's Guide прочитан, но ничего про процесс(ы) захвата нет. В init.ora ничего подобного нет. А сколько их нужно, чтобы сохранить нагрузку от 100 сессий ? А от 1000 ?

Решение приходит внезапно просто:

Я запускаю нагрузку, в top нахожу процесс пользователя oracle который генерит у меня > 90% загрузки процессора, далее запускаю команду lsof (list of open files)

/usr/sbin/lsof -p 7814

oracle 7814 oracle 10u REG 253,0 3801088 2251233 /tmp/wc/inst1/aa/wcr_4k57tan0027n6.rec

Среди вывода я вижу явно файл с записанной нагрузкой ! Конечно же, самой сессии проще всего записать свою нагрузку ! Дополнительным фактом может быть сообщение "not all sessions could flush their capture buffers" в alert.log

Итак, каждая сессия сама накапливает данные в буфере и сбрасывает его на диск. Размер буфера в памяти - согласно источнику внизу - 64K, по моим тестам, это - 128K. Именно на столько больше требовалось сессиям с включенным режимом захвата нагрузки.

Хочу отметит, что Механиз Capture не мешает работать трассировке. Т.е. Вы легко можете одновременно влючить в сессии трассировку и производить захват. Трассировка также будет производиться. Конечно, в реальной жизни так делать не стоит.

Теперь выводы:

0. Объем захватываемой информации прямо пропорционален тому, насколько правильно написано приложение.

1. Если у Вас правильно написанная OLTP система (использует bind переменные), не делает commit слишком часто, нет проблем с вводом выводом, вы правильно расположите директорию для захваченных данных на отдельном диске, у вас достаточно свободного CPU, вы будете захватывать не все подряд, а тщательно настроите фильтры - вы вполне можете получить потери производительности для приложения < 5%.

2. Все изменения в БД должны будут попасть теперь кроме redo logs еще и в захваченную нагрузку. Например, я 1024 раза вставил в таблицу случайную строку длиной 1024 байта и получил в файлах захваченной нагрузки 1 Mb информации. Если у Вас система DW , загружающая информацию 10-ками гигабайт - вся эта информация будет еще раз записана на диск. Возможно, хорошая идея до захвата информации оценить ее объем, произведя mining redo, отобрав скажем нужные записи по пользователю. Ни о каких 5% тут конечно речь идти не будет. Удвоение ввода вывода окажется для вас гораздо дороже.

5. Несмотря на то, что в патенте прямо говориться об этом, мне не удалось увидеть, что capture собирает все полученные значения результата select'а. Скорее всего собирается лишь контрольная сумма, чтобы сказать совпадает результат запроса или нет. Т.е. для систем отчетности, которые делают большие сложные запросы и возможно возвращают на клиента большой result set Capture не будет представлять серьёзной опасности - объем собираемой информации относительно мал по сравнению с result set.

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




PS Вся информация получена из открытых источников. Хочу поблагодарить Марка Ривкина, за то, что он обратил мое внимание на цифру 5%.


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

Oracle TechForum-2008, 5 ноября 2008, материалы

UPDATE 1. Опубликованы ссылки на репортаж cnews о форуме и ссылки на материалы технологических классов TimesTen & DataIntegrator.

В данном сообщении опубликованы материалы Oracle TechForum-2008, касающиеся
тематики Oracle Database & Options.






По традиции, публикую некоторые вопросы, которые были нам заданы и ответы на них:

Q. Каков процент пользователей используют сейчас 11g ?
A. Едиственная статистика, которая нам доступна, это кол-во открытых SR на metalink. По ней 11g уже победила 8i, и старается догнать 9i. 10g, конечно, пока вне конкуренции. В Европе уже есть 11gRAC в production.

Q. В Чем отличие между OEL & RHEL ?
A. Отличия нет, версия ядра таже самая. Но используя OEL и купив поддержку, вы можете проводить обновления ОС с сервера обновлений Oracle. Что может оказаться очень полезно, особенно если у Вас промышленная БД. Конечно эти update будут включены в RHEL, но позже.

Q. Можно ли будет использовать опции, такие как Advanced Compression или TDE в случае использования Exadata ?
A. Мы специально не рассказывали про Exadata, поскольку не пробовали ее вживую. Из документов пока известно, что цитата "With Exadata, all database features and tools work just as they do with traditional non-Exadata storage". Я буду изучать этот вопрос.


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

Oracle TechForum-2008, 5 ноября 2008

UPDATE. Подтверждения регистрации на технические классы и на параллельные сессии были высланы 30 октября. Пожалуйста проверьте свою почту и настройки вашего спам-фильтра.

Пожалуйста не пропустите описание секции Database & Options, ссылку на регистрацию, описание технологических классов и многое другое в этом сообщении ниже !



Пожалуйста, не пропустите 5 ноября 2008 года и наш TechForum-2008 ! Некоторые подробности также приводит cnews.



Могу поделиться, что на секции "Oracle Database 11g - что там внутри" будет, как всегда, неожиданное вступительное слова Сергея Данилова, интересные выступления заказчиков, Active Data Guard, Real Application Testing (см. детали ниже).

Игорь Мельников покажет невероятный пример совместного использования наших опций, я попробую вставить свои 5 копеек в защиту CBO. Наши с Игорем выступления начнутся после 17 часов, так что пожалуйста, запасайтесь бутербродами. Контента у нас много.

И конечно же, не пропустите выступления Сергея Иванович Томина - это будет круто ! Потому, что это всегда круто ! :)

Я чуть не забыл, что также будут демонстрации возможностей нашей Database 11.1.0.7 !
Приходите.

Update 1. Ссылка на программу. Благодаря опечатке, в этой программе я выступаю 4 раза. Это шутка конечно же. Я надеюсь, что google проиндексирует эту страницу и я смогу ее показывать вместо резюме :))))))

Update 2. Ссылка на регистрацию.

Update 3. Дополненения к программе

Database and Options – что там внутри?

Для того, чтобы в реальных проектах успешно использовать все возможности баз данных Oracle, необходимо обладать максимально полной технической информацией о том, как работают опции сервера баз данных. В рамках сессии «Database and Options – что там внутри?» мы постараемся показать новые опции Oracle 11g со всех 360 градусов.

В рамках сессии будут в деталях рассмотрены такие опции, как Active Data Guard, Advanced Compression, Partitioning, RAC, Total Recall и другие. Вы увидите живые демонстрации работы Database Options 11g, которые будут производиться на виртуальной машине Oracle VM. Кроме этого, Вы сможете задать любые вопросы нашим техническим специалистам, познакомиться и завести контакты.

Сергей Томин. Эволюция! Эволюция! Эволюция!

Управление изменениями является наибольшей проблемой для всех нас. Постоянные изменения являются нормой, а не исключением. В данной презентации рассматриваются старые и новые возможности Oracle Database, позволяющие быстро и безопасно внедрять изменения в ваши системы.

Владимир Гусев: Active Data Guard

Active Data Guard – простое, высокопроизводительное решение, которое хранит актуальную копию производственной БД для перенаправления интенсивных запросов, отчетов и резервных копий с производственной базы данных на резервную.


Марк Ривкин: Real Application Testing: Снижение рисков при миграции со старых версий СУБД Oracle

Опция RAT позволяет оценить влияние различных изменений (в HW, OS, настройках Oracle, cтруктуре данных) на работу производственной системы еще до того, как эти изменения будут в нее внесены. Особенно это актуально для оценки влияния миграции на новые версии СУБД Oracle. Теперь можно заранее узнать не появятся ли новые ошибки после миграции, как изменится производительность системы и отдельных запросов после миграции. Можно выявить и заранее настроить ухудшившиеся после миграции SQL предложения

Выступление заказчика: Опыт использования Real Application Clusters

Технология Real Application Clusters позволяет запустить приложения на двух или более компьютерах одновременно, распараллелив нагрузку между ними. На этой сессии наш заказчик поделится с Вами опытом обеспечения высокой доступности бизнес-критичной системы при помощи этой технологии. Вы узнаете как внедрив RAC удалось получить отказоустойчивое решение, при этом оставив производительность в допустимых пределах и чтобы одновременно конечные пользователи ничего не заметили!

Выступление заказчика: Опыт использования Enterprise Manager Grid Control

Enterprise Manager Grid Control является централизованным, интегрированным средством управления экосистемой Oracle из окна web-навигатора. На этой сессии Вы получите информацию из первых рук о том, как удалось решить ряд задач управляемости больших корпоративных систем с помощью функциональности Grid Control. Заказчик приведет несколько реальных примеров использования Tuning Pack, Diagnostics Pack, Configuration Management Pack, Provisioning Pack и Data Masking Pack для решения своих бизнес задач.

Игорь Мельников:Оркестр опций Oracle Database 11g

Наши заказчики уже много слышали Oracle Database Options. Но чаще всего, в работе над проектами, стараются ограничиться лишь одной из них, считая задачу взаимодействия разных опций слишком сложной. В данной презентации Вы познакомитесь на реальном примере с одновременным использованием опций Partitioning, Advanced Compression и Transparent Data Encryption для достижения максимальной производительности и защищенности данных в Oracle Database.

Дмитрий Волков: Oracle Database 11g для профессионалов
Основные проблемы при миграции БД возникают с планами выполнения запросов. То, что отлаживалось не один месяц, может перестать работать в один момент в результате миграции. Именно это, на наш взгляд, часто является барьером к проведению миграции. Механизмы стабилизации планов 11g помогут Вам избежать этой проблемы. Оптимизатор в 11g также обладает расширенными возможностями по генерации оптимальных планов, а также предоставляет новые возможности по управлению статистикой оптимизатора.

Update 4. Описание технологических классов и регистрация на них !


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

RAC DD4D 22-23 октября, Москва, гостиница Катерина

Наш семинар RAC DD4D завершился сегодня. Программа семинара. Материалы семинара (только для слушателей, архиватор winrar 3.80 for windows, размер архива 23 Mb).

На фотографии - 2 Сергея Данилова, с разницей в 5 лет, 2 версии Oracle Database и 1 зуб мурости, но все с той же темой доклада - Oracle RAC.

Еще несколько фотографий (ч/б). Все фотографии (только для участников семинара, 25 Mb, Winrar 3.80 for Windows).














Судя по реакции слушателей семинар им очень понравился. Приведу несколько отзывов:

  • "Был на многих мероприятиях Oracle - это лучшее из всех", ЗАО РНТ
  • "Отличное содержание семинара. Крайне полезная информация, которую тяжело получить из public источников", CBOSS
  • "Очень понравились уровень подготовки докладчиков, выступления заказчиков", RSTYLE
  • "Интересный живой семинар, очень высокий уровень подготовки докладчиков, много примеров и best practice", ПЕТЕР-СЕРВИС
  • "Хорошо подготовленные выступления, ораторы - профессионалы своего дела, много информации, но не нудно, а иногда и весело", IBS
Со своей стороны хочу отметить очень грамотные и полные технических деталей выступления наших заказчиков, уже внедривших у себя RAC. Ребята нашли время для оформления своих достижений в презентации, нашли время приехать и выступить. Большое спасибо ! Эти презентации будут в открытом доступе после нашего TechForum.

Как всегда были на выстоте выступления Eвгения Горбоконенко и Андрей Криушина (RDTEX) и демострации Игоря Мельникова, что также отмечено в анкетах наших слушателей.

Были заданы достаточно интересные вопросы, на которые так просто во время выступления и не ответишь.



Первый из них связан с особенностями работы streams в RAC. Пока могу отослать к уже известному мне материалу в этом блоге. Второй связан с поддержкой RAC Weblogic'ом. Пока ответа, я не знаю, опубликую его здесь.

UPDATE 1.
В комментариях Timur приводит полезные ссылки на документацию Weblogic.

Попробую добавить также своих ссылок:
http://www.oracle.com/technology/products/database/clustering/pdf/bestpracticesforxaandrac.pdf
На странице 6 начинается раздел "BEA WebLogic Server 8.1 SP4 MultiPool Patch and Oracle RAC 10g" со слов "WebLogic Server 8.1 SP4 now provides a patch.." после которых ясно, что имеет смысл уточнить версию Weblogic. Далее из note 220970.1
"
The key item here is whether or not they are using XA. If they are using XA (Tuxedo for example), then they should use the DTP service with 10g Release 2. Have the customer review the Best Practices for using XA with RAC on OTN .
If it is not XA then services and Net Service Connection Load Balancing should work fine. They can tune aspects of the recovery such as instance recovery time. Using BEA, they do not get the advanced features such as Fast Connection Failover (FCF) and Runtime Connection Load Balancing
"
И далее цитата нашего product manager "Weblogic would recommend creating multi-pools with a pool for each instance and they will load balance/failover connections across the pools. However you will have to have workload static to an instance, you will not be able to take advantage of running a service on a subset of instances and failover to other instances. At this point, you are probably better off using the Weblogic multi-pools when using weblogic.
"
Еще цитата - "Weblogic не принимает FAN сообщений"

Продолжаю искать информацию....

UPDATE 2.
Презентация по perfomance tuning Streams 11g с OpenWorld. Упомянаются советы изменить commit_serialization, сделать buffered_queue. В деталях описан процесс мониторинга для 10g & 11g, а также как определить события ожидания (вы помните я рассказывал про них ?) для streams конфигурции.
Крайне рекомендуется к прочтению.

UPDATE 3.
Для слушателей выложены материалы семинара. См. Выше по тексту. Если Вы забыли логин/пароль напиши мне с email адреса, который указали при регистрации.


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

RAC DD4D news

Следующий семинар RAC DD4D будет проходить 22-23 октября в Москве, в отеле Катерина. Осталось несколько дней. Этот семинар для партнеров. В этот раз, прежде всего мы стараемся выполнить обещание перед теми, кому отказали в прошлые разы, и в первую очередь пригласили их. Есть шанс, что кто-то отказался и осталось еще несколько мест, я не знаю. Знает Виктория Бессонова (victoriya.bessonova), +7 495 641 1400.

Если вы можете объяснить почему мы должны пригласить именно Вас, можете написать мне (dmitry.volkov). У нас есть еще несколько свободных стульев в президиуме. Оттуда отлично все видно и слышно, кстати :))

Update 1.
Начало события в 10:00 оба дня. Мы всегда начинаем вовремя :)
Проезд: Москва, м. Павелецкая, Шлюзовая набережная д6/1, гостиница Катерина. Внимание, у нас будет зал Цельсиус ! Необходимо войти в гостиницу, пройти мимо лифтов, выйти в дверь на улицу и войти в дверь в здании напротив. Последняя агенда (subject to last minute change).


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

11.1.0.7

Выход патча 11.1.0.7 уже не новость, но лично для меня пока не очевидно, что он приносит нам нового. Пока я знаю 2 новости:

- Выход Universal Connection Pool for Java ( including JDBC, JNDI, LDAP, JCA, etc).
Attached a deprecation notice of the existing implicit connection cache, to
be included in Oracle Database 11g R2 Readme.

Oracle Database 11g UCP Downloads

Один из разработчиков на нашем семинаре жаловался на то, что существующий pool не удобен, что есть реализации удобнее. Видимо не он один это заметил, и вот ответ.

- в 11.1.0.7 уже включены необходимые патчи для использования SPA при upgrade с более ранних релизов (10.2.x.x., 9.2.0.8).



Обратите внимание, как можно использовать Database 11g при обновлениях с 9i на 10gR2. Replay Driver отправляет на выполнение запросы в 10g, а результат анализируется с помощью SPA на 11g. На систему 10g нужно ставить патчи, или иметь версию 10.2.0.4, на систему 11g нужно ставить патчи, или иметь версию 11.1.0.7



Metalink Notes:
560977.1
562899.1

На Oracle TechForum эту тему подробно раскроет Марк Ривкин (Mark.Rivkin).


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

Пакет UTL_FILE в RAC

Недавно один из партнеров-разработчиков задал мне вопрос относительно работы с пакетом UTL_FILE в среде RAC.
Действительно: вопрос интересный. Давайте разберемся.



В качестве тестового стенда я буду использовать наш RAC 11g VMWare Image.
Итак, для начала, мы создаем каталог на локальном диске первого узла:

   rac1-> mkdir /u01/app/oracle/admin/racdb/log_dir
rac1->


Затем создаем объект-директорию (directory) в СУБД:
  rac1-> sqlplus / as sysdba

SQL*Plus: Release 11.1.0.7.0 - Production on Sun Oct 12 12:18:06 2008

Copyright (c) 1982, 2008, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
With the Partitioning, Real Application Clusters and Real Application Testing options

SQL> create directory log_dir as '/u01/app/oracle/admin/racdb/log_dir';

Directory created.

SQL> grant read, write on directory log_dir to rscott;

Grant succeeded.

SQL> exit;


Теперь, подключившись к первому узлу, попробуем записать файл в наш каталог log_dir:
  C:\>sqlplus rscott/rtiger@rac1

SQL*Plus: Release 11.1.0.7.0 - Production on Sun Oct 12 12:22:33 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
With the Partitioning, Real Application Clusters and Real Application Testing options

SQL>
SQL> declare
2 v_xFile utl_file.file_type;
3 v_xLine varchar2(32) := 'Hello World!';
4 begin
5 v_xFile := utl_file.fopen('LOG_DIR', 'test.log' , 'a');
6
7 utl_file.put_line(v_xFile,v_xLine);
8
9 utl_file.fflush(v_xFile);
10 utl_file.fclose(v_xFile);
11 end;
12 /

PL/SQL procedure successfully completed.

SQL> exit


Проверим наш файл на файловой системе первого узла:

rac1-> more /u01/app/oracle/admin/racdb/log_dir/test.log
Hello World!
rac1->
как видите: пока никаких проблем!

Давайте попробуем записать в этот каталог файл с второго узла (здесь и далее вывод утилиты SQL+ сокращен для удобства восприятия):

C:\>sqlplus rscott/rtiger@rac2

SQL>
SQL> declare
2 v_xFile utl_file.file_type;
3 v_xLine varchar2(32) := 'Hello World!';
4 begin
5 v_xFile := utl_file.fopen('LOG_DIR', 'test.log' , 'a');
6
7 utl_file.put_line(v_xFile,v_xLine);
8
9 utl_file.fflush(v_xFile);
10 utl_file.fclose(v_xFile);
11 end;
12 /
declare
*
ERROR at line 1:
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 512
ORA-29283: invalid file operation
ORA-06512: at line 5
Мы получаем ошибку: на втором узле нет такого каталога в операционной системе.

Вывод: в RAC необходимо создавать каталоги на разделе файловой системе который виден сразу всем узлам кластера!
Вы можете возразить: "но ведь я могу создать одинаковые каталоги на всех узлах". Да, - можете, но для того, чтобы найти ваш файл, нужно будет обойти все узлы кластера, и поэтому работа с файлами сильно усложниться.

В нашем случае: создадим каталог в разделе который примонтирован к всем узлам; в качестве файловой системе используется OCFS:

rac1-> mkdir /ocfs/log_dir
rac1->

Переопределим нашу директорию LOG_DIR, чтобы она указывала на новый каталог

rac1-> sqlplus / as sysdba

SQL> create or replace directory log_dir as '/ocfs/log_dir';

Directory created.

И теперь снова попытаемся записать в этот каталог с второго узла:

C:\>sqlplus rscott/rtiger@rac2

SQL>
SQL> declare
2 v_xFile utl_file.file_type;
3 v_xLine varchar2(32) := 'Hello World!';
4 begin
5 v_xFile := utl_file.fopen('LOG_DIR', 'test.log' , 'a');
6
7 utl_file.put_line(v_xFile,v_xLine);
8
9 utl_file.fflush(v_xFile);
10 utl_file.fclose(v_xFile);
11 end;
12 /

PL/SQL procedure successfully completed.



Проверим наличие нашего файла с первого узла:

rac1-> more /ocfs/log_dir/test.log
Hello World!
rac1->
Все замечательно работает!

Но как быть, если в моем кластере нет разделяемого тома с кластерной файловой системой ?

Эту ситуацию мы рассмотрим в следующей серии (т.е. посте). :-)
Выход есть, и он не требует покупки и установки дополнительного софта !



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