Юрий Юрченко, руководитель группы в направлении "Финансовые институты" компании CUSTIS, посетил семинар
Ask Tom in Moscow-2012, который состоялся 11 декабря 2012 года в Москве.
"AskTom in Moscow" — это практический семинар-лекция, который проводит Том Кайт, знаменитый во всем мире специалист и гуру по технологиям Oracle, автор бестселлеров, посвященных Oracle Database, ведущий сайта и собственного блога о СУБД Oracle.
Читайте отчет Юрия о семинаре.
«Конечно его Oracle слушается, ведь он сын Чака Норриса»
Чтобы убедиться в этом, достаточно положить их фотографии рядом:
Вживую сходство также присутствует, в чем удалось убедиться, посетив семинар «Ask Tom How In Moscow-2012». Оказывается, это не первый его приезд в Москву. Предыдущий состоялся в «бородатом» 2010.
Выступление состояло из 5 докладов. Первые три носили в основном маркетинговый характер (с небольшими техническими подробностями). Последние два, наоборот, были сильно техническими. Некоторые примеры разбирались дотошно, вплоть до каждого передаваемого по сети байта (утрирую, конечно, но суть очень близка к этому).
После докладов Том Кайт отвечал на письменные вопросы. Также ответил и на мой вопрос про опыт успешного использования Edition-Based Redefinition в проектах:
- опыт успешного использования есть у самого Oracle в Oracle Apps (не совсем понял о чем речь), а также у компании Boeing;
- фича в Oracle 11g реализована в полной мере, в Oracle 12с ничего нового не добавляется и не меняется.
Общее ощущение от семинара:
- Том Кайт внятно доносит все мысли, но харизмы он лишен.
- Интересно было слушать первые пару часов про будущие фичи Oracle, особенно про те, которых давно ждут.
- Дальнейший загруз большим количеством технических деталей, на мой взгляд, был излишним. Но какой же он Том Кайт без этого!
- В отличие от Oracle Days, здесь полностью отсутствовали световые и звуковые эффекты с общим посылом «быстре, надежнее, круче… Купи!»
По каждому докладу отдельно
Что мы узнали из Oracle Open World 2012
Доклад начинался с рассказа про историю Oracle с момента основания. Дальше плавно перетек в ближайшие планы Oracle по захвату мира по развитию технологий. В этой части доклад очень сильно пересекался с Oracle Days 2012. Также были озвучены три перспективных направления, в которые вкладывается Oracle:
- Big Data
- Engenering System («Engenered to work together»: Exadata, Exalytics и т. п.)
- Cloud Computing
После чего Большой Том рассказал про возможные новые фичи в Oracle 12c. Привожу общим списком озвученное:
- Вводится понятие контейнера БД, в котором размещается произвольное число баз данных.
- Основная идея контейнера: снизить затраты на поддержку множества БД администраторами, не изменив при этом ничего с точки зрения приложений и разработчиков.
- В контейнерах размещаются только словари данных БД и, собственно, сами данные БД. Для таких БД появился новый термин Pluggable Database.
- В контейнере имеются собственные словари данных, описывающие подключенные БД.
- Тут же вводится идея разделения ролей DBA. Выделяется группа DBA-архитекторов, которые проектируют контейнер БД (например, обеспечивают High Avaliability). Менее квалифицированным DBA выдаются на администрирование отдельные БД (выделение пространства, например). Каждая группа DBA решает свои задачи. Неплохо, однако!
- Весь контейнер обслуживает единый пул фоновых процессов (log writer, db writer, PMON, SMON и др.). Также для всех БД используется единая область памяти.
- Различные БД можно оперативно перемещать между несколькими контейнерами.
- Возможна миграция со старых версий БД в уже существующий контейнер Oracle 12c. Для этого в нем создаются пустые БД, в которые переносятся данные старых БД (с помощью Data Pump, GoldenGate и др.)
- Было проведено исследование по использованию памяти базами данных в стандартной конфигурации и в конфигурации Cloud (все БД в одном контейнере). Измерялась зависимость между количеством работающих БД и потребляемой памятью. Результат: 30 БД стандартной конфигурации потребляют столько же памяти, как и 250 БД в контейнере (при одинаковой нагрузке).
- Появляется возможность управлять выделением ресурсов железа отдельно для каждой БД внутри контейнера.
- Появляется возможность обновлять версию Oracle за несколько секунд. Для это устанавливается новая версия Oracle рядом со старой, после чего имеющаяся БД за несколько секунд переносится в контейнер нового Oracle.
- Использовать Oracle 12c возможно как в новом варианте — Container DB, так и в старом привычном — Single instance DB.
- Упрощается снятие бэкапа: он делается для всего контейнера. При этом восстановить из бэкапа можно любую БД отдельно на любой момент времени (Point-in-time recovery).
- Standby создается сразу для всего контейнера.
- RAC организуется без проблем: на каждом узле получается контейнер с БД.
- Появляется Data Compression со степенью сжатия, зависящей от частоты использования блоков данных. В последующих релизах (не в 12.1) даже обещают визуализировать heat map блоков данных.
- К Virtual Private Database и Data Masking добавляется еще одна «искажалка» данных: Redacting data. Основное отличие от предыдущих технологий в том, что данные искажаются после их выдачи базой данных, но до отображения на клиенте. Цель: скрыть от посторонних глаз при выводе на экран или на печать данные, к которым у пользователя имеется доступ. Пример: скрытие номера кредитной карты при печати чека.
- Вводятся новые асинхронных глобальных индексов (asyncronys global index) для секционированных таблиц. При очистке (truncate) отдельных партиций индекс остается валиден, а его очистка производится в фоне.
- Oracle 12c имеет встроенные драйвера для работы с MySQL
Из интересного, не совсем по теме:
- Любопытно то, что практически перед каждой серией новых фич на разных докладах вставлялось одно и то же послание. Если кратко и по существу, то звучит оно примерно так: «Когда именно, точно не известно, но в 2013 году мы планируем выпустить Oracle 12c. Все перечисленные далее фичи, скорее всего, войдут в эту версию. Но мы ничего не обещаем.»
- Давно известный факт, но все же: первая коммерческая версия Oracle имела номер 2.0, так как, по словам Ларри Эллисона, «первую версию никто не купит».
- Некоторые приложения до сих пор работают на Oracle 7.3. Аргумент в пользу нее у всех один — «так она же неубиваема!»
- Какие-то "перцы" строили приложение по принципу SaaS и под каждого клиента создавали свою отдельную БД Oracle. При этом система рассчитывалась на 50+ клиентов, а по факту у них на руках оказалось 1000 БД! Естественно, общая производительность сравнялась с уровнем плинтуса в серверной. Пригласили Тома Кайта сделать что-нибудь с этим безобразием. Его совет был хорош: «У вас была допущена ошибка при проектировании. Извините, но сейчас ничем помочь не можем, а вот в следующей версии Oracle…»
Security
Презентовались исключительно маркетинговые материалы Oracle по разным продуктам и технологиям для защиты информации. Привожу списком (при желании по любой из них можно найти материалы на сайте Oracle):
- Database Firewall — управление SQL трафиком между клиентом и БД
- Audit Vault — хранилище всех действий над данными БД
- Database Vault — «все DBA ее ненавидят», ограничение прав привилегированных пользователей (SYS, SYSDBA)
- Advanced Security Encryption — шифрование потока данных между клиентом и БД (войдет в Oracle 12c SE и EE)
New in Application Development
Презентовались новые продукты и технологии для разработки прикладного ПО. А именно:
- TAF. Его улучшенная версия в 12с — Transaction Guard
- APEX 4.2:
- несмотря на злые языки, приложения на APEX хорошо масштабируются (пример: apex.oracle.com на 8 ядерном сервере)
- добавлена поддержка разработки для мобильных платформ
- поддержка HTML5
- поддержка Oracle 12c
- возможность создания RESTful services
- SQL Developers, новшества:
- DBA Utilities
- Data Pump Utilities
- Database Diff (сравнение разных БД)
- Помощь в миграции кода с других БД
- PDF reports
- Управление APEX Listner
- Поддержка фич 12c (ничего более конкретного за этим)
- Oracle Data Provider for .NET
- Networkinkg, реализовано:
- Сжатие данных при передаче SQL трафика по сети
- Увеличен буфер обмена с 64К до 2Мб (для передачи LOB и XML)
- Jaca/C++/others:
- Transaction Guard
- Auto-tuning нескольких параметров соединения при подключении через OCI
- Поддержка пула соединений со стороны БД
- PL/SQL:
- Расширено количество типов, которые можно использовать в качестве bind
- Разрешен запрос PL/SQL типов непосредственно из SQL
- Появилась возможность "грантовать" роли объектам БД. То есть можно дать привилегию пакету на создание таблиц, тогда любой пользователь, вызывая данный пакет, сможет создавать таблицы, даже не имея прав на это.
- Появилась возможность задавать white list для объектов БД. Например, разрешить вызывать пакет А только из пакетов B и C.
5 Things about SQL и PL/SQL
Несмотря на название доклада, действительно были рассмотрены 5 пунктов:
- Том Кайт жаловался, что очень мало людей пользуются warning’ами PL/SQL, а они очень полезны. Далее рассказ про 3 режима предупреждений:
- Severe: «возможно неверный код»
- Performance
- Informational: «just bad code»
- Лучше собирайте статистику! Рассказал про нюансы с:
- Гистограммами и неравномерным распределением данных.
- Pipeline функциями. Комментарий Кайта к теме в оригинале «pipline functions have wrong cardinality by default». И далее пять способов как с этим жить. Ссылка на способы. Плюс еще один под названием Cardinality Feedback.
- Рассказ про уровни оптимизации PL/SQL. Ничего сверх документации. Из интересного: оказывается, возможен побочный эффект такой оптимизации. При возникновении ошибки может быть указана не та строка в коде, где действительно возникла ошибка. Это связано с изменением программного кода оптимизатором (тот же inline). Возможность такого поведения задокументирована:).
- SQL.Net compression (не путать со сжатием трафика в 12с).
- Implicit conversation are evil и аргументы в пользу этого.
Все что вы хотели знать про Flashback, но стеснялись спросить
Ничего сверх стандартной документации сказано не было. Основная мысль доклада: в версии Oracle 11g можно восстановить практически все, что испорчено, причем быстро. Из интересного можно отметить:
- Ретроспективный запрос по timestamp имеет точность +/- 3 сек.
- Большое количество удалений объектов БД при включенной RECYCLE_BIN приводит к замедлению работы всей БД, ввиду засорения словарей Oracle большим объемом данных.
- Хороший аргумент и пояснение к flashback database одновременно: скорость операции не зависит от объема БД, а зависит только от объема совершенных операций с момента времени, на который хотим восстановиться.
- Для ретроспективных запросов за прошедшие дни/месяцы/годы используются flashback data archive. Опция, которая позволяет это сделать, называется Tоtall Recall и стоит дополнительного вознаграждения.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.