670413454c774d573ef360a6877f8d1a.ppt
- Количество слайдов: 50
Новая версия СУБД Oracle - Oracle 11 g: обзор характеристик и возможностей Марк Ривкин (Mark. Rivkin@oracle. com) Российское представительство Oracle
Версия Oracle Database 11 G • • Объявлена в октябре 2006 на OOW Находится в бетта тестировании Выйдет в 2007 г Не все может войти в первый релиз – features for New Versions
Новые возможности • GRID • Управляемость • Надежность и устойчивость работы (HA) • Производительность • Управление информацией (Information Management) • Улучшения для всех типов данных • Файловая система в БД • ILM • Разработка и тестирование приложений • Новые опции СУБД (Database/Audit Vault, Content/Records DB, SES, SEB) • И как всегда все работает быстрее
<Insert Picture Here> Alfred North Whitehead: Principia Mathematica “The art of progress is to preserve order amid change and to preserve change amid order. ” Мастерство движения вперед заключается в том, чтобы сохранить порядок во время выполнения изменений и производить изменения сохраняя порядок. Не дай Вам бог жить в эпоху перемен !!!!
Информация всегда доступна Сбой системы Незаплани рованные остановки Катастрофа, потеря файлов/дисков Человеческие ошибки Плановые остановки Сопровождение системы Модификация структуры БД
Новые возможности Oracle Database 11 g для сохранения работоспособности при внесении изменений Тестирование и настройка Выполнение изменений в производительности приложениях без остановки (Online) Управление изменением Захват и воспроизведение нагрузки плана выполнения запроса Создание среды для тестирования Пакетирование информации об инцидентах для технической поддержки Online Hot Patching
Создание тестовой среды с помощью Snapshot Standbys Beta • Превращение Physical Standby в Snapshot Standby и открытие БД на Physical Standby запись для тестируемых Применение изменений приложений • ALTER DATABASE CONVERT TO SNAPSHOT STANDBY; Откры. Откатываем БД изменения • Откат тестовых изменений и продолжение накатки изменений • ALTER DATABASE CONVERT TO PHYSICAL STANDBY; Snapshot Standby Выполнение • Обеспечивает нулевые потери тестирования данных • Можно на ней воспроизвести загрузку основной БД (replay)
Захват и воспроизведение нагрузки СУБД Database Replay • Захват инфо о нагрузке Beta Rec • Записывает информацию о нагрузке СУБД, включая важную информацию об одновременности нагрузки • Database Replay - проигрывание • Воспроизводит нагрузку в реальном времени (workload with actual timing) Запиши и проиграй • Анализ и отчетность • • Отчеты об ошибках Изменение данных Изменение производительности Использование ADDM для дальнейшего анализа производительности Анализ и отчетность
Захват и воспроизведение нагрузки SQL – SQL Replay Beta • Фокус на проблемы с нагрузкой при выполнении SQL операторов • Детальный анализ производительности отдельного SQL оператора • Захват информации про SQL Workload в эксплуатационной системе • Захватывает текст SQL, планы, bind variables, статистику выполнения • За указанный период времени • Можно захватить информацию для SQL в Oracle Database 10 g Release 2 • Воспроизведение SQL Workload в тестовой среде • Тестовое выполнение SQL в тестовой среде • Выявляет SQL с изменившимися планами выполнения и SQL с ухудшившейся производительностью • Для ухудшившегося SQL можно провести настройку с помощью SQL Tuning Advisor (10 g) • Производит анализ и отчеты
SQL Replay: анализ производительности
Автоматическая настройка SQL Пакетные Кастомизируемые приложения High-Load SQL AWR Ночью Автоматическая настройка SQL Profiling Index, Stats, Structure Analysis SQL Profiles Тестирование Применение Автоматически Отчет от Advisor Настроенный SQL Вручную • Автоматически выбирает наиболее ресурсоемкие операторы SQL на основе анализа времени отклика, потребления ресурсов и частоты выполнения • Автоматически настраивает SQL, создавая SQL Profiles • Автоматически учитывает альтернативные планы выполнения на основе ранее использовавшихся планов • Автоматически тестирует результаты, чтобы оценить степень улучшения • Автоматически принимает сильно улучшающие выполнение (в 3 раза) планы (опционально) • Автоматически строит отчеты о недостающих структурах доступа, устаревшей статистике, плохо структурированном SQL • Автоматически выполняется в указанное время (maintenance window) или запускается вручную
Автоматическая настройка областей памяти O/S Memory SGA PGA • Автоматически адаптируется к изменениям нагрузки • Унифицирует управление shared (SGA) и process (PGA) областями памяти • Один динамический параметр для всей памяти СУБД • Максимизирует использование памяти • Помогает исключить out- of-memory ошибки • Берет и освобождает память у следующих ОС: Linux, Windows, Solaris, HPUX, AIX • Умеет работать под большой нагрузкой • Не сжимается ниже минимума
Новые советчики (advisers) • Partitioning • Repairing (восстановление) • Streams performance (производительность Streams) • Space management (управление пространством в БД)
Исследование причин сбоя Время восстановления Время для анализа и время для планирования • При сбое – паника и неразбериха • Основная часть времени тратится на: • Исследование проблемы • Выбор правильного решения Полное время простоя
Data Repair Advisor • Анализирует проблему, основываясь на симптомах • Например, “Open failed” из-за того, что потерян файл данных • Грамотно определяет стратегию лечения • Агрегирует ошибки для выбора эффективного способа лечения • Например, если много плохих блоков – лучше восстановить весь файл • Рекомендует только выполнимые варианты восстановления • Есть ли бэкапы? • Существует ли standby database? • Ранжирует варианты на основе времени восстановления и возможности потери данных • Может автоматически выполнить восстановление
ADDM для RAC Database-Level ADDM Self-Diagnostic Engine Instance-Level ADDMs Node 1 Node 2 Node 3 • Эксперт по производительности из коробки • Теперь и для RAC! • Идентифицирует наиболее “Глобально важные” проблемы с производительностью для всей БД RAC • Анализ уровня всей БД и отдельного экземпляра • Анализ уровня всей БД: • Проблемы глобального кэша интерконнекта (Global cache interconnect) • Проблемы перегрузки Lock manager • Глобальный спор за ресурсы (пропускная способность ввода вывода, hot blocks) • Глобальные ресурсоемкие SQL операторы • Ассиметрия во времени отклика инстансов БД • Позволяет дальше перейти к инстансам (drill down) • Выполняется проактивно каждый час (по умолчанию) • Директивы для фильтрации результатов
Автоматическая диагностика Репозиторий автоматической диагностики Критическая ошибка 2 1 Ÿ Автоматическое создание инцидента Ÿ Захват инфо об ошибке Ÿ Извещение ДБА Ÿ Проверка на металинке Да 4 Новый баг? Нет 3 EM Support Workbench: Ÿ Пакует инфо об инциденте и конфигурации Ÿ Repair Advisors EM Support Workbench: Ÿ Применение патча или Workaround Ÿ Repair Advisors Уменьшает время решения проблемы
Простая диагностика с помощью Incident Packaging Service • Пакетирует всю информацию из Automatic Diagnostic Repository, связанную с инцидентом • Берет также информацию из других, связанных с данным, инцидентов • Заставляет пользователя собрать необходимую дополнительную информацию (например, test cases, redo logs) • Пакетирует всю важную информацию о конфигурациях для всех важных продуктов (например, OS, AS, e. Business suites) • Обеспечивает простую индикацию сбора информации
Модификация приложений на лету (Online Application Upgrade) Beta • Большие, важные приложения часто недоступны в течение десятков часов из-за установки их новых версий • Oracle Database 11 g вводит новые революционные решения, позволяющие выполнять смену версии приложения не останавливая работу этого приложения • Старая и новая версии приложения могут работать одновременно
Online Application Upgrade Демо
Как это сделано? • Oracle Database 11 g вводит новые понятия Редакция (Edition), Editioning View и Cross. Edition Trigger • Измененный код устанавливается в новую Редакцию. • Изменения данных безопасны, поскольку они пишутся в новые колонки или новые таблицы, которые не видны старой Редакции (old Edition) • Editioning View выставляет различные проекции таблицы в каждую редакцию, что позволяет в каждой редакции видеть только свой набор колонок • Cross. Edition trigger (Межредакционный триггер) заносит данные, измененные в старой редакции, в колонки новой редакции или наоборот
Edition-Based Redefinition • Editions (Редакции) обеспечивают поддержку многоверсионности для объектов БД • PL/SQL, триггеры, views, синонимы, и т д. • Скрипты патчей и апгрейдов вносят изменения в Новую Редакцию и эти изменения не видны для пользователей эксплуатационной системы • После того, как скрипты выполнены и новый код протестирован, Новая Редакция активизируется для эксплуатационной системы sql> create Edition “New_Edition” as child of “Old_Edition”; sql> alter session set Current_Edition = “New_Edition”; … Загрузка новых версий нетабличных объектов
Многоверсионность таблиц • Таблицы не заменяются на новую версию через Редакции • Чтобы реализовать новые версии таблиц создается перед таблицей Editioning View • Editioning Views отображает подмножество колонок одной таблицы • Это полезно для того, чтобы спрятать новые или измененные колонки от пользователей старой системы • Editioning view создается в “Старой Редакции” и прячет изменения, сделанные в “Новой Редакции” • Нет испорченных объектов и нет ошибок при переходе на новую версию приложения!
Улучшения в переопределении объектов • Быстрое добавление колонки с величиной “по умолчанию” • Не надо обновлять все строки и записывать туда величину “по умолчанию” • Invisible Indexes (невидимые индексы) предотвращают преждевременное использование вновь созданных индексов • Online построение индексов без замедления выполнения DML • Зависимые объекты не перекомпилируются когда • В таблицу добавляются колонки • Процедуры добавляются в пакет • Легче выполнять DDL операции для таблиц в online • Можно задать режим ожидания для активных DML операций (вместо их прерывания)
Online Patching of One-off Patches • Патчирование работающих инстансов Oracle без их остановки • Многие специализированные (one-off) патчи могут быть применены online • Подмножество обновляющих RAC online патчей • Подходит для диагностирующих патчей • Включать, выключать и деинстолировать специализированные патчи без остановки инстанса • Интегрировано с OPatch и inventory • Первоначально пригодны для Linux и Solaris • Долговременная цель - online применение критических патчей (Critical Patch Updates -CPUs).
Physical Standby с Real-Time Query Real-time Queries Одновременные Постоянная передача и применение Redo Первичная БД • • Physical Standby БД Запросы на чтение выполняются на physical standby одновременно с применением redo • • запросы в реальном времени Поддержка RAC на primary / standby Запросы видят транзакционно консистентные результаты Немедленно доступно многим пользователям physical standby Совмещение защиты от катастроф и запросов в реальном времени уникально – нет простаивающих ресурсов Пригодно для всех типов данных, но не так гибко, как logical standby
Rolling Database Upgrades c помощью временного Logical Standby Physical Logical Upgrade Physical • Logical standby позволяет выполнить rolling upgrades но имеет ограничения по типам данных • Временное преобразование physical standby в logical для выполненияrolling upgrade • Ограничения на типы данных на короткое время • Не нужно создавать отдельный logical standby для апгрейда Возможно и в 10. 2, но с большим объемом ручной работы
Новые возможности Flashback • Flashback Transaction • Одним нажатием кнопки откатить транзакцию и все конфликтующие транзакции • Оптимизирован Flashback Database • Снижена нагрузка от операций insert и direct loads
Flashback Data Archive Select * from orders AS OF ‘Midnight 31 -Dec-2004’ • Долговременное хранение - годы • Автоматически сохраняет все изменения для выбранных таблиц в Flashback Data Archive • Архив не может быть изменен • Старые данные удаляются в соответствии с политикой сохранения ORDERS я Изменени User Tablespaces Archive Tables Flashback Data Archive Oracle Database Полный возврат • Можно посмотреть содержимое таблицы на любой момент времени с помощью Flashback SQL • Используется для • • • Отслеживания изменений ILM Долговременной истории изменений Аудита Соответствия законадательству (Compliance)
Файлы и реляционные данные • Многие приложения работают как с файлами, так и с реляционными данными • Например, документооборот, медицина, CAD, работа с изображениями • Простота и производительность работы с файловой системой делает ее привлекательной для хранения данных в файлах, в то же время реляционные данные хранятся в СУБД • Это вызывает проблемы с безопасностью, надежностью и управляемостью • • • Различные модели аудита и обесп безопасности Изменения не делаются автоматически Backup и восстановление фрагментированы Поиск по реляционным данным и файлам сложен Сложно управлять пространством хранения Различные интерфейсы и протоколы • Два менеджера данных для одного приложения – слишком жирно • При патчировании приложения возникает щель
Oracle Secure. Files Консолидированные средства безопасного управления данными • Secure. Files – новая функция СУБД, созданная для того, чтобы убрать проблему производительности, заставляющую хранить файлы вне БД • Похоже на LOB но намного быстрее и с новыми возможностями • Прозрачное кодирование, сжатие, де-дублирование, и т д. • Реализует безопасность, надежность и масштабируемость СУБД для файлов • Расширение интерфейсов LOB позволяет легко мигрировать с LOB • Позволяет консолидировать файлы и связанные с ними реляционные данные • Единая модель безопасности • Единый взгляд на данные • Единство управления данными
Высокая производительность Чтение файлов Запись файлов Secure. Files Linux Files Скорость (MB/sec) Secure. Files Linux Files LOBs Размер файла (MB) • Предварительные результаты: производительность сравнима с файловой системой Linux • Нет сетевого доступа, журналирования, единый поток чтения/записи файла • Помните, что и LOBs и Secure. Files предлагают намного больше функциональности, чем обычные файлы • Производительность – как у файловой системы
Интерфейсы СУБД и файловой системы • С Secure. Files можно работать как из клиентов СУБД, так и из клиентов файловой системы • Клиенты СУБД используют расширение интерфейсов LOB • JDBC, OCI, . NET, PL/SQL • 11 g имеет хорошо оптимизированный протокол для работы с Secure. Files • Клиенты файловой системы используют протоколы файловой системы (implemented in the XML DB repository) • FTP • Web. Dav • Mountable NFS V 4 file system (preview only)
Server Results Cache • Автоматически кэширует результаты запросов, подзапросов (query blocks) или вызова функций pl/sql • • Кэш совместно используется различными SQL операторами и сеансами сервера Значительное ускорение для операций чтения (read-only / read-mostly data) • Буферный кэш следующего уровня join Q 1: build query cache Q 2: Использует это прозрачно GBY GBY T 2 join cache join T 1 T 1 T 4 T 3 join T 5 T 6
Server Results Cache • Несколько уровней контроля • Оператор – hints • Таблица – table caching DDL • Сессия – параметр <значения force or auto or manual> • Автоматически заставляет оптимизатор запросов определять стратегию кэширования • Размер памяти для кэша задается ДБА • Полная согласованность результата • Кэш обновляется при изменении таблиц, из которых получен кэшируемый результат
OCI Client Result Cache Application Server Связанное кэширование Database • Кэширует результаты запроса на клиенте • Улучшает производительность работы с таблицами, используемыми в основном для чтения (read-mostly) • • Более быстрое время отклика – исключается передача по сети Уменьшает нагрузку на процессоры сервера • Согласован с сервером • • Кэш проактивно обновляется, когда изменяется result set Как Cache Fusion между сервером и клиентом
OCI Client Result Cache • Унифицированный интерфейс с Server result cache alter table DEPT cache results • Кэш процесса разделяется несколькими сессиями/средами • Работает со всеми 11 g OCI-based клиентами • Включая ODP. Net, JDBC Type 2, PHP, ODBC • Для активизации СRC ДБА необходимо только устанавить размер клиентского кэша • Параметр на клиенте может перекрыть размер клиентского кэша
“Native” PL/SQL и JAVA компиляция • 100+% быстрее для чисто PL/SQL или Java кода • 10% – 30% быстрее для типичных транзакций SQL • PL/SQL • Только один параметр - On / Off • Не нужен C компилятор • Нет DLL файлов • Java • Только один параметр – On / Off • JIT (Java in Time) “на лету” компилятор • Прозрачно для пользователей (асинхронно, в фоновом режиме) • Код сохраняется, чтобы избежать перекомпиляций • JDBC 4. 0, Java SE 5. 0
Сжатие для OLTP • Oracle Database 9 i table compression работает для DW • Сжатие для операций массовой загрузки (bulk load) • Direct Path Load • Create Table Select As … • Теперь сжатие можно использовать для OLTP • Обычные (non-bulk) INSERT, UPDATE, DELETE • Add, Drop Column • Выгоды сжатия • • Уменьшает использование диска – обычно в 2 – 3 раза Уменьшает ввод/вывод Увеличивает эффективность кэша Лучше производительность операций чтения
Цикл жизни данных Активные Быстрые диски Менее активные Дешевые диски Исторические Online архив Offline архив
СУБД Oracle + Partitioning – идеальное средство для ILM Database + Partitioning Активные Менее Исторические активные • • • Понимание бизнес данных Независимо от Hardware Прозрачно для приложений Настраиваемое Центральная точка управления • Дешево – Можно использовать ASM для управления множеством областей хранения (storage tiers) Устройства хранения
ILM Assistant
Механизмы СУБД, используемые для ILM Oracle Database 10 g • Partition, Table Level Compression • Range, List and Hash Partitioning • Composite Partitioning • Range List, Range Hash Oracle Database 11 g добавляет • Лучшее сжатие для таблиц, партиций, LOB • Новые Interval, Ref и Virtual Column Partitioning • Новые виды смешанного (Composite) Partitioning Range List Hash Range Yes Yes List Yes Yes Interval Yes Yes
Виртуальные колонки - пример • Базовая таблица со всеми атрибутами. . . • . . . расширена виртуальной (вычисляемой) колонкой • . . . которая используется как ключ секционирования CREATE TABLE accounts (acc_no number(10) not null, acc_name varchar 2(50) not null, . . . acc_branch number(2) generated always as (to_number(substr(to_char(acc_no), 1, 2))) partition by list (acc_branch). . . 12500 12507 12666 12875 Adams Blake King Smith 12 12 . . . 32320 32407 32758 32980 Jones Clark Hurd Phillips 32 32
Interval Partitioning • Расширение Range Partitioning • Полная автоматизация для равномерных range partitions • Вначале сегменты создаются только на уровне метаданных • Создается только стартовая Partition • Сегменты создаются только тогда, когда для них появляются данные • Не надо создавать новые сегменты • Также создаются и поддерживаются локальные индексы Не нужно управлять секциями
Interval Partitioning • Очень легко. . CREATE TABLE sales (order_date DATE, . . . ) PARTITON BY RANGE (order_date) INTERVAL(NUMTOYMINTERVAL(1, 'month') (PARTITION p_first VALUES LESS THAN ('01 -JAN-2006'); Table SALES . . . Jan 2006 Feb 2006 Mar 2006 . . . Jan 2007 . . . Oct 2009 Nov 2009 Новый сегмент создается автоматически INSERT INTO sales (order_date DATE, . . . ) VALUES ('04 -MAR-2006', . . . );
Interval Partitioning • Таблица с Interval partition может совмещать классические range и автоматические interval секции • Range partitioned таблица может быть расширена в interval partitioned таблицу • Простая команда • Защита инвестиций • Можно слить и переместить старые секции для ILM Table SALES . . . 2005 Q 2 2006 Q 1 2006 Old range partition table . . . Oct 2006 Новые помесячные Interval partitions ALTER TABLE sales (order_date DATE, . . . ) SET INTERVAL(NUMTOYMINTERVAL(1, 'month');
REF Partitioning Таблица ORDERS . . . Jan 2006 • RANGE(order_date). . . • Primary key order_id Feb 2006 PARTITION BY REFERENCE • Ключ секционирования наследуется через связь PK-FK Таблица LINEITEMS . . . Jan 2006 Feb 2006 • RANGE(order_date). . . • Foreign key order_id
Прочее • Оптимизирован Cach Fusion Protocol • Оптимизирован Data. Guard • Cжатие Redo, ускорена передача, применение • Fast-Start Failover при Async режиме (с потерями) • Поддержка XMLType, TDE для Logical Standby • Binary (Native) XML • Семантические сети • Transparent encription для tablespace и LOB
Как нас найти. . . • Телефон в Москве +(7 495) 641 -14 -00 • www. oracle. com/ru • www. oracle. ru • Email Mark. Rivkin@oracle. com
670413454c774d573ef360a6877f8d1a.ppt