Новая версия СУБД Oracle - Oracle 11g: Марк Ривкин Российское представительство Oracle

реклама
Новая версия СУБД Oracle - Oracle 11g:
обзор характеристик и возможностей
Марк Ривкин ([email protected])
Российское представительство Oracle
Версия Oracle Database 11G
•
•
•
•
Объявлена в октябре 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 11g для сохранения
работоспособности при внесении изменений
Тестирование и настройка
Выполнение изменений в
изменений в производительности
приложениях без остановки (Online)
Управление изменением
Захват и воспроизведение нагрузки
плана выполнения запроса
Создание
среды для
тестирования
Пакетирование информации
об инцидентах для
технической поддержки
Online
Hot
Patching
Создание тестовой среды с
помощью Snapshot Standbys
Beta
• Превращение Physical Standby в
Snapshot Standby и открытие БД на
Physical Standby
запись
для
тестируемых
Применение изменений
приложений
• ALTER DATABASE CONVERT TO
SNAPSHOT STANDBY;
ОткрыОткатываем
ваем БД
изменения • Откат тестовых изменений и
Snapshot Standby
Выполнение
тестирования
продолжение накатки изменений
• ALTER DATABASE CONVERT TO
PHYSICAL 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 10g Release 2
• Воспроизведение SQL Workload в тестовой среде
• Тестовое выполнение SQL в тестовой среде
• Выявляет SQL с изменившимися планами выполнения и SQL с
ухудшившейся производительностью
• Для ухудшившегося SQL можно провести настройку с помощью SQL
Tuning Advisor (10g)
• Производит анализ и отчеты
SQL Replay: анализ производительности
Автоматическая настройка SQL
Пакетные
Кастомизируемые
прилож
приложения
High-Load SQL
AWR
Ночью
Автоматическая настройка SQL
SQL
Profiling
Index, Stats,
Structure Analysis
SQL Profiles
Тестирование
Применение
Автоматически
Отчет от Advisor
Настроенный SQL
Вручную
• Автоматически выбирает наиболее
ресурсоемкие операторы SQL на основе
анализа времени отклика, потребления
ресурсов и частоты выполнения
• Автоматически настраивает SQL, создавая
SQL Profiles
• Автоматически учитывает альтернативные
планы выполнения на основе ранее
использовавшихся планов
• Автоматически тестирует результаты,
чтобы оценить степень улучшения
• Автоматически принимает сильно
улучшающие выполнение (в 3 раза) планы
(опционально)
• Автоматически строит отчеты о
недостающих структурах доступа,
устаревшей статистике, плохо
структурированном SQL
• Автоматически выполняется в указанное
время (maintenance window) или
запускается вручную
Автоматическая настройка
областей памяти
O/S Memory
O/S Memory
SGA
SGA
PGA
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, eBusiness suites)
• Обеспечивает простую индикацию сбора
информации
Модификация приложений на
лету (Online Application Upgrade)
Beta
• Большие, важные приложения часто недоступны в
течение десятков часов из-за установки их новых
версий
• Oracle Database 11g вводит новые революционные
решения, позволяющие выполнять смену версии
приложения не останавливая работу этого
приложения
• Старая и новая версии приложения могут работать
одновременно
Online Application Upgrade
Демо
Как это сделано?
• Oracle Database 11g вводит новые понятия Редакция
(Edition), Editioning View и CrossEdition Trigger
• Измененный код устанавливается в новую Редакцию.
• Изменения данных безопасны, поскольку они пишутся в
новые колонки или новые таблицы, которые не видны
старой Редакции (old Edition)
• Editioning View выставляет различные проекции таблицы
в каждую редакцию, что позволяет в каждой редакции
видеть только свой набор колонок
• CrossEdition 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
Archive
Tables
User
Tablespaces
Flashback
Data Archive
Oracle Database
Полный возврат
• Можно посмотреть содержимое
таблицы на любой момент
времени с помощью Flashback
SQL
• Используется для
•
•
•
•
•
Отслеживания изменений
ILM
Долговременной истории изменений
Аудита
Соответствия законадательству
(Compliance)
Файлы и реляционные данные
• Многие приложения работают как с файлами, так и с реляционными
данными
• Например, документооборот, медицина, CAD, работа с изображениями
• Простота и производительность работы с файловой системой делает
ее привлекательной для хранения данных в файлах, в то же время
реляционные данные хранятся в СУБД
• Это вызывает проблемы с безопасностью, надежностью и
управляемостью
•
•
•
•
•
•
Различные модели аудита и обесп безопасности
Изменения не делаются автоматически
Backup и восстановление фрагментированы
Поиск по реляционным данным и файлам сложен
Сложно управлять пространством хранения
Различные интерфейсы и протоколы
• Два менеджера данных для одного приложения
– слишком жирно
• При патчировании приложения возникает щель
Oracle SecureFiles
Консолидированные средства безопасного управления данными
• SecureFiles – новая функция СУБД, созданная для того, чтобы
убрать проблему производительности, заставляющую хранить
файлы вне БД
• Похоже на LOB но намного быстрее и с новыми возможностями
• Прозрачное кодирование, сжатие, де-дублирование, и т д.
• Реализует безопасность, надежность и масштабируемость СУБД
для файлов
• Расширение интерфейсов LOB позволяет легко мигрировать с LOB
• Позволяет консолидировать файлы и связанные с ними
реляционные данные
• Единая модель безопасности
• Единый взгляд на данные
• Единство управления данными
Высокая производительность
Чтение файлов
Скорость
(MB/sec)
120
100
80
60
40
20
0
Запись файлов
SecureFiles
Linux Files
LOBs
0,1
1
10
100
120
100
80
60
40
20
0
SecureFiles
Linux Files
LOBs
0,1
Размер файла (MB)
1
10
100
Размер файла (MB)
• Предварительные результаты: производительность сравнима с
файловой системой Linux
• Нет сетевого доступа, журналирования, единый поток чтения/записи файла
• Помните, что и LOBs и SecureFiles предлагают намного больше
функциональности, чем обычные файлы
• Производительность – как у файловой системы
Интерфейсы СУБД и файловой системы
• С SecureFiles можно работать как из клиентов
СУБД, так и из клиентов файловой системы
• Клиенты СУБД используют расширение
интерфейсов LOB
• JDBC, ODBC, OCI, .NET, PL/SQL
• 11g имеет хорошо оптимизированный протокол для
работы с SecureFiles
• Клиенты файловой системы используют
протоколы файловой системы
(implemented in the XML DB repository)
• FTP
• WebDav
• Mountable NFS V4 file system (preview only)
Server Results Cache
• Автоматически кэширует результаты запросов,
подзапросов (query blocks) или вызова функций pl/sql
•
•
Кэш совместно используется различными SQL
операторами и сеансами сервера
Значительное ускорение для операций чтения (read-only
/ read-mostly data)
• Буферный кэш следующего уровня
join
join
join
join
T1
T1
T1
T2
T2
Q1:
Q2:build
Использует
query cache
это
прозрачно
GBY
GBY
GBY
GBY
cache
join
join
join
T4
T3
T3
join
T5
T6
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
• Кэш процесса разделяется несколькими сессиями/средами
• Работает со всеми 11g 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 9i table compression работает для DW
• Сжатие для операций массовой загрузки (bulk load)
• Direct Path Load
• Create Table Select As …
• Теперь сжатие можно использовать для OLTP
• Обычные (non-bulk) INSERT, UPDATE, DELETE
• Add, Drop Column
• Выгоды сжатия
•
•
•
•
Уменьшает использование диска – обычно в 2 – 3 раза
Уменьшает ввод/вывод
Увеличивает эффективность кэша
Лучше производительность операций чтения
Цикл жизни данных
Цикл жизни данных
Активные
Менее
активные
Исторические
Offline
архив
DIGITAL DATA STORAGE
Быстрые
диски
Дешевые
диски
Online
архив
Offline
архив
СУБД Oracle + Partitioning –
идеальное средство для ILM
Database
+ Partitioning
Активные
Менее
Исторические
активные
•
•
•
•
•
Понимание бизнес данных
Независимо от Hardware
Прозрачно для приложений
Настраиваемое
Центральная точка
управления
• Дешево – Можно
использовать ASM для
управления множеством
областей хранения (storage
tiers)
Устройства
хранения
ILM Assistant
Механизмы СУБД, используемые
для ILM
Oracle Database 10g
• Partition, Table Level
Compression
• Range, List and Hash
Partitioning
• Composite Partitioning
• Range List, Range Hash
Oracle Database 11g
добавляет
• Лучшее сжатие для таблиц,
партиций, LOB
• Новые Interval, Ref и Virtual
Column Partitioning
• Новые виды смешанного
(Composite) Partitioning
Range
List
Hash
Range
Yes
Yes
Yes
List
Yes
Yes
Yes
Interval
Yes
Yes
Yes
Виртуальные колонки - пример
• Базовая таблица со всеми атрибутами ...
• ... расширена виртуальной (вычисляемой) колонкой
• ... которая используется как ключ секционирования
CREATE TABLE accounts
(acc_no
number(10)
not null,
acc_name
varchar2(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
12
12
...
32320
32407
32758
32980
Jones
Clark
Hurd
Phillips
32
32
32
32
Interval Partitioning
• 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
Q2 2006
Q1 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
• Оптимизирован DataGuard
• 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
[email protected]
Скачать