RAC support in virtual enviroment

У коллег возник вопрос по поводу поддержки RAC в среде HP Virtual Server Environment. Metalink однозначно сообщает, что такая конфигурация "not yet supported".


Несмотря на это HP публикует "HP Virtual Server Environment
Reference Architectures for Oracle
" где рассказывает как здорово RAC работает в виртуальных машинах.


Это очень странно, потому что такую конфигурацию Oracle все-таки не поддерживает.
Oracle вообще не поддерживает виртуальные машины, только hardware partitioning.

Для подтверждения этой моей идее хочется процитировать Note:249212.1 ( Support Status for VMWare )

"
If a problem arises and it is a known Oracle
issue, Oracle support will recommend the appropriate solution. If that solution
does not work, the issue will be referred back to VMware for support
"
Что в вольном переводе на русский: не используйте виртуальные среды в промвшленной эксплуатации. Используйте их только в качестве демонстраций технологий.


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

11g New Features

Если очень интересно, новые возможности 11g можно посмотреть в презентации TUSC
Однако помните, что это все неофициальная информация, основанная на 3 патч сете, а уже выпущен 4-ый.

Официальная информация начнет появляться с июля месяца. К сожалению, дату выпуска продукта пока еще не объявили :(


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

Oracle Database 10g Downloads

Кто может угадать, для какой платформы повилась готовая сборка 10.2.0.3 ?

Ответ лего найти по ссылке:
Oracle Database 10g Downloads


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

Oracle memory configuration on Windows

Я очень долго считал, что попытки использовать в production окружении Windows + Oracle заранее обречены на провал. И дейстивтельно, что может получиться хорошего в архитектуре, когда все сессии вынуждены существовать в рамках одного процесса (process thread) ? Однако, реальность часто отличается от наших о ней представлений..

Для начала замечу, что Windows не совсем обычная платформа для Oracle. Во-первых, некоторые возможности БД могут работать только под Windows ! Подобных предпочтений не сделано ни для каких-либо других платформ. Во-вторых, сейчас новые сборки для 11g появлются сначала для Windows..

Вернемся к архитектуре. Действительно, Oracle под Windows выполнен в архитектуре тредов (thread-based). Документация считает, что такая архитектура обладает следующими преимуществами:

- Faster context switching
- Simpler System Global Area allocation routine, because it does not require use of shared memory
- Faster spawning of new connections, because threads are created more quickly than processes
- Decreased memory usage, because threads share more data structures than processes

Не согласится сложно. Но несмотря на все эти преимущества, поддержка большого кол-ва сессий (>500) на платформе windows оказывается совсем не тривиальной задачей. В первую очередь нам нужно много памяти.

Если у Вас Oracle 32 bit - то без специальных ухищрений Вы получаете примерно 1.7 Gb памяти. Но нам хотелось бы по крайне мере 3 gb ! Вы можете продолжить эксперименты с помощью технологий PAE и /3G. Хотя и тут вместо обещанных 3 Gb вы получите не более 2.7Gb (http://www.oracle.com/technology/tech/windows/faq.html)

И только с помощью AWE ваша жизнь немного улучшается

On Windows 2000 and higher, Oracle interfaces with the Microsoft's Address Windowing Extensions (AWE), which allows the Oracle database to access to up to 64 GB of memory

Сама технология описана на сайте Микрософт: http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx

Как ей воспользоваться описано на Metalink Note Note:225349.1


Великолепная презентация конфигурации Oracle (32 и 64 bit) под Windows
http://www.microsoft-oracle.com/WebPages/DownloadFile.aspx?File=Oracle%20Memory%20Configuration%20for%20Windows.ppt


И очень хорошая новость - нам удалось уменьшить размер выделяемой по умолчанию памяти на трид (thread) с 1 Mb до 500K с помощью orastack

Как результат - Oracle 32 bit на 2-х процессорной машине с 6 Gb памяти
выдерживает более 300 сессий !


PS
Все равно на Windows так и не работет DCD в Oracle 9i ! (крик души :)))


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

Oracle Enterprise Manager 10g

В этом месяце (мае 2007) произошло важное, по моему мнению, для EM событие - вышел plugin для Symmetrix DMX.
Простыми словами - вышел первый plugin для подсистемы хранения данных. До сих пор все plugin выходили для серверов приложений, операционных систем (точный список можно увидеть здесь http://www.oracle.com/technology/products/oem/datasheets.html)

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

Я честно говоря, ожидаю, что следующий plugin будет для Hitachi. Но посмотрим, может выиграет и HP :). В любом случае это будет обозначать очередной виток интереса к продукту.

Я так впечатлился успехами EM, что хочу тут же предложить Вашему вниманию еще два крайне интересных документа:
За что предлагается заплатить, покупая managment packs:General Overview of EM 10g R3 Management Packs, Plug-ins, and Connectors Licensed Functionality и как EM поддерживает различные версии БД: Enterprise Manager 10g Release 3 Supported Oracle Database Features


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

Oracle Seasons

У Oracle есть не только собственная эскадрилья самолетов, яхта, но и "Oracle Seasons", специальный диск с отличной джазовой музыкой, записанной специально для Oracle. Пусть сегодня это будет майская композиция: Let There Be love - Братья Ивановы и А.Бутурлина
(bitrate конечно понижен, чтобы не нарушать авторских и смежных прав)


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

Сбор статистики оптимизатора

Правильный сбор статистики оптимизатора со временем играет все более важную роль для общей произволительности приложения. Оптимизатор становится все более и более
сложным (и мы все надеемся что разумным :), для правильных выводов ему нужны достоверные данные. Задачей администратора СУБД является обеспечить достоверность
этих данных.


Как показал Tom Kyte, сбор статистики оптимизатора нужно выполнять с помощью dbms_stats.

Однако, остаются неопределенными такие важные параметры как % сбора статистики (estimate_percent), число бакетов (bucket), да и набор колонок, для которых следует выполнять сбор статистики. Как показал Wolfgang Breitling, в статье "A LOOK UNDER THE HOOD OF CBO: THE 10053 EVENT", следует собирать гистограммы не только для индексных колонок.

Начиная с 9i в составе dbms_stats появились методы, позволяющие заставить Oracle самому выбрать наилучшие параметры

Так можно указать estimate_percent => dbms_stats.auto_sample_size, а для числа бакетов указать method_opt=>'for all columns size skewonly'

Однако, как и всякая магия - эта работает не всегда.

Очень рекомендую познакомится с блестящей презентацией "What's up with dbms_stats ?" посвещенной оценке работы dbms_stats.


Из моего опыта следует:

1)Высокий % (~90%) совпадения с реальными данными
получается уже при estimate_percent=60%.

При этом время сбора статистики для 60% примерно на треть меньше, чем для сбора
полной статистики (compute).

Таким образом можно рекомендовать проводить первоначальный
сбор статистики с estimate_percent = 60%. Это дает хорошую оценку времени сбора
полной статистики и хорошее приближение к реальным данным.


2) Для реальной таблицы (~40 млн строк)
method_opt=>'for all indexed columns' не выделил более 75 бакетов даже для колонок
с более чем 12 млн уникальных значений, в то время как
method_opt=>'for all indexed columns size skewonly' skew выделил до 200 бакетов.




Выводы:
Несмотря на общее недовольство авторов презентаций новомодной автоматикой dbms_stats, она явно может оказаться полезной. собрать статистику и сохранить ее для дальнейшего анализа в отдельной таблице с помощью dbms_stats.export_table_stats крайне рекомендуется.

С помощью method_opt=>'for all columns size skewonly' можно также собрать статистику по неиндексным колонкам.

А если включить мониторинг (ALTER TABLE...MONITORING) то последующий сбор статистики будет только для тех объектов, по которым были изменения.


Однако, наличие ошибок в версии 9i (сбор статистики по первичному ключу) не позволяет быть уверенным 100%, что эта процедура работает оптимальным образом.

В моем случае method_opt=>'for all indexed columns size skewonly'
все-таки привел к замедлению приложения по сравнению с 'for all indexed columns'.

В результате сравнения трассировок причина оказалась в дополнительных событиях ожидания 'db file sequential read' для операции insert. Данные ожидания были связаны с чтением индексных блоков. Почему при другом методе сбора статистики этого не происходит - загадка.

Так что рекомендую протестировать как это работает в Вашей версии.

В 10g есть одна неприятная ошибка связанная с RMAN. В отсутсвии статистик на fixed объектах любая сессия RMAN потребляет все доступное temp пространтсво. Исправляется с помощью вызова dbms_stats.GATHER_FIXED_OBJECTS_STATS


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

Oracle RAC: Deep Dive for Developers

Нам (Дмитрий Волков (Dmitry.Volkov) и Игорь Мельников (Igor.Melnikov)) удалось провести первый курс "Oracle RAC: Deep Dive for Developers". Уникальность его в том, что в отличии от всех известных курсов такого рода, основной материал подается для разработчиков. Прочие курсы сосредоточены на обучении администраторов установке и администрированию RAC.

Мы же рассказываем, что необходимо изменить однозначно в приложении, а что можно проверить под нагрузкой и исправить, если это окажется "узким местом" системы. Рассказываем и как искать "узкие места" системы. Какими новыми возможностями 10g стоит пользоваться и для чего. Приводим примеры изменения старого кода, чтобы он заработал в среде Oracle RAC.

Вы можете подробно ознакомиться с содержанием курса.

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

В этом году курс станет одним из стандартных технических курсов, проводимых для ISV партнеров.

Если Вам понравилось описание курса, вы работаете в одном из партнеров Oracle, и Вы бы хотели провести курс у себя, обращайтесь в партнерский отдел - контакты есть в описании курса.

Хочу поблагодарить принимавшую нас сторону за позитивный настрой и высказанные замечания. На их основе мы улучшаем свой курс.


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

Тестируем Oracle RAC

Крайне рекомендую при тестировании надежности Oracle RAC использовать нижеследующую статью:

MAA_WP_10gR2_FastRecoveryOracleClusterwareandRAC.pdf (application/pdf Object)

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

Обратите внимание, что большая часть "best practice" относится к патчсету 10.2.0.3.

Конечно, надо помнить, что в статье описывается тестирование "физики": "железо" + системное ПО. Не забывайте тестировать логику и производительность Вашего приложения !


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

ip=first in listener.ora

Указание ip=first в listener.ora заставляет listener слушать только указанный в строке host ip адрес, а не все интерфейсы по умолчанию.

Пример:
(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1521)(IP = FIRST))

Конечно, наиболее применим этот атрибут именно в RAC, чтобы не поднимать listener на внутренних адресах (используемых для интерконнекта)


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

Презентация: Internet Application Server for Sales

По просьбе парнера сочинилась презентация по IAS специально для Sales менеджеров.
Техническим специалистам категорически не рекомендуется ее читать. Во время подготовки оказалось, что донести техническую информацию до sales менеджеров - отдельное исскуство...


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

ODTUG Kaleidoscope 2007

Присмотритесь вот к этому событию:
ODTUG Kaleidoscope 2007

Состав выступающих потрясающий, вот те кого знаю я:
-Jeff Hohman
-Mark Rittman
-Donald Burleson
-Ken Atkins
-Paul Dorsey
-Steven Feuerstein
-Peter Koletzke
-Cary Millsap

Не хватает только Tom Kyte....


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

Users Are Investing in Oracle's DBMS Infrastructure

"
At the recent Oracle OpenWorld event, customers reported that Oracle's Real Application
Clusters (RAC), Automatic Storage Management (ASM) and Enterprise Manager Grid Control
(EMGC) offerings are being adopted more widely. When combined, these solutions form an
Oracle Grid computing solution providing a workload-driven, scalable environment.
"
Читать отчет Gartner полностью

PS


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

10.2.0.2 -> 10.2.0.3

После обновления 10.2.0.2 -> 10.2.0.3 Вам необходимо вручную поправить скрипт $ORA_CRS_HOME/bin/usrvip
В противном случае Вы не сможете добавить Application IP в clusterware.
Детали - в Note:413077.1


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

Buffered Messaging (Queue)

Начиная с 10gR2 официально появился механизм очередей, чьи сообщения хранились не в таблице, а прямо в SGA.
Кажется, изначально это было придумано еще для Oracle Streams, и возможно механизм существовал еще раньше.

Конечно, обмен через такие очереди существенно быстрее, чем через persistent, зато в случае сбоя сообщения теряются.

Познакомиться, как это работает, можно в документации.

Но декларируется, что этот механизм работает в RAC !
И даже больше. Кажется, что именно через buffered queue работают dbms_schedule и data pump.

А раз так, настройка этого механизма становиться жизненно важной.

К нашему ужасу, после установки кластера при попытке работы с buffered queue с разных узлов мы получили сообщение:
ORA-25306 CANNOT CONNECT TO BUFFERED QUEUE'S OWNER INSTANCE


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

Конечно у Вас должен быть установлен параметр REMOTE_LISTENER, но будьте аккуратны при написании соответсвующего alias в tnsnames. Он парсится для построения db link.
Затем, у Вас должен быть установлен параметр db_domain.
И конечно заданы значения для STREAM_SIZE.


На основании информации REMOUTE_LISTENER и tnsnames.ora и строится db link. Его можно посмотреть с помощью запроса

select OWNER, DB_LINK, USERNAME, HOST from DBA_DB_LINKS where db_link like '%AQ$%'


а затем и протестировать

select 'x' from dual@your_db_link_name_here


И только если такой запрос пройдет, у Вас начнут работать buffered queue в среде RAC.

Кстати, так как используется db link, то не пытайтесь создавать buffered queue в схеме sys.
Подсоединиться как sys через db link Вам никогда не удасться.

PS

Кстати, после изменения параметра db_domain пришлось перестроить репозиторий DB Control. Об этом напишу в одном из следующих постов.

Как мне кажется, проблемы с buffered queue возникают из-за того, что при работе DBCA вводится не полное имя БД (БД + домен), а короткое.

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


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

Windows Vista

10g Release 2 доступен для скачивания на платформе Microsoft Windows Vista.

Что интересно, SQL Server пока не поддерживает Vista, если судить по страничке Microsoft SQL Server: Try SQL Server 2005 Today.

Что и говорить, oracle server development team просто молодцы !

Приведу также несколько ссылок с oracle.com, по которым можно сравнить 10g и SQL Server 2005:

http://www.oracle.com/technology/products/database/clustering/pdf/TWP_RAC_Compare_SQLServer2005.pdf
http://www.oracle.com/technology/deploy/availability/htdocs/DataGuardDatabaseMirroring.html
http://www.oracle.com/technology/deploy/performance/withSS2005.html
http://www.oracle.com/technology/deploy/performance/pdf/twp_perf_oracle%20database%2010gr2%20vs%20ss2005.pdf


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

Разница между Database Control и Grid Control

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

Прежде всего (Note:402554.1, Internal Only)

"
In Enterprise Manager 10g, Database Manageability can be accomplished through 2 separate user applications:
1. DB Control - single standalone database manageability; Only 1 10g database can be monitored at a time
2. Grid Control - enterprise wide database manageability; The features of DB Control are fully integrated into Grid Control but the data is displayed at an enterprise level encompassing many databases.
"
Т.е. задачи и продуктов различны. Тем не менее, у них одинаковая архитектура:

"
In both Grid Control and DB Control, the framework is made up of three main components:

1.A Management Agent that gathers data and performs job related functions on a target (For RDBMS, these targets would include databases, instances, RAC Clusters, RAC databases, RAC instances, Data Guard databases, TNS listeners, and host targets).

2.A J2EE application known as the OMS that renders the HTTP(S) Webpages known as the UI (Grid Control Console and DB Control Console)

3.A repository schema owned by SYSMAN that includes tables, views, triggers, PL/SQL routines, packages, procedures, and dbms jobs needed to keep the EM Framework functioning

"

Однако, из той же Note, можно сделать заключение, что команды, разрабатывающие Db Control и Grid Control разные, а следовательно могут, пользуясь общим EM API создавать различные UI странички и скрипты. Что мы и видим на практике. По предыдущей ссылке доступны screen shot одинаковых закладок как DB Control так и Grid Control.


Из документации, мы также знаем, что Grid Control требует отдельного репозитория (экземпляра БД) и должен устаналиваться в отдельную от БД директорию. БД репозитория при этом не требует отдельного лицензирования, о чем я уже писал.

Напротив DB control устанавливается в том жe $ORACLE_HOME, что и Database.


Ссылки по теме:
How to change a 10.2.0.x Database from Locally Managed to Centrally Managed
Note:400476.1


How to manage DB Control 10.2 for RAC Database with emca
Doc ID: Note:395162.1


PS:

Running EMCA Results in Database quiesce And No New Connections or Operations Can Be Performed During the DB Control Repository Creation
Note:375946.1


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

Oracle RAC Samples

Если Вы по какой-то причине пропустили ссылку на Oracle RAC Samples - обязательно ее посмотрите. Наиболее интересный пример там "Sample HA Agent for Oracle Database" - показывается как построить HA кластер на Oracle Clusterware. "А тут необычного ?" спросите вы. А необычное - это стоимость такого решения. Если Вы лицензировали Enterprise или Standard Edition, то Вы уже заплатили за Clusterware и теперь можете строить HA кластер бесплатно ! (это необходимо уточненить при подписании контракта на поддержку, но текущая lisence policy это позволяет). Построение standby решения требует лицензировать второй сервер. Построение RAC решение требует лицензировать все узлы + докупить RAC option. Покупка, скажем, Veritas Cluster - недешевое удовольствие. Так что, еще раз, очень рекомендую присмотреться к возможностям Oracle Clusterware. Да, у него нет пока графического интерфейса, взаимосвязи между группами "зашиты" внутри, но функциональность Oracle Clusterware позволят Вам сделать уже сделать очень и очень многое.


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

Oracle Audit Vault

Объявлено о выходе Oracle Audit Vault. Официальное сообщение ожидается сегодня, 7 мая, на страничке Oracle Press Releases .


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

Oracle RAC, установка на Linux 64 bit

Не вполне очевидно, но при установке 64 bit clusterware на 64 bit Linux требуется несколько 32 bit библиотек.
Если не установить данные библиотеки падает VIPCA с не очень вразумительными ошибками. Необходимость 32-bit библиотек описана в документации и на сайте великолепного Puschitz

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

Конечно же, установливайте RAC только на сертифицированные платформы !

Главная ссылка по сертификации : Certify - Product Selection: Real Application Clusters

Как мне кажется, сейчас следует использовать Enterprise Linux 4. Скачать (ISOs) можно по адресу http://linux.oracle.com.

Отличная Note 266043.1 Support of Linux and Oracle Products on Linux

И помните, Note:249212.1: RAC is not supported on VMWare by Oracle

PS
Сейчас мы готовим удивительный семинар по деталям переноса приложений в среду RAC. Удивительный потому, что такого семинара пока никто больше не сделал ?! :) .
Этот семинар будут доступен партнерам начиная с конца мая месяца. You are welcome !


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

Распределение пользователей по версиям СУБД


Игорь Мельников на мероприятии в Челябинске показал очень интересный слайд: Распределение по версиям СУБД кол-ва обращений пользователей в службу технической поддержки.
Из слайда видно, что кол-во обращений пользователей 8i уже порядка 5%, с другой стороны кол-во обращений пользователей 10g стабилизировалось на уровне 53%, что превышает кол-во обращений пользователей версии 9i.

Конечно, кол-во обращений не вполне коррелирует с реальным использованием БД. Т.е. теоретически может быть, что БД используется, но обращений нет. Т.е. оценка числа пользователей косвенная, но другой нет и быть не может. Пользователь может использовать БД и не ставя Oracle в известность, просто оплачивая тех. поддержку.


Возникает вопрос, а где посмотреть сроки поддержки по версиям ? Ответ, конечно же, находится на metalink:

Certity -> View Certifications by Product ->Desupport Advisories and Noties -> Database Desupport Notices

Где Вы, например, можете узнать что для 8i Extended Support заканчивается в декабре 2007 года.


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