Показаны сообщения с ярлыком 11g. Показать все сообщения
Показаны сообщения с ярлыком 11g. Показать все сообщения

AME

AME  - это сокращение от Active Memory Expansion, технология IBM, которая позволяет вам увеличить кол-во физической памяти на машине за счет..ее компрессии. IBM подошла к решению проблемы  ускорения ввода-вывода с неожиданной стороны - большинство предлагают использовать flash в качестве кэша,  IBM работает над тем, как поместить больше данных в память и таким образом уменьшить обращение   к дискам -). Немного о том,   почему обращение к DRAM и flash  - это две больше разницы:  доступ к flash имеет гораздо большую latency, потому  что мы вынуждены идти через путь обращения к обычному блочному устройству.

AME  работает начиная с Power 7 и AIX 6.1. Чтобы оценить возможный эффект - можете посмотреть мою презентацию. На примере приложения SwingBench я получил прирост кол-ва транзакций в 1.7 раза при сохранении времени отклика.




Важное дополнение: когда данная  технология появилась, компрессией занимался центральный процессор (Power 7). Если он простаивает из-за медленного ввода-вывода, имеет смысл его загрузить.

Но с выходом Power 7+ данная технология получила второе рождение. Дело в том, что в Power 7+ есть специальный акселератор (чип 842), задача которого обслуживать именно компрессию памяти.  Мое понимание (поправьте меня), что он просто стоит в разрыве между каналом обращения к памяти и делает компрессию совершенно прозрачной.

Фактически, если вы не используете этот механизм, вы не полностью задействуете возможности нового процессора!

Закончили с маркетингом, теперь серьезно. Во первых технология AME поддерживается только для Oracle 11.2. Во вторых, как только вы установили в профиле своей LPAR галочку AME и перегрузили LPAR вы увидите что у вас ...пропали страницы памяти 64K!

pagesize -fa
16M
4K

Небольшое исследование этой чертовщины показывает, что виновата переменная vmo vmm_mpsize_support которая магическим образом установилась в 0, вместо 1 (значение по умолчанию). vmo -F -r -o vmm_mpsize_support=1  после перезагрузки возвращает страницы 64K, но оказалось, что это не баг, а фича - сжимать страницы 64K может оказаться очень дорого, и поэтому, для спокойствия, в окружении Power 7  эти страницы просто выключали (страницы 16M не сжимаются по определению). Я провел несколько экспериментов с сжатием страниц 64K, но окончательный вывод, ускоряется ли приложение или замедляется, сделать мне не удалось. Я конечно же надеюсь на волшебный акселератор Power 7+, но к сожалению такого оборудования у меня пока нет.

В целом, на данный момент рекомендация звучит так - можно получить коэффициент сжатия от 1.5 до 3 (экстремальный случай), и это позволяет вам увеличить кол-во транзаций при сохранении времени отклика также в разы ( в 1.7 раза при коэффициенте 3 в моем тесте). 64K я бы с удовольствием потестировал бы на Power 7+ (вздыхает...)  и если пройдет успешно, переводим работу Oracle (и SGA и PGA) на страницы 64K, включаем AME  и получаем профит! 


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

Oaktable world

Пока в Москве идет снег (и не ходит снегоуборочная техника)  лучший способ провести время - посмотреть презентации (видео и ppt) одних из лучших технических специалистов - Cary Millsap, Jonathan Lewis, Tanel Poder (и это далеко не полный список!)

Эти презентации были записаны во время Oracle OpenWorld, но проводились в рамках  Oaktable World, в отдельном очень прикольном павильончике.

Очень, очень рекомендую!

PS
Картинка справа cлева взята из презентации Jonathan Lewis. 


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

DNFS. Часть 2

Я уже писал про DNFS. Так вот, оказалось, что в  мае этого года Oracle анонсировал Sun ZFS Backup Appliance -  специализированное решение для  резервного копирования Exadata.  Вы конечно не поверите, но судя по документации,  этот самый Appliance подключается к Exadata ...по NFS.  Over Infiniband конечно же. Мое понимание (пожалуйста поправьте меня), что там IP over Infiniband. И этот самый Appliance просто представляет собой большую группу FRA в ASM.  Так вот следуюший логический шаг - это выкинуть Infiniband и перейти на 10GBE. Надеюсь,  Oracle так и сделает через год.

Для безденежных донов мне кажется это самый лучший способ  осуществлять резервное копирование их систем на основе  Linux x86  - цеплять внешний NFS как дисковую группу FRA в ASM.  Кстати FRA можно далее копировать на ленту!


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

DNFS

DNFS (direct NFS)  это новая возможность 11gR2, и надеюсь вы о ней слышали.   Все, что содержало  слово NFS для меня, как  способ хранения файлов  данных,  не существовало. Oracle тоже устал от не оптимальности протокола NFS  и решил включить поддержку прямо в ядро СУБД.

Все это было здорово, но как то меня не зацепило.  На этой неделе я  несколько раз натыкался на то, как же DNFS это здорово.

Для начала была статья  от компании Netapp, по ходу которой  выясняется, что DNFS over 10GBE  чуть ли не однозначно "рвет" все остальные комбинации.  Совершенно техническая статья, масса подобностей и параметров. OET на графике это число транзакций.


Я тут же вспомнил, что с помощью DNFS можно даже сделать  клон базы данных, не используя возможность storage (если storage этого делать не умеет). И наконец, благодаря опечатке Oracle в одном из патчей, можно было попробовать Hybrid Columnar Compression на таблицах, подключенных по DNFS. Это была бы серьезная заявка на победу DNFS над всеми остальными, но Oracle, к сожалению, опечатку исправил (я так думаю). 

Если вам все это понравилось, то рекомендую вот эту заметку для начала. 

Все круто. Можно брать. Остается две заминочки:

 - не нашел сравнения DNFS с iSCSI.
- не понятно как устроить требуемую балансировку сетевых адаптеров (или это все гораздо ниже лежит и можно выдать уже агрегированный link для использования Oracle  ? )

Желающие поделиться опытом - you are welcome !



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

UEK + 11.2.0.3

Update 1: Oracle Linux 6.3 RPMs Now Available

Cегодня уже каждый ребенок знает, что такое Unbreakable  Enterprise Kernel (UEK)  и почему нужно использовать его и только его.  Но сухой язык фактов хотелось бы разбавить чем-нибудь красивым, и лучшего источника,  чем блок Vim Coekaerts не найти. Здесь Vim рассказывает как они делали рекорд TPC-C, а здесь показывает  новую и фантастическую возможность запуска нескольких виртуальных машин, формально требующих больше памяти, чем есть в dom0 (Требуется OVM 3  и UEK R2). Кстати, несколько лет назад я встречался с Vim на одном из семинаров, и скажу вам, что он находясь в ранге тогда еще самого обычного Vice President of Oracle приезжал рассказывать про то, зачем Oracle стал делать свой дистрибутив  Linux. В майке и джинсах. Он успевает делать карьеру занимаясь любимыми техническими вещами. Я немного ему завидую.

Но вернемся к теме поста. Так как понятно, что я хотел поставить СУБД, то решил проверить сертификацию. И вовсе не зря, оказывается.  11gR2 сертифицирована пока только с UEK R1.

Проверим, что там с 11gR2 64 bit

Все в порядке, UEK 2 сертифицирована. Это даже и лучше, серьезные парни используют только 64 bit версии!

Так как я экспериментировал, то  я  использовал последнюю версию  VirtualBox, где указал для своей виртуальной машины следующие настройки:


(хинт: если начать имя виртуальной машины с комбинации OEL VirtualBox сразу понимает, о чем идет речь) 

Не забываем указать правильный media source, 


И через какие 10-15 минут у нас появляется Oracle Linux 6.
Посмотрим на uname -a и отметим, что в у нас по умолчанию теперь грузится ядро которое называется el6uek.x86_64 !  UEK теперь ядро по умолчанию ! Это удобно, кстати.

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


# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-ol6.repo
# yum update 


Радость оказалось неполной, и мой kernel хоть и обновился, но все таки не оказался последним.

Пришлось явно указать, что проводить обновление и с репозитория UEK (а это отдельный репозиторий от Oracle Linux 6 !)  тоже:

[ol6_UEK_latest]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
gpgcheck=1
enabled=1



Наконец я увидел то, что хотел:


[root@ora112 ~]# uname -a
Linux ora112 2.6.39-100.10.1.el6uek.x86_64 #1 SMP Wed Jun 20 02:17:42 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

Дальше я попытался найти пакет oracle-validated, который в OEL5 устанавливал параметры ядра перед установкой базы данных, но ...не смог. После короткой перепалки с google, удалось осознать, что уже давно этот пакет называется oracle-rdbms-server-11gR2-preinstall. После его установки обновились правильным образом параметры ядра, завелся пользователь oracle и группы dba, oinstall.  Казалось бы, бери и ставить Oracle Database 11.2.0.3, доступный как patchset 10404530  с сайта support.oracle.com ? Э....нет.

Старожилы со стажем  помнят этот прикол, для остальных сообщу, что инсталлятору 64 bit версии нужны некоторые 32 bit пакеты. Спокойно, это все документировано, так что не нужно грязи. Чтобы поставить 32 bit пакеты удобнее всего опять таки воспользоваться yum, разрешив репозиторий 32 bit версии Oracle Linux 6.

Дальше все штатно, runInstaller, install software only, бум!  Что это так бумкнуло ?

INFO: /usr/bin/ld: skipping incompatible /u01/app/oracle/product/11.2.0/lib//libctx11.a when searching for -lctx11
/usr/bin/ld: skipping incompatible /u01/app/oracle/product/11.2.0/lib/libctx11.a when searching for -lctx11
/usr/bin/ld: cannot find -lctx11
collect2: ld returned 1 exit status


Не нашел пока, что с этим делать, но можно игнорировать. Далее не забываем в файле /etc/fstab установить строчку вида

shmfs      /dev/shm        tmpfs   size=2g         0

и вы готовы запускать dbca.  Опустим формальности, и попросим поставить базу клонированием, что гораздо быстрее. Бум!

ORA-06553: PLS-801: internal error [56319]

Как оказывается, это известная проблема и для нее есть workaround, но это когда клонирование делаешь сам, а его не делает  инсталлятор.  Обойти мне это удалось, только сделав custom database, что даже лучше, поскольку я смог выбрать только нужные мне опции ! Custome database всегда лучше !

И вот оно счастие:


[oracle@ora112 ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.3.0 Production on Mon Jun 25 13:45:37 2012


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

best practices

Время от времени  мне пересылают запросы от заказчиков,  которые жалуются на производительность  Oracle на AIX.  При этом, жалобы конечно не абстрактные, а вполне конкретные, например  - не работает ввод-вывод как надо и все тут, мол чините.  Так же чисто статистически, обнаружилось, что если выполнить набор некоторых магических пассов, которые в простонародье называются best practices, то большинство проблем рассасываются сами собой (прямо как у кашпировского) , а те что остаются - являются весьма достойными, чтобы ими заниматься.

Конкретные примеры - мы обнаружили,  что в установка AXI по умолчанию queue_depth (длина очереди на диски) для Oracle слишком маленькая и почти всегда ее нужно увеличивать для OLTP приложений. Или, другой пример,  заказчик не использует large pages и жалуется на производительность.   Ну и чтобы как раз и навсегда записать ответ, публикую ссылки ниже:


И вдогонку, те кто только начинают свои проекты, часто интересуются как сделать сайзинг
(http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/PRS1887)

А может быть у Вас OEBS и интересно как же он живет на IBM ? тогда читайте - IBM Supported Platforms for Oracle Applications (all acquisitions) (http://w3-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/PRS2815)

Так как заказчики массово переходят сейчас со старых Sun и HP на IBM, то есть еще проблема - пытаются принести все свои наработки по настройкам  на новую платформу.  При этом аргументация железная - "ведь раньше работало, а вы нам песни поете что новая платформа лучше старой, так и здесь должно работать также"  -).  Могу сказать - на практике гораздо быстрее и лучше пройтись по ссылкам выше и сделать как написано там. Это тем кому "ехать", с теми кому "шашечки" мы долго, вдумчиво, параметр за параметром на протяжении (иногда) месяцев все равно приходим к тому же самому. 


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

is big buffer cache is so good ?

Столкнулся тут с интересной задачкой. На машине 512 Gb памяти, но под Oracle DB выделили только около 200 Gb. Больше никаких задачек на сервере нет. Казалось бы очевидно, что нужно использовать больше памяти, Advisors в AWR рекомендуют куда и сколько добавить, но есть проблемка - CPU загружены временами под 90%.  Но пользователей в скором времени должно стать больше, такое  требование бизнеса.  Внимание, опрос  - а стоит ли, или даже так, возможно использовать больше памяти в этой ситуации ?  Противники увеличения памяти под Oracle рассуждают так -   если увеличить память, то логические чтения, которых станет больше  "прикончат" систему, а если база данных будет больше читать с диска, она будет расходовать CPU более бережливо (потому что при чтении с диска не тратится CPU). 

PS. Добавить CPU в данный момент не представляется возможным

Update 1. 

Подбирая факты исключительно в свою пользу,  могу сказать, что увеличение buffer cache позволило выдержать 5100 транзакций в секунду вместо 4300 (или +18%), при этом, что ожидаемо, полезли cache buffer chains:
Для очень въедливых, слева AWR за 15 минут, справа за 1 час, сорри, так получилось.

Что лично мне осталось непонятным, так вроде же физические чтения (кроме direct reads конечно) все равно порождают логические, так что при возрастании нагрузки нам все равно придется сделать и так и так тучу логических чтений, там почему бы не сделать только их, увеличив кэш, и не тратить ресурсы еще на физические чтения ? 


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

RAC 11.2 Interconnect for AIX 7

Если вы строите Oracle RAC на Unix, первым делом вы отправляете читать Oracle RAC Technologies Certification Matrix for UNIX Platforms. Это знают даже дети. Ну а если вы серьезный человек, и вам хочется Infiniband, то читай там, или   не читай, ничего не поймешь -). 

Тогда идем на сайт IBM, где согласно документу (дата документа 2011.10.11)

На AIX 7 поддерживаются

- 100 Mbps ,1 Gigabit
- 10 Gigabit Ethernet
- IP over InfiniBand (IPoIB)


Но в документе есть такая фраза " The new HAIP feature introduced in 11.2.0.2 is not compatible with InfiniBand on AIX at this time. Customers can continue to use 11gR1 with IB on AIX"

На практике при установке 11.2 я столкнулся  с Oracle Bug 10380816: GRID INSTALL: ROOT.SH FAILS WHEN STARTING RESOURC ORA.CLUSTER_INTERCONNECT.HAIP
и насколько я понимаю он до сих пор не закрыт. Вкратце, установить 11.2.0.2 на AIX 7 в конфигурации IP over Infiniband не получается. 

На данный момент рекомендации IBM Dev team звучат однозначно - для 11.2 используйте 10 G Ethernet.

Ну и наконец, а нужен ли нам Infiniband вообще ? Судя по документу SUN Reference Architecture for Oracle 11g Grid,  если вы строите кластер более 2-х узлов - да, очень даже пригодится.  На картинке выше показано как растет время доставки current and consistent read копий блока в зависимости от используемой технологии Interconnect.


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

SCN bug

Интересный баг откопали журналисты - у Oracle заканчиваются SCN и в растерянности база получает ORA-600 -)))   В оригинале много букв, я постараюсь покороче изложить свое понимание.

SCN храниться как 48-bit number (281,474,976,710,656). Однако, в существует проверка на превышение soft limit:  если SCN превысит число, равное кол-ву секунд, прошедших с  01/01/1988 умноженное 16,384  это считается нарушением целостности.   Действительно, вряд ли у кого-то есть база данных, работающая с 1988 года и делающая 16K транзакций в секунду. Но, проблема в том, что как остроумно написал Люис, SCN это system change number, а вовсе не system commit number -)

SCN может существенно поменяться в базе данных, если например у вас есть распределенные транзакции, в момент которой SCN между базами выравнивается.   Но это тоже наверно не было бы проблемой, если бы не баг связанный с hot backup. В момент когда вы говорите alter database begin backup SCN начинают генерируется с повышенной частотой (Тут я не знаю, то ли это нормально, то ли виноват  bug 12371955.8).  Можно было бы ожидать, что после end backup это прекратится, но из за  другого bug (я потерял его номер)  этого не происходит и SCN продолжают генерироваться с большей частотой.

Таким образом, если у вас несколько нагруженных баз данных связанных между собой db link, и вы выполняете их резервное копирование с помощью begin/end  backup - возможно вы встретите этот bug лично. 

Волноваться не стоит, этот bug (как и еще несколько)  были закрыты в Oracle Critical Patch Update Advisory - January 2012.  Так что мне кажется журналистам просто захотелось сенсаций -)

Но и обслуживать  работают промышленную БД с наличием бага, описанным в журнале - как-то непрофессионально. Так что очень рекомендую поставить CPU.

Рекомендую также прочитать официальную информацию (1376995.1) и много технических деталей в Bug 11767824. Интересная статья про SCN.


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

LGWR priority

Как я обещал, ниже первый пост из серии "как я провел лето".

В нашей системе,  достаточно жесткой  OLTP, 256 core, AIX 7, Power 7, сессии испытавали проблемы с событием ожидания log file sync. Сразу скажу, что на 99,99% проблему тут стоит искать в вводе-выводе. Так оно в конце концов и оказалось конечно же.

А пока мы ломали голову над  записями  в файле _lgwr_PID.trc

Warning: log write elapsed time 888ms, size 252KB

*** 2011-11-18 01:55:57.286
Warning: log write elapsed time 535ms, size 2529KB

*** 2011-11-18 01:55:57.924
Warning: log write elapsed time 560ms, size 99KB

*** 2011-11-18 01:56:00.852
Warning: log write elapsed time 541ms, size 3688KB

Оказалось, что при превышении timeout одной операции (?) LGWR более чем на 500 ms (есть скрытый параметр определяющий порог, но я не смог его найти во время написания этого поста) Oracle начиная с версии 10.2.0.4 (MOS 601316.1) начинает фиксировать  данные события.

Горячие головы на различных форумах предлагают установить событие 10468 чтобы исключить появления этих записей, но на мой взгляд, появления записей однозначно говорит о наличии проблемы и ее необходимо найти.

Не скрою, первое подозрение пало на дисковый массив. Однако проблему удалось найти не в самом дисковом массиве, но в I/O path. Система очень комплексная, очень большое количество вендоров задействовано, и конечно проблемы на стыке были более,  чем ожидаемые. Если вы увидите на AIX подобную проблему, свяжитесь со мной,  и я смогу понять та же у Вас проблема или нет. Пока не могу рассказать больше деталей.

Но пока мы разбирались с этой проблемой появилась идея, что неплохо бы и помочь LGWR в работе. Процессоров огромное количество в машине, процессов еще больше, и получается, что хотя все сессии ждут LGRW приоритет у него совершенно такой же как у всех остальных процессов.  Вы видите на рисунке слева (Tanel Poder, Understanding LGWR, Log File Sync Waits and Commit Performance) что ожидание в очереди процессов LGWR  вполне себе входит во время ожидания log file sync.


Оказалось, что в AIX по умолчанию все процессы получают приоритет 60 (на самом деле base priority 40 и nice 20 = 60).

#ps -ef -o pid,pri,sched,nice,args |egrep 'lgwr' |grep -v grep
PID     PRI SCH NI COMMAND
2432232  60   0 20 ora_lgwr_cardway

Казалось бы необходимо воспользоваться nice/renice чтобы получить требуемое. Но на самом деле не все так просто, и, простыми словами, nice = "nice to have", а вовсе не жесткое указание приоритета. К тому же пришлось бы так делать каждый раз после старта БД руками. Оказывается, что в AIX можно выставить фиксированный приоритет  < 40 с помощью системного вызова setpri(). Я уже почти запускал компилятор, когда оказалось, что у Oracle есть скрытый параметр _high_priority_processes с помощью которого можно указать каким процессам мы хотим повысить приоритет:

alter system set "_high_priority_processes"='LGWR|PMON' scope=spfile;

При этом убедитесь пожалуйста что данный запрос также возвращает 1

select a.ksppinm "Parameter",
 b.ksppstvl "Session Value",
 c.ksppstvl "Instance Value"
 from x$ksppi a, x$ksppcv b, x$ksppsv c
 where a.indx = b.indx and a.indx = c.indx
 and a.ksppinm like '%os_sched%'


И даже это еще  не все. У меня все заработало только после того,  как я добавил capability CAP_NUMA_ATTACH пользователю Oracle. Хотя возможно,  это и не обязательно. 


Вот как выглядит теперь правильная картинка: PRI=39, NI="--"

#ps -ef -o pid,pri,sched,nice,args |egrep 'lgwr' |grep -v grep
PID     PRI SCH NI COMMAND
3544740  39   2 -- ora_lgwr_cardway


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

Является ли данный метод действенным способом уменьшить событие log file sync во всех случаях ? Если проблема заключается в вводе-выводе в redo logs,  то скорее нет. Но после исключения проблем ввода вывода, и если у Вас OLTP, и если у Вас много процессоров  - почему бы и не попробовать ?

Поскольку требуется выставлять скрытый параметр, то вам лучше перед его использованием проконсультироваться с Oracle Support. Но они не будут очень возражать, поскольку, как мне кажется, тот же самый механизм используется для выставления приоритета процессу LMS в RAC.

PS Над проектом работала большая команда, поэтому все обнаруженные улучшения/настройки являются коллективным трудом.


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

Getting schooled - IBM Oracle University

В преддверии  1 сентября IBM открыла новый сайт - IBM Oracle University. Чтобы получить доступ к нему необходимо будет зарегистрироваться, это бесплатно. Дальше вы получаете возможность попасть на основную часть сайта. Вам сразу начинают показывать презентацию про участие IBM в OpenWorld. Нет, я не ошибся, все так - IBM активно будет участвовать в OpenWorld. Если Вам это не интересно - то слева, вверху вы найдете ссылку Directory, где и скрывается самое интересное.  Там действительно собрано огромное количество материала, начиная с обзоров самых различных технологий IBM, которые могут быть использованы на благо Oracle Database и заканчивая  особенностями лицензирования.  Eсть и маркетинговые материалы, есть и технические - на любой вкус.  Там все сделано в виде лекций. Некоторые презентации можно скачать как только начинается такая лекция. Видно что в общем-то торопились, некоторые презентации не доступны для скачивания, некоторые в ужасном качестве. Но если что-то очень понадобиться, можно пояснив задачу,  попросить меня скачать в нормальном.
Очень рекомендую - отличный по задумке ресурс для тех кто работает с  Oracle (и не только Database) на IBM или планирует это сделать. Верю, что качество доработают.

 Update 1: IBM Recognized as a Diamond Level Partner in Oracle PartnerNetwork

"A long time Oracle partner, IBM has more than 25 years of experience implementing Oracle technology and more than 10,000 IBM Global Services professionals knowledgeable about Oracle offerings. To date, Oracle and IBM have collaborated on 30,000 successful customer engagements worldwide"


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

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 апреля -)






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

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.”


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

PL/SQL Inline Optimization in 11g

Недавно с Геннадием Сигалаевым мы обсуждали технологию inline-подстановки в хранимых PL/SQL-процедурах TimesTen. Но вообще говоря, эта технология появилась в Oracle Database 11g, и уже потом весь "движок" PL/SQL был портирован в TimesTen.

Inline-подстановка хорошо знакома программистам, которые пишут на C/C++ и Delphi.

Начиная с 11g теперь такая возможность есть и у PL/SQL-разработчиков.

Рассмотрим следующий пример кода:

create or replace procedure test

authid definer is

function getTrimLine(pLine in varchar2) return varchar2 is

begin
return '' trim(pLine) '';
end;

begin

for xIndex in 1..100

loop
dbms_output.put_line(getTrimLine(dbms_random.string('p',xIndex)));
end loop;

end;
Функция getTrimLine вызывается в теле цикла много раз, и мы несем заметные накладные расходы на вызов этой функции, передачу параметров и возврат результата. Хотелось бы сразу вставить тело функции в цикл не меняя PL/SQL-код. Для этого в 11g появилась директива PL/SQL-компилятора pragma inline.

Перед вызовом, который мы хотим заменить на тело вызываемой подпрограммы, нужно вставить эту директиву:
SQL> rem Включаем вывод предупреждений от PL/SQL-компилятора

SQL> alter session set plsql_warnings='ENABLE:ALL';

Session altered.

SQL> create or replace procedure test

authid definer is

function getTrimLine(pLine in varchar2) return varchar2 is

begin
return '' trim(pLine) '';
end;

begin

for xIndex in 1..100

loop
pragma inline(getTrimLine,YES);
dbms_output.put_line(getTrimLine(dbms_random.string('p',xIndex)));
end loop;

end;
/

show errors;

SP2-0804: Procedure created with compilation warnings

SQL> Errors for PROCEDURE TEST:

LINE/COL ERROR

-------- -----------------------------------------------------------------
4/3 PLW-06006: uncalled procedure "GETTRIMLINE" is removed.
13/5 PLW-06005: inlining of call of procedure 'GETTRIMLINE' was done
13/38 PLW-06004: inlining of call of procedure 'GETTRIMLINE' requested


SQL>
Как Вы видите, подстановка была успешно выполнена. Обратите внимание, что оптимизатор PL/SQL вообще удалил функцию getTrimLine, поскольку теперь она стала "мертвой", - то есть нигде не вызывается!

"Ну хорошо" - скажете Вы.
"Но ведь для того, чтобы этим воспользоваться, надо проанализировать весь код, и там, где это необходимо, вставить директиву pragma inline.
- Это все очень трудоемко !"

Не волнуйтесь - разработчки оптимизатора PL/SQL продумали это. :-)
В 11g появился новый уровень оптимизации PL/SQL - третий уровень, который собственно включает автоматическую inline-подстановку на фазе оптимизации кода. То есть оптимизатор сам принимает решение о необходимости подстановки того или иного вызова.
Проверим третий уровень на нашем примере (убираем из исходного кода директиву подстановки! ):
SQL> rem Включаем 3-ий уровень оптимизации PL/SQL

SQL> alter session set plsql_optimize_level=3;

Session altered.

SQL> create or replace procedure test

authid definer is

function getTrimLine(pLine in varchar2) return varchar2 is

begin
return '' trim(pLine) '';
end;

begin

for xIndex in 1..100

loop
dbms_output.put_line(getTrimLine(dbms_random.string('p',xIndex)));
end loop;

end;
/

show errors;

SP2-0804: Procedure created with compilation warnings

SQL> Errors for PROCEDURE TEST:

LINE/COL ERROR

-------- -----------------------------------------------------------------
4/3 PLW-06006: uncalled procedure "GETTRIMLINE" is removed.
12/5 PLW-06005: inlining of call of procedure 'GETTRIMLINE' was done


SQL>
Как видите оптимизатор "увидел", что вызов функции getTrimLine происходит в цикле и решил сделать ее подстановку вместо вызова.

Подстановка - очень полезная технология оптимизации ващего PL/SQL кода, для ее использования вам не надо модифицировать код приложения, а всего лишь нужно установить третий уровень оптимизации PL/SQL (plsql_optimize_level=3) и перекомпилировать свой код.


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

Database 11.2.0.2.0 PatchSet Released!

UPDATE 1. К сожалению, патч был отозван в Development из-за обнаруженной ошибки.
14/09. Update 2. Ура! Можно качать.

Наконец-то произошло то, чего мы так долго ждали: начиная с сегодняшнего дня вы можете скачать с сайта технической поддержки патчсет 11.2.0.2

Патч номер 10098816. Пока доступен только для платформ Linux x86 и x64.

Важное изменение: теперь как такового патчсета нет - он представляет собой полный дистрибутив. Для его установки нужно развернуть дистрибутив в отдельный Oracle Home, а затем сделать апгрейд существующей инсталляции. Это относится к всем компонентам, кроме Oracle Client.
Поэтому фактически патчсет - это полный дистрибутив. неудивительно что теперь он "весит" почти 5Гб !

Другое большое отличие: теперь вместе с патчсетом, помимо фиксации багов, появляются много новых возможностей в функционале СУБД (New Features). Получается какая-от версия 11.2 с половиной  :-)
О новых возможностях 11.2.0.2 мы подробно расскажем в отдельном посте ...


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

Новая версия курса по Oracle RAC в Учебном центре РДТЕХ

В июне Учебный центр РДТЕХ приглашает прослушать новую версию курса по Oracle RAC.
Пятидневный курс "Oracle 11g RAC and Grid: Ускоренное администрирование RAC в инфраструктуре" познакомит слушателей с продуктами Automatic Storage Manager (ASM), ASM Cluster File System (ACFS) и Oracle Clusterware, входящими в состав Oracle Grid Infrastructure.
На курсе будут рассмотрены следующие вопросы:
  • Описание архитектуры Oracle Clusterware
  • Описание влияния Grid Plug and Play на Clusterware
  • Архитектура ASM
  • Установка Grid Infrastructure и создание кластерной базы данных
  • Управление ресурсами приложения
  • Диагностика неисправностей Oracle Clusterware
  • Управление экземплярами ASM и дисковыми группами
  • Управление ACFS
  • Управление кластерной базой данных
  • Резервирование и восстановление кластерной базы данных
  • Общие шаги по настройке производительности кластерной базы данных
  • Конфигурирование и управление сервисами в RAC

Курс будет полезен и интересен администраторам баз данных, администраторам хранилищ данных, архитекторам баз данных, специалистам служб технической поддержки и техническим администраторам.

Курс "Oracle 11g RAC and Grid: Ускоренное администрирование RAC в инфраструктуре" читает Евгений Горбоконенко, консультант Центра технической поддержки РДТЕХ, имеющий статус Oracle Certified Master.

Ближайшая дата курса: 21 июня 2010 года.

Для записи на курс обращайтесь к менеджерам Учебного центра РДТЕХ Юлии Райской или Оксане Агисеновой, тел. (495) 995-09-99 (доб.256), e-mail: edu@rdtex.ru.
Более подробная информация о курсе - http://www.rdtex.ru/win/courses.overview?ccode=O11gRAC
В качестве дополнительного материала по изучению Oracle RAC Вы можете приобрести в РДТЕХ книгу "Oracle Real Application Clusters. Руководство по развертыванию и администрированию", входящую в комплект технической документации - Oracle Database 11g.
P.S.: На фото ..ну вы сами знаете кто...


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

Документация РДТЕХ по Oracle Database 11g: новая книга

РДТЕХ, единственная российская компания, которая переводит на русский язык техническую документацию, издаваемую корпорацией Oracle, выпустила в свет очередную книгу по направлению Oracle Database 11g.

Книга "Oracle Database 11g. Справочное руководство" содержит информацию, описывающую возможности и функциональные средства продуктов Oracle Database Standard Edition (СУБД Oracle, известной также как «стандартная версия») и Oracle Database Enterprise Edition.

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

Руководство предназначено для администраторов баз данных, системных администраторов и разработчиков приложений.

Обратите внимание на другие вышедшие книги по направлению Oracle Database 11g:
"Краткий курс администрирования баз данных"
"Краткий курс по разработке приложений баз данных"
"Новые возможности"
"Основные концепции"
"Резервирование и восстановление баз данных. Руководство пользователя"
"Руководство администратора баз данных"
"Справочное руководство по языку PL/SQL"

Каталог документации Oracle на русском языке.

P.S. На фото - новая книга во плоти.


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

адцкий хакер, часть 1

Вадим Гусев (Vadim.Gousev) предлагает вашему вниманию достаточно жизненную ситуацию - в компании увольняется старый и опытный DBA, который мог починить БД в любое время суток при помощи только чей-то матери  нескольких команд  и sqlplus. Новый DBA успел познакомиться только с курсом Oracle за 2 дня и наладить DB console. Конечно же, неприятности не заставили себя ждать...    Смотрите серию 1 !

PS По стилю это конечно не битва DBA, и не YouTube Style video, мы только учимся :). На фотографии - Вена, видимо у них там тоже бывают проблемы....


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

11gR2 is SAP certified


This certification comes along with the immediate availability of the following important options and features:

  • Advanced Compression Option (table, RMAN backup, expdp, DG Network)
  • Real Application Testing
  • Oracle Database 11g Release 2 Database Vault
  • Oracle Database 11g Release 2 RAC
  • Advanced Encryption for tablespaces, RMAN backups, expdp, DG Network
  • Direct NFS
  • Deferred Segments
  • Online Patching
Анонс на сайте SAP

Если внимательно почитать анонс Oracle, то там явно обещают сертификацию ASM и ....правильно, Exadata, правда в 2011 году :)    Мы знаем что,  SAP прекрасно работает на нашем RAC, мы ставим рекорды производительности в тестах SAP, а теперь у заказчика будет еще и шанс уменьшить кол-во вендоров в сложных инсталляциях.


Про опции даже не хочу и повторяться. RAC, Database Vault, Compression, Partitioning должны быть в любой исталляции SAP. Это очевидно. Но ..я не настаиваю. У нас месячник gentle поведения :)



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

18 Февраля, Форум Oracle Database 11g

На форум приедут два очень интересных специалиста из нашей штаб-квартиры: Сергей Колтаков и Mughees Minhas.

"Mughees Minhas is responsible for all aspects of product management relating to database, systems and quality management solutions at Oracle Corporation. He has more than 15 years of experience working with Oracle products with special interests in the areas of application testing, performance diagnostics, tuning, and SQL optimization.  Mughees got his undergraduate degree in Physics and Electrical Engineering from Washington University and an MBA from Columbia Business School.  He is currently senior director of product management in Oracle’s Server Technologies division"

Сергей  говорит по русски, хотя и предпочитает технические вещи читать на английском. По неподтвержденной информации, будет синхронный перевод.

Ссылка на приглашениеСсылка на настоящую программу :)  Ссылка на регистрацию. Схема проезда.

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

И не забудьте, в программе новые эпизоды звездных войн битвы администраторов  !

PS Если Вам не удастся зарегистрироваться, ничего страшного - это можно будет сделать на месте. В крайнем случае,  валите все на Волкова/Данилова.  В Oracle не увольняют людей, которые пожали руку Тому Кайту...


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