Happy New (Christmas, Year, Ramadan)

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

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

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


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

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

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




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


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

Turkcell: Миграция 250TB хранилища на Exadata

В Европе Exadata стоит в каждой подворотне. Я не мог понять почему в СНГ это редкость, пока не начал работать с английскими заказчиками -- сразу все стало ясно. В Европе умеют считать деньги -- в России не умеют не хотят :^)

Пока Москва стоит в пробках коллеги из Turkcell мигрировали на Exadata 250TB хранилище. Как Вы знаете, хранилища сотовых операторов впечатляют своими размерами, так как приходится хранить все звонки с целью анализа всевозможных тенденций. Качественное хранилище представляет большую ценность и существенное конкурентное преимущество для сотового оператора. Хранилища размером 0.5PB - 2PB не являются в этой индустрии чем-то из ряда вон выходящим. Но ханилище должно быстро работать и не быть при этом дороже самой сотовой компании :^) Так вот, наши турецкие друзья мигрировали одно из хранилищ такого класса на Exadata. На самом деле, случилось это давно, еще во времена Exadata V2, но техническая информация от администраторов появилась только в сентябре.

Я уважаю Турцию. Это технологически продвинутая страна. Ведь даже наши друзья турки понимают, что получается в 10 раз быстрее и одновременно на порядки дешевле по всем направлениям: на порядки дешевле железо, на порядки меньше места в серверной, на порядки меньше электроэнергии и охлаждения, отсутсвуют коммерческие файловые системы, volume-менеджеры и что там еще влияет на конечную стоимось владения? -- ну да -- инженеры. Storage administrator? О чем Вы? Такой профессии в Turkcell больше нету. Теперь обыкновенный DBA вполне нормально администрит эти несчастные 25 TB (это не очепятка, это просто технология HCC сжала данные в 10 раз).

МТСы, Билайны, Мегафоны! Где Вы? Уже Турция сделала это. Вдумайтесь хорошенько: Т-У-Р-Ц-И-Я.

Disclaimer

После миграции на Exadata ни один Storage инженер не пострадал. Turkcell заблаговременно отправил их на курсы MBA и теперь они трудятся на благо компании на top-менеджерских позициях :^)


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

Материалы Developer Day 18.11.2010

Материалы с семинара "Oracle Developer Day", который прошел 18.11.2010 в отеле "Катерина", можно скачать по этой ссылке (zip - 24Mb).

Отдельным постом будут ответы на вопросы, на которые мы не смогли с ходу ответить ... :-)


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

11g R2: Deferred Segment Creation

Предлагаю вашему вниманию свою небольшую презентацию посвященную новой возможности 11g R2 - отложенному созданию сегментов.
Вроде простая технология, но позволяет сделать интересные вещи ..




P.S. Контент входит в мою презентацию посвященную новым фичам 11g, которая будет читаться 18.11.2010 в "культовом" отеле Катерина (на фото).


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

Global Context work in RAC 11.2 !!!

Помимо массы архитектурных изменений, RAC в версии 11g Release 2 принес еще одну хорошую новость: теперь в RAC работают глобальные контексты (Global Application Context)
Вообще, глобальные контексты, как таковые, работали в RAC и до версии 11.2, но с одним "нехорошим" поведением: значения параметров не синхронизировались между узлами кластера. То есть: если значение параметра в контекст записала сессия на одном узле, а другая сессия пытается прочитать его на другом - значение параметра будет пустым!

Те, кто был на нашем семинаре RAC DD4D, хорошо это знают - я демонстрировал пример этой неприятной особенности контекстов в RAC.
Но теперь это в прошлом: начиная с 11.2 глобальные контексты полностью поддерживаются в RAC!

Как насчет pipe-ов в RAC?
Нет, нет: к сожалению, pipe-ы до сих пор в РАКе не работают.
- Но у нас есть обходное решение ! :-)
На семинаре оно тоже демонстрировалось.


node1-> sqlplus rscott/rtiger@orcl1

SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 16 18:23:45 2010

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> select dbms_utility.current_instance from dual;

CURRENT_INSTANCE
----------------
1

SQL> create context my_context using set_rac_context
accessed globally;

Context created.

SQL> create or replace procedure set_rac_context(v_pName in varchar2,
v_pValue in varchar2) is
begin
dbms_session.set_context('MY_CONTEXT',v_pName, v_pValue);
end;
/
show errors;

Procedure created.

No errors.

SQL> exec set_rac_context('Hello','World');

PL/SQL procedure successfully completed.

SQL> select sys_context('MY_CONTEXT','Hello') from dual;



SYS_CONTEXT('MY_CONTEXT','HELLO')
--------------------------------------------------------------------------------
World

SQL> conn rscott/rtiger@orcl2
Connected.
SQL> select dbms_utility.current_instance from dual;

CURRENT_INSTANCE
----------------
2

SQL> select sys_context('MY_CONTEXT','Hello') from dual;

SYS_CONTEXT('MY_CONTEXT','HELLO')
--------------------------------------------------------------------------------
World

SQL> --!!!


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

Oracle Technology Day in Samara

Презентацию с Oracle Technology Day in Samara можно скачать здесь.

P.S. Качественной фотографии Самары как-то не нашлось в нашем архиве :)


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

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) и перекомпилировать свой код.


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

Life with Oracle Enterprise Linux Kernel

Как вы знаете, на последнем Oracle OpenWorld было анонсировано Unbreakable Enterprise Kernel. Сейчас это рекомендуемое ядро Linux для запуска ПО от Oracle: "The Unbreakable Enterprise Kernel is now the only Linux kernel Oracle recommends for use with Oracle software."

Ссылка на пресс релиз: Oracle Linux with Oracle's Unbreakable Enterprise Kernel

Рассмотрим процедуру установки этого ядра. Устанавливается оно только на Oracle Linux 5U5 x64 и RedHat Linux 5u5 x64.
Я использовал yum.

1) Устанавливаем операционную систему (я установил Oracle Enterprise Linux 5U5 x64), либо обновляем существующую (если у вас Enterprise Linux 5) до Update 5.

2) Настраиваем yum на публичный репозитарий Oracle: для этого нужно скопировать файл http://public-yum.oracle.com/public-yum-el5.repo в каталог /etc/yum.repos.d

3) В этом файле включаем репозитарий Oracle Linux channel: для этого в секции [ol5_u5_base] устанавливаем параметр enabled=1

4) Выполняем команду:

yum install oracle-linux

5) Перегружаемся.


Рис.1 Установка ядра Oracle Enterprise Kernel

В процессе перезагрузки я увидел магическое сообщение:
Enterprise Linux Enterprise Linux Server Release 5.5 (Carthage)
Kernel 2.6.32-100.0.19.el5 on an x86_64

Когда я тестировал установку ядра в виртуальной машине VMWare, меня приятно удивила процедура установки VMWare Tools в гостевую систему. Скрипт конфигурации VMWare Tools определил, что это это ядро ему неизвестно, и успешно скомпилировал и пересобрал их под это ядро.


Рис.2 Для сборки VMware Tools необходимы gcc, make и kernel-headers

После того как компилятор, утилита make и заголовки ядра были успешно обнаружены, я наблюдал магический процесс сборки VMWare Tools под ядро Oracle Enterprise Kernel.


Рис.3 Сборка VMWare Tools для ядра Enterprise Kernel


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

наши на oracle.com ! (продолжение)



В продолжение темы появления ребят из Yandex на oracle.com теперь можно посмотреть и другие видео.

Вымпелком

Vimpelcom Selects Oracle and Sun Products
Vimpelcom Relies on Oracle
Oracle Database: Highly Reliable, Easy to Manage

Еврохим

Eurochem Consolidates Information with Oracle
Eurochem Choses Oracle for Tailor-made Solutions
Oracle BI Turns Eurochem into a Market Leader
Oracle Reduces the Reporting Process for EuroChem
Eurochem on Benefits of Oracle-Sun Acquisition

М-Видео

M-Video Uses Oracle Siebel to Satisfy Customers
Siebel Loyalty Is Best Fit for M-Video Requirements
Oracle Siebel Loyalty Was the Perfect Choice
Siebel Loyalty Means More Frequent Purchases
Siebel Loyalty is M-Video’s Primary CRM System
Siebel Lets M-Video Builds Customer Engagement
M-Video Deploys Siebel in Alfabank Project

Итера

Itera Moves from Excel to Oracle
Itera Consolidates Financial Reporting with Oracle
Itera Creates Parallel Reporting System on Oracle
Itera Optimizes Data Management with Oracle

Интегра

Integra Relies on Oracle's Hyperion Essbase for Reliable Information
Hyperion Essbase Provides Integra with a Single Source of Truth

ВТБ24

VTB 24 Chooses Oracle Database -- the Market Standard
Oracle Siebel Helps VTB 24 Show Profit Despite the Financial Crisis

...и еще раз Яндекс !

Yandex Becomes an Early Adopter of Oracle Products
Oracle Meets Yandex’s Needs for Reliability and Configurability
Oracle Helps Yandex Provide Internet Services 24/7


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

Virtualization in Real Life

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

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

Итак, вот ситуация из жизни реального заказчика из сегмента middle-бизнеса (фильм основан на реальных событиях, - любые совпадения абсолютно случайны :-) ):

- есть два приложения, которые сейчас работают каждое на своем сервере;
- первое приложение представляет собой систему учета персонала, этот софт разработан независимым поставщиком, работает под управлением Oracle Database версии 10.2 на Linux ;
- второе приложение было разработано собственными силами: использутся Oracle Database 11.2, Oracle HTTP Server 11.1 и APEX (все на платформе Windows x64), эта система автоматизирует вспомогательные бизнес-процессы в компании;
- от этих двух СУБД не требуется экстремальной производительности, и они не являются business-critical (допустимое время простоя измеряется парой часов).

Пришло время менять оборудование - серверы морально и физически устарели. Возникла идея разместить эти две СУБД на одном сервере с помощью виртуальных машин (производительности обычного 2-х сокетного сервера на последних процессорах Intel для этих задач вполне достаточно).

Только факты:
На сервере установлено 4 жестких диска:
- два SAS диска по 300 Гб (15000 об/м)
- два SATA диска по 2 Тб (7200 об/м)

Оперативная память - 16Гб.
Два сетевых интерфейса 1Гб/сек.

Каждая пара дисков была объединена в зеркало, таким образом имеется 300 Гб пространства на быстрых дисках и 2 Тб - на медленных.

Вообщем обычный и недорогой 2-х сокетный сервер начального уровня.


На первом этапе было спланирована структура виртуальных машин (каждая ВМ состоит из 4-х дисков):

Образ диска ВМ с операционной системой (файл system.img);
Образ диска ВМ с выполняемыми файлами (файл orahome.img);
Образ диска ВМ с файлами данных СУБД (размещен напрямую на физическом разделе быстрого жесткого диска);
Образ диска ВМ с файлами flash recovery area и архивными логами (размещен напрямую на физическом разделе медленного жесткого диска).

На сервер был установлен Oracle VM 2.2.1.

Быстрый жесткий диск был разбит на разделы (partitions) следующим образом:
1-ый раздел: 20Гб - для операционной системы Oracle VM (отформатирован);
2-ый раздел: 70Гб - (НЕ форматирован);
3-ый раздел: 70Гб - (НЕ форматирован);
4-ый раздел: 70Гб - (НЕ форматирован);
5-ый раздел: 70Гб - (НЕ форматирован).

Что касается медленного жесткого диска, то он был разбит вот так:
1-ый раздел: 750Гб - для хранения файлов образов ВМ (отформатирован);
2-ый раздел: 250Гб - (НЕ форматирован);
3-ый раздел: 250Гб - (НЕ форматирован);
4-ый раздел: 250Гб - (НЕ форматирован);
5-ый раздел: 250Гб - (НЕ форматирован);
6-ый раздел: 250Гб - (НЕ форматирован).


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

Вот строки из конфигурационного файла гостевой машины:

disk = [
'file:' + root_dir + '/system.img,hda,w',
'file:' + root_dir + '/orahome.img,hdb,w',
'phy:/dev/sda5,hdc,w!',
'phy:/dev/sdb5,hdd,w!'
]

В свою очередь, внутри виртуальной машины, каждый диск, используемый напрямую, включен в ASM-группу. На каждой виртуальной машине создано две ASM-группы:
- ORADATA (монтирует раздел с быстрого диска);
- ORAFRA (монтирует раздел с медленного диска).

Использование ASM позволяет нам еще больше увеличить производительность ввода-вывода, поскольку устраняется уровень файловой системы.

С какой целью была сделана такая странная разбика дисков на разделы?

Если по ходу эксплуатации понадобится увеличение дискового пространства для файлов СУБД, то будет производится простое добавление свободного раздела в виртуальную машину с последующим добавленим нового виртуального диска в соотвествующую ASM-группу (oradata или orafra). Более того, если позволит мощность сервера, то можно легко запустить третью виртуальную машину дав ей свободные разделы. В результате, появляется гибкость в управлении дисками для виртуальных машин.

Рис. 1 Схема отображения физических дисков в виртуальные


После определения стратегии перехода в виртуализированное окружение, были созданы эталонные виртуальные машины. На первую установлена ОС Linux (OEL 5U5 x86) на вторую MS Windows x64. Установлено необходимое ПО Oracle. Произведен патчинг и настройка всего софта. Полученные "золотые" образы ВМ были после этого немедлено забэкапированы...
Собственно, дальше все как обычно: перенос данных СУБД с старых машин на виртуальные и переключение соответствующих приложений на два новых "сервера".

Рис. 2 Схема запуска виртуальных машин на аппаратном сервере

По признанию самих пользователей, - приложения стали работать быстрее ! :-)
Конечно в этом заслуга новых интеловских процессоров Xeon Nehalem.

Резервные копии ВМ также лежат на втором сервере (используется для тестирования и разработки), чтобы в случае сбоя основного сервера запустить виртуальные машины на резервном.

Что в итоге дала виртуализация:
- консолидация и уменьшение затрат на железо (вместо двух серверов закуплен тольно один);
- необычайная легкость создания тестового и development окружений: простым копированием образа ВМ на другой сервер мгновенно получаем готовое тестовое окружение в точности соотвествующее production-системе (копирование сырых разделов производится командой dd);
- обычные методы резервирования БД (копирование, экспорт-импорт) дополняются возможностью копированием целиком образа жесткого диска с файлами данных;
- бэкапировани ОС и бмнарных файлов теперь производится простым резервированием файлов образов system.img или oracle_home.img
- частичное бэкапирование образа при патчинге (если менялся только бинарный код, то резервировать нужно только виртуальные диски в файлах system.img и oracle_home.img, если менялись только данные - то наоборот: бэкапировать нужно только виртуальные диски с данными);
- если в будущем производительности сервера будет недостаточно для запуска 2-х виртуальных машин, то можно будет практически мгновенно "отвезти" одну гостевую систему на другой сервер;
- можно задавать приоритеты и распределение нагрузки между виртуальными машинами (если одна из них выполняет более приоритетную задачу);
- если в будущем все-таки понадобится обеспечить отказоустойчивость, можно будет ее обеспечить с помошью Live Migration;
- каждую виртуальную машину можно останавливать-запускать по отдельности (по расписанию).

После того, как я поглядел и "потрогал" все это, у меня родились какие-то новые ощущения.
А у вас ?
:-)


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

zfs и все-все-все

Update 1: Oracle Database Single Instance на ZFS: учимся готовить by Роман Иванов. Отличное и профессиональное дополнение про zfs !

'1-Быстро. 2-Хорошо. 3-Дешево - выберете любые 2 пункта' - эта старая шутка как никогда хорошо подходит к выбору файловой системы для хранения нашей любимой СУБД. Но перед как начать бросаться выбирать, очень многие забывают ....a) о цели, б) и о том, что выбрать удасться только 2 из 3-х пунтков.  Если у нас жесткая OLTP система, которая растет на 100 MB в лучший год - это одно. Если у нас большое  хранилище, дающее вам 1 новый TB за ночь - это совсем другое. Если у нас обычная БД без особых требований по производительности, но вокруг нее сидят отчеты, разработчики, непрерывно требующие копий БД - то нам нужны к сервисы  в виде снимков (snapshots).

 И не удастся найти  однозначное  лучшее решение для таких разных вариантов.  Если люди начинают разговор о выборе ФС без указания задачи - значит они не знают чего хотят. Сорри.

Предположим,  что нам в жизни повезло и у нас Solaris. И какой у  нас тогда есть выбор ?

Во первых - raw device. Это безусловно самый быстрый и дешевый способ  в мире. Отсутствие какого либо интеллекта перекладывает все заботы на СУБД. Подходит для очень нагруженных OLTP, но управлять сотней устройств для DWH очень не удобно. Поменять размер - нельзя. Делать снимки (snapshots)  нужно командой dd  :)) Все руками, все. Без права на  ошибку.  Итого, получаем  пп 1 и  3.

Во вторых - ASM. Поскольку ввод вывод по прежнему идет напрямую к raw устройствам, то это быстро.  Бесплатно для всех ОС. Хорошо ли ? Очень специфичная система хранения, файловая система и снимки (snapshot) придумали к ней только что с пока неизвестной производительностью. Сжирает диски со страшной силой - normal redundancy может защитить только от сбоя одного диска. Если падает - БД лишается доступа к дискам. Но на всех ОС одинакова. Если у Вас туча баз на разных операционках - ставьте ASM, играйте с ее новыми возможностями..Всякие снимки делайте c помощью rman + standby. Зарабатывает пп 1 и 3.

В третьих - ufs. Уже удобно управлять, но уговорить не беспокоиться файловый кэш Solaris совсем не просто, хотят и можно поправив настройки ядра. Я делал - и это помогает. Правда перед этим пришлось узнать что такое файловый кеш операционной системы и как именно он работает.   Direct IO - вам в помощь. Если не DWH.  И все же  ufs все же не самый быстрый вариант в мире, потому как мало у ее настроек и это очень generic вещь.   Итого  у нас пп 2 и 3.

В четвертых - zfs.  Реально смотрится клево, поскольку многое из-того, что было доступно только на NetApp появилось ...просто на x86.  Вот наверно самое короткое объяснение всех сладостей.  Одно из основных для нас - снимки (snapshot). Zfs их делает в манере copy-on-write, т.е. создает новый блок (точнее extent) только при попытке его изменения. Но  на мой взгляд правильная практика - держите снимков так мало, как только можете. Один или два. Сделав backup - удаляйте. Консультант из NetApp лет 5 назад рассказывал мне историю, что однажды у его клиента легла систем. Когда его вызвали, оказалась что там было чуть ли не 250 снимков одновременно. Когда он спросил зачем столько, оказалось что ...клиент просто забыл, что они делаются у него из крона...

Перед использованием - учитесь правильно готовить, по крайне мере поставить правильный размер блока  и отключить check суммы (zfs set checksum=off filesystem) можно догадаться.  Конечно zfs должна быть быстрее ufs в первую очередь за счет кэша, т.е. для приложений которые много читают. К тому же можно легко делать разные ФС с разными политика (datafiles, redo logs). В общем, достать производительность можно, было бы желание. Конечно, приблизиться  к raw удаться вряд ли.

Теперь о фрагментации zfs - читать тут. Простыми словами:  zfs все пишет/читает эктентами по 128k, которые держит в своих разных виртуальных пулах.  Т.е. все что вы туда положили сразу дефрагментировано. Если вы что-то меняете, zfs старательно накапливает в памяти и только потом сбрасывает. Для нее создать новый extent - как нечего делать. Как правильно замучить zfs?  Начать менять Менять по 1 байту всю базу со смещением 128K и сделать как больше снимков, штук 100. Загнется очень быстро, как пить дать. Кстати, так еще и производительность будет хуже чем у ufs. Потом пойти на sql.ru и написать об этом.   Zfs заработывает пп 2 и 3.

В пятых  - Veritas FS (+Volume Manager). Возможностей море. С реализацией Oracle Disk Manager догоняет raw устройства. Ей можно сказать сделать 100Gb датафайл и ...не пройдет секунды как получите ответ,  что готово. Сервис по снимкам (snapshot)  лучший в мире. Используется в самых нагруженных инсталляциях в мире. Зарабатывает пп 1 и 2, потому как просто стоит денег. Но это всего лишь деньги, не так ли ?

Для безденежных донов,  на Solaris, на мой взгляд остается только два выбора - ASM и zfs. Смотрим на первую фразу в этом сообщении, делаем свой выбор. Еще раз, пожалуйста обратите внимание, надо знать что делает приложение, и только тогда можно выбрать наиболее подходящую файловую систему. Я так думаю.

PS Иногда мне делают замечания в комментариях по стилю или правилам русского языка.  Большое спасибо, я вношу исправления, но не всегда их публикую, если они не относятся к теме поста, чтоба не засорять блог. В любом случае - большое спасибо. Опубликовать такое замечание можно даже анонимно,  если у Вас нет google account.


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

Oracle Open World. Day 4

Надеюсь что вы следите за OOW не только в этом блоге,  но и также в ряде других :)

Обязательно прочитайте все что выложил Mike Dietrich в своем Upgrade блоге, особенно презентацию про 11g Extended RAC.

Kevin Closson написал про новую  Exadata.

Wim Coekaerts написал про новый kernel, а также про новый RAC 11.2.0.2 template for Oracle VM

Продолжайте пожалуйста список найденных вами интересных блогов   в комментариях.

Open World 2010, к сожалению закончился.  Началась подготовка к Open World 2011 !

PS SF, 2009 год


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

"...что такое Cloud Computing?...", часть 3

На Open World 2010 Ларри Эллисон выпустил третью серию своего популярнейшего триллера "Cloud Computing". Прервую серию можно посмотреть (а точнее, послушать и прочитать текст) здесь, вторую можно посмотреть здесь, а все три сразу здесь.


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

Oracle Open World. Day 3


Ларри Эллисон был вполне корректен, когда объяснял что такое Cloud - ""It's elastic, it's virtualized, and you pay only for what you use".

А вот Thomas Kurian проговорился зачем же Oracle нужен Cloud Computing - "теперь вместо сотен отдельных [дешевых] серверов используйте строительные блоки типа Exadata и Exalogic".

Два отличных ролика: Cloud Computing и  This is a money decision.

Выступление Ларри: Exadata, Exalogic, Solaris 11, MySQL 5.5, Enterprise Linux Kernel.

Tom Kyte: о новых возможностях все еще  бесплатных средствах разработки для Oracle Database. Рассказывая про Edition Redifinition, Tom специально отметил что эта возможность доступна без дополнительной оплаты как в EE так и в SE редакциях.

Андрей Пивоваров пишет, что SQL Data Modeler теперь будет бесплатным. Если так, то складывается полный цикл проектирования и разработки используя только бесплатные средства.

PS: На фотографии SF, 2009.


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

Oracle Open World. Day 2

Update 2. Этот пост был обновлен 22.09 в части Exadata Как уже заметили в комментариях к предыдущему дню объявили SPARC T3. Первый 16 ядерный серверный процессор - не так плохо :) Можно получить в 5U размере 64 ядра, 512 потоков, 512 Gb памяти. Всего 4 сокета. Ага, значит можно поставить SE ? Поставить то можно, но процессорная мощность для небольшой БД слишком велика, а для большой без секционирования, сжатия это не очень осмысленно. А за EE при действующих коэффициентах 0.75 придется заплатить слишком дорого. На помощь пришли бы LDOM, как и говорил Роман Иванов вышел обещанный VM server for Sparc 2. 0 с возможностью динамического перераспределения памяти, но пока нет новостей, что LDOM распознаются как hardware partitioning. Очень нравится мне эта технология, классные машинки на ней делают, но стоимость убивает все, и как конкурировать с intel based я не понимаю. Хотя именно в этом возможно и есть задумка...

Выпущена целая линейка новых ZFS Storage Appliance. В них во всех стоят Flash карточки, которые используются как кэш не только на чтение, но и на запись, поддерживается немыслимое кол-во протоколов, множественные дисковые пулы, в том числе для high-availabale clusters (последнее это скорее всего свойство zfs). Особенный упор делается на неограниченное кол-во снимков файловой системы (clone), которые можно делать благодаря zfs. Но тут же маркетинг не смог устоят и выпустил отдельный whitepaper, что ZFS это крутое дополнение к Data Guard. Упор тут делается на то, что делать backup а потом восстанавливать это долго, а снимок - быстро. А как же rman duplicate from active database ? В общем, мне показалось что все это затеяно из-за борьбы с NetApp. Но если интересно, что же такое ZFS Storage Appliance, вот тут дают симулятор к 7xxx серии. Про ZFS хочется написать отдельно, на sql.ru народ соревнуется в непонимании как использовать copy-on-write snapshot. Вы просто не умеете их готовить, поверьте.

У нас теперь сразу две новых Exadata: X2-2 и X2-8 и уже обновился price list. Читать эти аббревиатуры надо так: X - intel based, 2 - версия, -2 или -8 число сокетов, HP - high perfomance (600 Gb SAS диски), HC - high capacity (2Tb SAS диски).

Изменения в X2-8: заменили процессоры на 8 x eight-core Intel® Xeon® X7560 processors. Поставили 10GbE Controller, понаставили больше карточек в database hosts. Перевели на Oracle Linux 5 Update 5 with the Unbreakable Enterprise Kernel, теперь требуется Oracle database 11.2.0.2 или выше. И это все ? Да, 10GbE это было нужно, и молодцы что сделали. Но теперь в Exadata не 8-и узловой RAC, а всего 2-х узловой, что значит что X2-8 бывает только Full Rack. Что дает нам меньше возможностей по разнесению приложений на разные узлы. В общем, с точки зрения архитектуры RAC я всегда считал, что узлов имеет смысл ставить не менее 4-х. Сокращение до 2-х узлов пока не понятное мне архитектурное решение....Добавление 3-его узла конечно добавляет 3-way messaging, но я не знаю случаев когда это бы 'убивало' приложение. Т.е., грубо, если заработало на 2-х узлах, то дальше проблем существенно меньше.. Отличная идея зачем мог потребоваться этот вариант в комментариях Сергея Данилова..У меня нет идей.

Изменения в X2-2: Обновили database ноды и storage node, стало больше памяти и ядер, по прежнему поставляется в 3-х вариантах: четверть, половина и полная стойка.

Отличное сравнение старой Exadata и новых вариантов можно найти здесь.

Сообщество не приминуло пройтись по термину well-balanced configuration, с которым выходила Exadata V2. Теперь добавили процессоров, памяти - и конфигураци стала еще больше well-balanced ? :) Также по данным из whitepaper X2-2 Full Rack по производительности остался такой же как и Full Exadata V2, несмотря на явное увеличение мощности. Наверно это можно объяснить что диски и каналы ввода вывода остались прежними.

Появилась еще одна загадочная фраза "This is done by moving decryption processing from software into the Exadata hardware". Что это такое и как обходить таможенные ограничения теперь ?

Но никакой революции, такой как была с выходом Exadata V1 или V2 я не увидел. Обидно. Зачем сделали две ветки мне совершенно непонятно. С другой стороны введение аббревиатуры X (intel) обнадеживает - возможно появяться и другие варианты ? Кстати про Unbreakable Enterprise Kernel. Я вообще не хотел про это писать, но столько шума вокруг этого факта. Обычно люди тратят массу усилий, для того, чтобы сделать свой продукт совместимым. В начале жизни Oracle Linux уже была попытка сделать свою ветку, слава богу быстро прекращенная. Остановились на смене логотипов. И вот опять, пожалуйста используйте специальное ядро 2.6.32. Ага, а где брать под него скажем ASM LIB ? Я понимаю, что собирая Exadata и Exalogic для обеспечения надежности/производительности пришлось сделать правки, но зачем всех под эту гребенку мести ? Но пожалуйста без паники, выдержка из пресс-релиза: "Under the Oracle Unbreakable Linux Support Program, customers can receive full support for Oracle Linux running with either the Unbreakable Enterprise Kernel or the Red Hat Compatible Kernel"

PS На фотографии SF, год назад. Судя по прогнозу, погоды сейчас стоят похожие.

Читать Андрея Пивоварова (Oracle) про OOW.


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

Oracle Open World. Day 1

Сегодня Oracle анонсировал  Oracle Exalogic Elastic Cloud. Для тех, кто следил за блогом, и знает что такое Exadata, скажу коротко - теперь в тот же hardware вместо Database и Storage nodes теперь поместили Oracle Weblogic Suite, который включает в себя Oracle WebLogic Server, Oracle Coherence, Oracle JRockit, and Oracle HotSpot.

В принципе этот шаг давно ожидался, поскольку заказчики часто спрашивали, а можно ли  в Exadata установить сервер приложений ? И ответ был такой - да, это можно сделать, просто купив full rack и лицензировав под Exadata только половину. Тогда на вторую половину можно было поставить сервер приложений.

Теперь Oracle сделал этот шаг сам - полностью сконфигурированное решение, готовое для выполнения java приложений. Фактически, если у Вас java приложение - то вам нужно купить два шкафа - Exadata для СУБД и Exalogic для сервера приложения. Все. Соединить их можно будет через Infiniband, что будет очень быстро.

Для меня пока не понятно что такое Exalogic Software, кроме как набор каких-то патчей, сделанных для оптимального выполнения WebLogic. Если кто-то узнает больше - поправьте меня.

Что действительно интересно, так то, что в качестве OC можно выбрать как Linux, так и Solaris.
Спокойно, спокойно ;) Solaris x86, процессоры там все же по прежнему Xeon..Теперь ждем когда в Exadata можно будет также заказать Solaris...
Также, очень похоже, что в Exalogic все работает под управлением Oracle VM, значит можно ожидать что и в Exadata появится Oracle Vm...

Прочитайте  whitepaper на тему Exalogic.

Да, к сожалению авторы блога не поехали в OOW, так что все новости мы получаем одновременно с вами..

Update 1. Нашел картинки с OOW, так вот там две машины (Exadata и Exalogic) стоят рядом, т.е. нужно брать две. Интересно как это сочетается с виртуализацией, экономией места в серверных комнатах. Мне было бы интересно узнать ответ продавцов Oracle :)))

Update 2. В keynote Ларри несколько раз обещает, что будет единый патч для всего множества продуктов внутри Exalogic.


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

Oracle VM for SPARC aka LDOM

Роман Иванов (ex Sun, теперь Oracle) провел прекрасный семинар по технологии LDOM. Некоторые запомнившиеся мне вещи:

- LDOM живут только на T Series

- Гипервизор живет прямо в firmware. соответсвенно и обновляется вместе с ним

- Создание новоого домена занимает буквально минуты.


- В домены можно динамически добавлять процессоры (уже в текущей версии 1.3)  и память (начиная с версии LDOM 2.0)
-  Есть интересные возможности по перераспределению ресурсов между доменами

Возникло достаточно много интересных дискуссий,  как ведет себя СУБД когда у нее добавляют и отнимают процессоры. Сошли на том, что с добавлением процессоров  - все ОК, а с отниманием нужно или пропатчить 10.2.0.4 или использовать 11g.

С памятью получается поинтереснее. Ставить sga_max_size бессмысленно, так как это не динамический параметр. Можно  его поставить заранее больше, с тем, чтобы когда память поступит в домен sga_target смог подвинуться до этого значения. Но в этом случае есть риск, что система уйдет в swap. Скорее всего стоит перейти к ручному управлению памятью, сразу установив MEMORY_TARGET=0 и SGA_TARGET=0. 


Материалы  семинара в блоге Романа.

На этом мероприятии Oracle Маркетинг превзошел самого себя, помимо отсутствия рассылки информации о событии - в аудитории  не было проектора, не было доступа в интернет для показа демонстрации, не было вообще никакой информации у сотрудников ISV центра об этом мероприятии.

Роман виртуозно выкрутился из этой ситуации с помощью слушателей, особенно восхитил трюк с подсоединением к тут же созданной wi-fi точке доступа через 3G..

Ссылки по теме:
Понравившиеся мне описание технологии
http://www.oracle.com/us/oraclevm-sparc-wp-073442.pdf


Пресс-релиз
http://www.oracle.com/us/corporate/press/170718
Там обещаны новые средства восстановления в zfs, p2v для контейнеров (раньше я так понимаю были только для LDOM) ну еще некоторые вкусности, понять которые я пока не могу...

Картинка из  http://www.sun.com/blueprints/0207/820-0832.pdf


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

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 мы подробно расскажем в отдельном посте ...


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

Yet another Conference - 2010

Yet another Conference - 2010

1 октября в Центре международной торговли Яндекс организует профессиональную конференцию, посвященную высокопроизводительным системам. В ней примут участие ведущие специалисты компаний ABBYY, Google, Intel, Oracle, Skype, Spirit, SUP, Yahoo! и Яндекс.

Основные темы конференции - хранение данных, инструменты, тестирование, обработка мультимедиа, web mining. Впервые в России докладчики подробно расскажут о технологиях Elliptics, Hadoop, Lunapark, Map Reduce, Parallel Composer, Phantom, Skype Kit, Thread Sanitizer и о многом другом.

Программа YaC-2010 и тезисы выступлений.

Мы приглашаем на конференцию разработчиков, тестировщиков, системных администраторов, студентов, которые специализируются в этих областях, а также всех заинтересовавшихся.

Участие в конференции - бесплатное.

Начало регистрации в 9:00, открытие конференции в 10:00.

Зарегистрироваться.

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

А еще на этой конференции вы узнаете, что такое Root.Yandex.ru

Адрес: Краснопресненская набережная, 12, Центр международной торговли, Конгресс-центр


PS
Публикуется на правах уважения к компании и ее продуктам, никто из авторов блога, к сожалению, в Яндекс не работает


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

наши на oracle.com !

Олег Юхно и Алексей Зиновьев, в видео роликах c www.oracle.com на английском языке (!) рассказывают о своих проектах.

Для просмотра видео требуется поставить Real Player. Прошу Вас, потратьте 5 минут, это стоит того! Чтобы начать просмотр просто кликните на соответствующую картинку.
И пусть видно, что ребятам тяжело, они подбирают слова, что конечно же прежде всего стараются рассказать где они круче google :)) - я считаю, что то, что они сделали, это очень круто. Им есть что рассказать, они могут и хотят это сделать. На английском языке. И они, насколько я знаю, первые. Я преклоняюсь. Знай наших !

UPDATE: Еще линки

Yandex Becomes an Early Adopter of Oracle Products
Oracle Meets Yandex’s Needs for Reliability and Configurability
Oracle Helps Yandex Provide Internet Services 24/7


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

календарь

Обратите пожалуйста внимание, справа на этой странице 'ожил' календарь. 15 сентября будет очень интересный семинар: Sun'ские  LDOM (которые какой-то нехороший человек обозвал Oracle VM for SPARC)  и ...RAC  на них. Проводит семинар Роман Иванов, ex Sun, теперь Oracle.   Пожалуйста, распространите эту информацию у себя в организации. Отдел маркетинга Oracle научить проводить события и распространять информацию я уже не смогу....да и не буду, я за это не компенсируюсь :)))))



На всякий случай, если кто не знает, официальный сайт, где должны быть все события oracle - events.oracle.com. Там даже есть волшебная функциональность - подписаться по rss на результат запроса.

Другая важная вещь: чтобы быть в курсе происходящего в Oracle  - это честно заполнить profile и подписаться на рассылки (анг). От рассылок, если они вас достанут вы там же и отпишитесь, ничего страшного.

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


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

mtbf, mttf

Страшные аббревиатуры, которые я привел в заголовке, обозначают:

MTBF - Mean time between failures, MTTF - mean time to failure.

Рассчитать их можно, используя формулы из Sun BlueprintsHigh Availability Fundamentals 

MTBF  = T/R
где
T = Общее время теста
R = Количество ошибок

MTTF можно рассчитать как:
MTTF  = T/N
T = Общее время теста
N = Число тестируемых образцов

И наконец доступность определяется как:
Avaiability = MTBF / ( MTBF + MTTF)



После прочтения  Blueprints  я сразу же решил найти эти характеристики для оборудования Oracle/Sun. И...не смог. Данные о MTBF  есть только на компоненты, а не на систему в целом. Это выглядит достаточно странно, потому что таким образом нет измеряемой разницы между Enterprise решением и простой машинкой на Intel Xeon. Понятно, что разница между системой, которая продолжает работать при отказе процессорной платы (hi-end Sun продолжают работать при отказе одной процессорной платы, позволяют ее менять без остановки системы) и той, что сразу останавливает, должна быть. Иначе не понятно, за что такие деньги.  Но этой информации я не нашел.


Я даже позвонил в московское представительство Oracle/Sun чтобы попытаться получить эти данные. Но ..также не смог получить эти данные. Если они у Вас есть  - буду вам благодарен. Может в Oracle их  потеряли после покупки Sun'а  ? :)))


Хорошо, пойдем дальше. Ниже приводится таблица с пересчетом процентов доступности во время простоя в года. 




Внимание, вопрос как же рассчитать нам availability системы для нашей Oracle Database ?

Ну конечно же взять характеристики нашего hardware + oracle software +нашего приложения. С hardware мы разобрались - данных нет. C Oracle Database Server  - картина та же самая -данных нет.

Нам остается только проводить  эксперимент с нашим приложением. Если у нас есть Standby, то можно аварийно завершить наш production, затем data guard broker активирует  Standby а наше приложение автоматически переключиться  на Standby.  Хочу опустить, сколько всего нужно сделать, чтобы это заработало, но думаю, что пройдет не менее 10 минут, пока приложение восстановит свое обычное кол-во транзакций в минуту.
Интересные данные о времени восстановления приводили коллеги (Александр Алехин) из МегаФон-Москва, при тестировании RAC:

common RAC (2 active): 2 минуты
active + passive: 4 минуты
active + standby (active_instance=1): 5 минут

Если исходить из приведенных мной данных, то RAC позволит вам остаться на уровне 3-х девяток после запятой, если использовать все узлы в активном состоянии. Другие комбинации приближают нас к  Standby - т.е. к  2-м девяткам. Хотя на практике для вашей БД и приложения
Standby может переключаться очень быстро,  что время от времени утверждали слушатели наших семинаров.

Но мы рассматривали вариант простоя  из-за аварии. Однако, если вы посмотрите любые материалы по MAA (скажем этот), обнаружите, что кроме аварий есть еще и планируемые простои - на обновление версии СУБД. В документации есть хорошая подборка всех методов.

Наверно существенная часть простоев  - на обновление версии СУБД. Горячие головы утверждают, что при помощи Rolling upgrade, используя промежуточную logical Standby можно добиться времени простоя в 2 минуты.

Конечно у нас есть еще и простой на время обновления нашего приложения, уменьшить время которого призван механизм Edition-Based Redefinition.

Выводы:
 -  если очень - очень сильно упереться, то при помощи RAC можно получить систему с доступностью 3 девятки после запятой. Скорее всего, чтобы выдержать эту цифру, при этом потребуется не обновлять приложение. При этом надежность 'железа' не будет играть ключевой роли. 

- если упереться, но чуть поменьше, то с помощью standby можно достичь 2-х девяток после запятой. Но приложению лучше знать про FAN и уметь восстанавливать контекст транзакции.

- ну и наконец, если следовать теории, что быстро поднятое не считается упавшим, с помощью HA кластера вполне реально достичь 1-ой девятки после запятой. (сам HA конечно очень быстро все переключает, но не позволит делать обновления БД).

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

В заключение, еще раз хочу обратить внимание, что следует измерять время простоя не до  поднятие ip адреса, не когда прошел первый ping или tnsping, а когда ваше приложение начало работать с требуемым у вас service level agreement (SLA). А значит у Вас должен быть этот самый SLA...


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

как правильно составлять резюме

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

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

Основная ошибка, которую часто совершают молодые специалисты - указание в резюме огромного кол-ва технологий. Perl, shell, visual basic, Oracle, MS Word, Excel, MS SQL перечисляются в одном абзаце. Резюме все-таки должно отличаться от тега meta-keywords для поисковых роботов :)

Следующая ошибка - несфокусированность на позицию. Т.е. вроде бы каждый администратор умеет писать на pl/sql, но если вы ищете работу именно администратора, не стоит долго расписывать какой вы замечательный разработчик на Oracle Forms 3.0. Попробуйте больше времени уделить именно своим знаниям по администрированию.

Отсюда следствие - резюме надо менять под каждое собеседование. Под каждое, в зависимости от позиции, на которую вы претендуете. Ищут админа на Solaris - смело выкидывайте все свое замечательное знание платформы Windows из вашего резюме. Внимательно изучите организацию, прочитайте требования и попробуйте понять, как с их точки зрения выглядит идеальный кандидат. Что он должен уметь. И смело отсекайте, то что им не требуется. Вдруг среди тех, кто придет вас собеседовать, будут те, кто решат что вы скрытый "виндузятник" :) и начнут вас заваливать.

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

И наконец, самое лучше резюме - это ...отсутствие резюме. Не скрою, в последнее время у меня было несколько очень запомнившихся собеседований, на которых...я не приносил вообще никакого резюме. Потому что, если люди меня не знаю, то вряд ли мне стоит у них работать, не так ли ? :))))))))))

Мне бы очень хотелось подсмотреть, что же такого написал Данилов в своем резюме, что его сразу взяли в UK :))


Update 1. Я нашел самое короткое резюме в мире :)):
"Larry Ellison has been CEO of Oracle Corporation since he founded the company in 1977. He also races sailboats, flies planes, and plays tennis and guitar"

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


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

epic fail.part 2

Совсем недавно, около 10 дней назад, по сообщению Interfax, конденсатом залило сервера, на которых хранились заявки граждан на получение загранпаспортов.  Ничего страшного, бывает. Жара. Смешно  другое, что в результате, система простояла не менее 5 дней. Итак, у вас есть система, заказчиками которой являются все жители страны старше 16 лет, при этом каждый заказчик платит вам 2500р ($83)  за паспорт...но у Вас все-таки не хватает денег на резервную систему и даже  нормальный кондиционер. При общей стоимости системы не менее 200 млн рублей.   Раз система простояла 5 дней, то вряд ли они ее восстаналивали из backup -это заняло бы гораздо меньше времени. Скорее всего (это мое предположение), собирали заново, недостающее пересканировали..

Ok, можно украсть и разворовать все что угодно, но сделать резервную  систему изо всякого хлама стоит совсем недорого. Сейчас многотерабайтный NAS стоит несколько тысяч рублей.  Навтыкать дисков в Linux машинку и  поднять Openfiler - делов на пару часов. Складывать там резервные копии - простейший скрипт. Но, см. например сюда:  "70 баз работают 8 лет в режиме noarchivelog, при сбое носителей простой базы может дойти до 3-х дней , естественно с потерей данных за последний день, мало того даже холодные бэкапы не делаюся, делается полный экспорт базы, из которого база (90 Гб) восстанавливается 30 часов. Это всех устраивает!". Без комментариев. Дело не миллионах рублей и дачах, построенных на эти деньги. Дело все-таки в отношении к своей работе...

PS Ну  а пока вспомните, когда последний раз вы пробовали восстановиться, из того, что вы считаете своим backup :))  Так, на всякий случай, чтобы про вас не написали в газете.....


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

epic fail.part I

По сообщению РосБизнесКонсалтинг хакеры получили доступ к конфеденциальной информации на сервере службы ФСО. При близжайшем рассмотрении, оказалось, что это был сервер, где был установлен продукт Дозор-Джет, для которого я несколько лет назад разрабатывал серверную часть и некоторые утилиты по администрированию. Дозор-Джет среди прочих возможностей, осуществляет фильтрацию почтовых сообщений, предоставляет доступ системе поиска по сообщениям. При этом вся информация хранится в Oracle Database. Конечно СМИ в восторге, "взломан" сервер, предназначенный для обеспечения безопасности!

Однако, на основе опыта внедрения Дозора в нескольких организациях, я осмелюсь предположить, что взлома, как такового и не было. Было поразительное головотяпство, при котором после установки "забыли" убрать сервер с Дозор-Джет в ДМЗ. "Хакеры" нашли открытый ip адрес на котором отвечал web сервер, затем, скорее всего прочитав документацию, вошли с паролем по умолчанию. Если все так, как я предполагаю, доступ им удалось получить только к web-интерфейсу с тестовым набором e-mail сообщений. При переводе системы в production отдельно убеждались, что Дозор стоит в ДМЗ.

Конечно, если бы попались умники, они бы могли попробовать sql injection, но похоже, что на это ума уже не хватило. Кстати, насколько я могу вспомнить, защиты от sql injecttion в Дозоре не было, поскольку считалось, что к этой системе имеют доступ только доверенные персоны.

Рекомендованной конфигурацией являлась установка web интерфейса отдельно от СУБД. Как было сделано в вышеприведенном случае я конечно не знаю. Но если СУБД находилась на этом же сервере то появлялись возможности для более серьезного взлома.

Любое допущение в системе безопасности - есть дыра, а пароли по умолчанию - самая большая из них. В принципе и Oracle не сразу догадался закрывать (lock) пользователей по умолчанию (кажется только начиная с 9i). По вот этой ссылке утверждают, что всего за 2 дня удасться перебрать все 8 сивмольные комбинации, и без включения password policies рано или поздно пароль подберут . Кстати, в 11gR2 учетная запись будет автоматически заблокирована после 10 неудачных попыток.

Хорошей практикой является прослушивать только определенные подсети, выделенные для администрирования. К сожалению, в Listener можно вносить только конкретные адреса, для подсетей придется использвать cman. Да, и закрыть паролем Listener было бы также неплохо.

Если вы прочитали все вышепериведенное и не нашли для себя ничего нового, почему бы не прочитать про Oracle Database Firewall ? А если у Вас Solaris, то даже и вот это :)


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

PL/SQL Native Compilation - "разгон" выполнения хранимых процедур

Oracle Database версии 11g, помимо множества новых возможностей и улучшений, принесла еще одну замечательную технологию - PL/SQL Native Compilation.

Мне думается, что у большинства читателей этого блога для реализации бизнес-логики активно используется именно PL/SQL, и многие "ломают" голову над тем, как заставить свой код выполняться быстрее... :-)

Существует два варианта компиляции ваших хранимых процедур PL/SQL:
- interpreted (в результате из исходного кода процедуры получается интерпретируемый код виртуальной машины PL/SQL);
- native (в результате компиляции на выходе получается исполняемый код текущей платформы).


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

Москва сегодня



Видимость 500 м. В аэропортах немедленно начинается коллапс. Web-сайт Домодедово немедленно лег, и уже не в состоянии показать таблицу вылетов самолетов. Одновременно идет регистрация на ~ 300 самолетов, в каждом в среднем по 150 человек. Нельзя рассчитать систему, на то, что все эти люди вдруг захотят посмотреть,  а вылетает ли их самолет ?   "Одноклассники", "В Контакте"  могут, а Домодедово - нет ?   Нет, я не верю что тут есть технические проблемы... верните рынду, а ?


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

Пища для размышления



На меня произвело впечатление это видео. Информация, передаваемая "из уст в уста" посредством социальных сетей, блогов и т.п. зачастую представляет бOльшую пользу, чем доставляемая нам по традиционным "коммерческим" каналам типа телевидения или печатной продукции. Меня впечатляет динамика развития средств обмена информацией и накопления знаний непосредственно между людьми. Например, если у меня возникла проблема с каким-то продуктом (предположим, с автомобилем), то я мгновенно нахожу на множествах форумов и сайтов информацию про то, что именно сломалось и какой конкретно ремонт меня ожидает. Эта информация опубликована простыми людьми как и я. Если я зачоху, то еще через минуту на YouTube можно найти видео как произвести ремонт самостоятельно и т.п. Положительным "побочным эффектом" информационного обмена является тот факт, что автомобильному дилеру теперь тяжелее вешать мне лапшу на уши. Положительным для меня, а не для автодилера :^). Bottomline: Поделиться информацией в интеренете стало совсем не сложно и это многое меняет.

Еще важнее то, что эти изменения коснутся коммерческого сектора экономики. Ведь если у Вас плохой продукт, то об этом все узнают буквально сегодня. Если у Вас хороший продукт, то об этом тоже все узнают сегодня. Факты (из видео): 78% потребителей верят тому, что говорят их знакомые и только 14% верят тому, что говорит реклама. Тоже самое на рынке труда. У людей, которым есть что сказать, появилась возможность реализовать себя за счет того, что они пишут в блог (или в википедию или куда-то еще) что-то нужное и важное. Написать статью ничего не стоит -- было бы что писать. Я узнал множество интересных людей просто за счет эффекта социальных сетей. Соответственно, если сказать нечего, то "информационного следа" от человека не остается.

Просто мысли.


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

MySQL Cluster

Как вы уже знаете, вообще-то это Oracle MySQL Cluster. Вот мне и стало интересно, а зачем Oracle два кластера, ведь у нас уже есть Real Application Cluster ? Попробуем разобраться. Вся документация доступна на сайте mysql.com, правда для этого необходимо зарегистрироваться.



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

Windows guest on OracleVM

Многие интересуются запуском паравиртуальных машин Windows под OracleVM. Такая возможность есть, и Windows полностью поддерживается в качестве гостевых систем OracleVM.
В качестве примера мы подробно рассмотрим процесс создания виртуальной машины MS Windows 2003 Server x64 работающей под управлением OracleVM, внутри которой затем будет установлена база данных Oracle 11g Release 2 for MS Windows x64.


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

HP и DELL будут сертифицировать Oracle Solaris, OEL, Oracle VM

Ссылка на пресс-релиз:  Dell and HP to Certify and Resell all Three Oracle Operating Systems – Oracle Solaris, Oracle Enterprise Linux and Oracle VM – on their x86 Server Computers.

DELL уже давно и последовательно поддерживает Oracle VM, для чего создал специальный ресурс.

Новость важная, поскольку из нее, мне кажется, следует:

  • Solaris x86 будет развиваться
  • Наконец-то можно будет купить сертифицированное под Oracle VM железо
Последний пункт кстати, оказался не таким простым. Дело в том, что по какой-то причине разработчики Oracle VM успешно дорабатывают xen, но в сборки Oracle VM упорно продолжают включать драйвера почти годичной давности.  Я наблюдал уже несколько ситуаций, когда последний update OEL встает без проблем, а Oracle VM - нет. Как вы понимаете, дальше начинаются пляски с бубном. По умолчанию gcc, исходников ядра в Oracle VM  нет. Даже если у вас есть исходники драйвера задача не выглядит такой уж простой. Хотя, при помощи нашего гуру по Linux Петра Фатьянова она оказалась вполне решаемой.  


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

oracle. my game is over !

Конечно сумасшествие последнего года не могло остаться безнаказанным.  И не осталось - я больше не сотрудник Oracle Corp :)

Английский джентльмен покинул этот корабль весьма вовремя. Настала и моя очередь.  К сожалению, больше  не будет замечательных семинаров, красных и черных маек, писем-заявок. Я ведь прочитал и ответил на каждую заявку !  Больше нельзя приходить в наших майках на официальные мероприятия Oracle (я серьезно, не рекомендую).


Короткий отчет, что удалось сделать за последние 3 года:

- Около 1000 человек посетили наши семинары DBUG, DBOD, RACDD4D, RAC DD4DBA.

- Формат событий был полностью изменен - от простого перевода английских презентаций  к созданию собственного контента и демонстраций. Я помню случай, когда у меня попросили  перевести мою презентацию по Exadata на английский, поскольку люди посчитали ее более достойной чем на o.com. Презентации Игоря вообще использовали как инструкции в работе ! Пять лет назад я слушал презентацию по кластеру еще в старом здании на Саввинской набережной. Ничего кроме Power Point тогда не показывали....

- К нам стали приходить и рассказывать о своем опыте простые администраторы. Иногда положительном, иногда отрицательном. Мы не согласовывали презентации, разрешали говорить все что захочется !  Как оказалось позже, за выступление на семинаре полагался ужин с Tom Kyte :)  Спасибо Тому и всем нашим спикерам !

- К нам приезжали  и выступали Robert Pastijn, Mike Dietrich, Ursula Koski и Tammy Bednar,  Peter Kestner

- Впервые в истории московского офиса нам удалось выиграть c техническим семинаром европейскую награду за инновации  - EMEA Excellence Award

- Впервые в истории московского офиса его сотрудники (я и Игорь Мельников) выехали читать семинар DD4D в Восточную Европу и даже  в Австрию, на английском языке.  Никогда не забуду, что в Австрии нам стучали кулаками по столу - оказывается высшая мера одобрения в Австрийских учебных заведениях !

-  Создана библиотека брошюр Oracle на русском языке

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

- Мы  с Даниловым даже ухитрились вмешаться в святая святых - программу секции Database Oracle Day (по старому Tech Forum). И 2 последних Oracle Day были интересными...

- По мере сил поддерживалась группа пользователей Oracle - RuOUG.

- Я единственный из сотрудников Oracle CIS (насколько я знаю) выступал на событии Европейской группы пользователей - вместе с ребятами из RuOUG мы ездили на событие EMEA Harmony,  организованное  финской группой пользователей - ougf.fi

- И наконец этот блог. 700 сообщений на данный момент.  Да мне его самому интересно читать :))))))  Я достаточно часто отвечаю на вопросы ссылками на блог. Это просто рабочий инструмент. Блог кстати остается. Наша, теперь уже виртуальная команда решила, что он нужен людям.


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


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

110 по Фаренгейту


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


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

Настройка SAP как по нотам


Несколько важных нот, чтобы правильно сыграть мелодию SAP on Oracle:

  1. SAP & Oracle 11gR2  ноты 1398634 and 1434131.
  2. SAP & RAC: нота 1398634
  3. Сжатие данных в SAP: нота 1109743
  4. Секционирование данных в SAP: 722188 and 742243
  5. Параллельное выполнение в SAP: 651060

Остальные правильные ноты и рекомендации вы найдете в материалах семинара "Как улучшить с помощью СУБД Oracle работу SAP".


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

Oracle Restart on Windows Platform

Несколько уроков, полученных при инсталляции Oracle Restart на платформе Windows:

- Установку следует производить с диска Grid Infrastructure (GI), но при установке следует выбрать Grid Infrastacture for standalone server.

- При установке от вас потребуется сконфигурировать группу ASM, а это значит что необходимо специальным образом подготовить raw device. Лучше всего прочитать стр. 12 . из этого документа УСТАНОВКА ORACLE DATABASE 10.2 RAC НА ПЛАТФОРМЕ WINDOWS 2003 SERVER R2 SE X64

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

- Инсталлятор БД сам обнаружил, что у нас стоит GI и сам зарегистрировал нашу БД в ней.

- После того как мы убили процессы oracle.exe и получили в sqlplus "End of communication channel" наша БД магическим образом ожили  снова.  Эта магия обеспечивается c помощью процессов Clusterware. Строго говоря защищается не только БД, но и ASM и listener.

Что интересно: все выглядит так, как будто у нас RAC, только одноузловой! :-)
Вот вывод команды crs_stat -t
C:\>crs_stat -t
Name Type Target State Host
-----------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE isvru2
ora....ER.lsnr ora....er.type ONLINE ONLINE isvru2
ora.asm ora.asm.type ONLINE ONLINE isvru2
ora.cssd ora.cssd.type ONLINE ONLINE isvru2
ora.orcl.db ora....se.type ONLINE ONLINE isvru2

Причем Windows-сервисы листенера и экземпляра СУБД теперь НЕ стартуют автоматически (стоят в Manual), - все верно: теперь их запускает Clusterware (причем в нужном порядке !).


Обратите ваше внимание, что теперь вы управляете вашей БД с помощью настоящих кластерных команд: srvctl, crs_stat и пр. Таким образом, после опыта работы с Oracle Restart переезд в настоящий кластер для вас, как для администратора, будет практически прозрачен. А разработчики могут начать потихоньку модифицировать свое приложение, чтобы научится обрабатывать FAN сообщения.

Правда как я писал ранее, не все еще гладко при переходе от Oracle Restart к настоящему RAC - но про крайне мере этот процесс описан в документации.

Update 1
Более внимательно приглядевшись  к нашему локальному кластеру,  я увидел, что:

Вывод из файла:
%CRS_HOME%\cfgtoollogs\crsconfig\roothas.log

2010-07-21 15:27:04: OCR locations = D:\oracle\grid\cdata\localhost\local.ocr
2010-07-21 15:27:04: VOTING_DISKS=

т.е. voting дисков нет вообще (ну хорошо, голосовать не с кем), а ocr лежит локально. Тогда вообще не понятно, зачем нужен ASM экземпляр, на нем вообще ничего нет (если вы не разместили БД).

Update 2
Clusterware оказывалась какая-то урезанная - например не все ключи srvctl работают. Теперь потихоньку понятно становиться, почему требуется переставлять clusterware при переходе к настоящему кластеру.


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