Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Database 12c Release 2 Новые возможности, преимущества использования на технологиях Oracle
Сергей Томин Cloud Platform SalesConsultant Oracle CIS
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Доступен в Oracle Public Cloud c октября 2016 – Exadata Express Cloud Service – Database Cloud Services
• Локальный релиз Oracle Database 12.2 для Linux x86-64, Solaris Sparc и x86-64 вышел 01.03.2017
• С апреля 2017 Oracle Database 12.2 доступен для всех основных платформ
• Планы выхода новых версий Oracle отражены в Oracle Support Note742060.1
3
Oracle Database 12c Release 2 Доступен в Oracle Cloud
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Database 12c Постоянные Инновации
4
Производительность
Доступность
Аналитика
Безопасность
Для Разработчиков
Управление
Интеграция
Public
Производительность
Доступность
Аналитика
Безопасность
Для Разработчиков
Управление
Производительность Безопасность Для Разработчиков Управление Доступность Аналитика
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Что Такое Oracle Database In-Memory? • Прорыв: База данных с
двойным форматом данных
• Оба строчный и колоночный форматы для одной таблицы
• Одновременно активны и транзакционно согласованы
• Аналитика & отчёты используют новый in-memory колоночный формат
• OLTP использует проверенный строчный формат
Confidential – Oracle Internal/Restricted/Highly Restricted 6
Buffer Cache Новый In-Memory Формат
SALES SALES
Строчный Формат
Колоночный Формат
SALES
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Преимущества Oracle In-Memory
7
Real-Time Аналитика
Простое Внедрение
Приложения не меняются Размер БД не ограничен размером оперативной
памяти
100X
Ускорение Смешанных Нагрузок
Analytics Transactions
Выполнение аналитики на
транзакционной системе
Принятие бизнес-решений в реальном
времени
Уменьшение Размера Базы Данных
Аналитические индексы можно удалить Нет дополнительных redo или undo Легко управлять
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle In-Memory позволяет быстро сканировать и фильтровать данные
Real-Time Аналитика
Storage Indexes Сжатие
Сканирование & фильтрация
данных в сжатом формате
Обращение только к тем столбцам,
которые нужны
Колоночный Формат
SIMD Векторная Обработка
Обработка нескольких значений столбца в одной инструкции
Vec
tor
Reg
iste
r
Load multiple region values
Vector Compare all values an 1 cycle
CPU CA
CA
CA
CA
Min 1 Max 3
Min 4 Max 7
Min 8 Max 12
Пропуск при сканировании ненужных данных в
столбце
Oracle Confidential – Internal 8
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Новый атрибут INMEMORY
Можно задать для Таблиц
Partitions
Subpartition
Материализованных представлений
Нельзя задать для IOTs
Hash clusters
Внешних LOB-ов
Загрузка Данных в In-Memory Column Store
CREATE TABLE customers ……
PARTITION BY LIST
(PARTITION p1 …… INMEMORY,
(PARTITION p2 …… NO INMEMORY);
ALTER TABLE sales INMEMORY;
ALTER TABLE sales NO INMEMORY;
Чисто OLTP Возможности
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 10
Ускорение работы базы данных
SPARC M7/S7: Software in Silicon
Доступно с Oracle Database 12c
В разы быстрее, чем обычный процессор
Performance Efficiency
Освобождает CPU для транзакционной
обработки
Data Capacity
В 3x раза больше данных при тех же объемах
памяти
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Сравнение Oracle Database 12c In-Memory и SAP HANA
0
50
100
150
200
250
300
350
SAP HANA (DELL)
Oracle Database 12c (Exadata)
Nav
igat
ion
Ste
ps
/ H
ou
r (i
n T
ho
usa
nd
s)
Oracle Confidential – Internal
SAP BW-EML Benchmark: На Одном Узле, используя один и тот же Intel процессор
300,749
148,680
Результаты не сертифицированы SAP!
Oracle In-Memory быстрее 2x
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Позволяет делать аналитику в реальном времени на standby базе данных, не влияя на рабочую базу данных
• Более эффективное использование ресурсов резервной БД
• Можно размещать разные данные в in-memory на standby и рабочей базах данных
• Опция доступна на Exadata/Supercluster и в Oracle Cloud
12
In-Memory на Active Data Guard Standby
Month In-Memory
Production Standby
Year In-Memory
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Join Group определяет столбцы, используемые для соединения таблиц – Столбцы совместно используют
словарь сжатия
• Соединения выполняются на основе cловаря в In-Memory, не используя значения столбцов
• Увеличение скорости соединений в 2-3 раза!
13
Ускорение In-Memory Соединений
Пример: Найти общий объём продаж в аутлетах
Create Join Group store_sales_jg
(STORES (STORE_ID),SALES (STORE_ID);
Stores Store ID is
join column
Type=‘Outlet’
Sales
Am
ou
nt
Sto
re ID
Typ
e
Sto
re ID
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Вычисляемые выражения в In-Memory
• Аналитические запросы часто содержат вычисляемые выражения
• Теперь это выражение можно вычислить заранее для каждой строки и хранить в In-Memory
• Пользователь может управлять этим через виртуальные столбцы
• Либо выражения определяются автоматически
• К таким столбам применяются все техники оптимизации In-Memory
• Cложные запросы выполняются в 3-5x раз быстрее
Confidential – Oracle Internal/Restricted/Highly Restricted
Net = Price + Price * Tax
In-Memory Column Store
Sales
Пример: Вычислить полную цену продаж
Tax
Pri
ce
Pri
ce
Pri
ce +
Pri
ce X
Tax
P
rice
+ P
rice
* T
ax
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Автоматические Политики Загрузки Данных в In-Memory
• Heat map отслеживает историю доступа к данным
• Можно назначать политики для
• Загрузки данных в IM column store
• Увеличения уровня компрессии по мере «устаревания» данных
• Выгрузки данных из IM column store
Confidential – Oracle Internal/Restricted/Highly Restricted
ALTER TABLE sales
ILM ADD POLICY
SET INMEMORY MEMCOMPRESS FOR QUERY
AFTER 60 DAYS OF CREATION;
Sales_Q3
Sales_Q2
Sales_Q4
In-Memory Column Store
Sales _Q1
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
In-Memory Fast-Start
16
• IM колоночный формат сохраняется на диске
• In-Memory column store сохраняется в secure file lob и потом загружается из него при старте базы данных
• Когда БД перезапускается, загрузка данных в In-Memory происходит быстрее, т.к. данные читаются непосредственно в колоночном формате прямо с диска
• Быстрее восстановление (2-5x) колоночного хранилища, т.к. не нужно переформатировать данные
Buffer Cache
In-Memory Column Store
DBFILE1
Table
Index Table
Table Index
DBFILE2 SALES TABLESPACE
FAST START TABLESPACE
Fast Start Data
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 17
Новый Алгоритм Сжатия Индексов
1.2 TB 679 GB 270 GB
No Compression
Low Compression
High Compression
1.8X
4.6X
10,000 Индексов
13% Повышение пропускной способности (для low compression)
• Новое Index High сжатие позволяет ещё больше сжать индексы
• Существенная экономия пространства для приложений с большим количеством индексов (например, OLTP)
• Сжатие индекса позволяет также уменьшить количество I/O операций, т.к. большая часть индекса может быть загружена в кэш
Public
Статистика Использования Индекса
• Отслеживание использования индекса без накладных расходов
• Представления, отображающие гистограммы использования индекса
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Онлайн Шифрование Табличных Пространств
19
• Экзабайты незашифрованных данных существуют сегодня
• Сейчас нужно использовать export/import, чтобы их зашифровать
• 12.2 позволяет шифровать существующие файлы данных в режиме онлайн – Также поддерживает смену ключа шифрования
в онлайн режиме
• Новое – Полное шифрование внутренних структур базы
данных, т.е. SYSTEM, SYSAUX и UNDO табличных пространств
– Поддержка GOST алгоритма шифрования для России
SALES TABLESPACE
HCM TABLESPACE
HCM TABLESPACE
DF11233 U*1 $5Ha1qui %H1 HSKQ112 A14 FASqw34 £$1 DF@£!1ah HH! DA45S& DD1
Acme 10 1/2/16 Acme 3 1/3/16 Acme 5 1/5/16 Acme 12 1/7/16 Acme 4 1/8/16 Acme 2 1/9/16
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Поддержка сравнения символов в базе данных без учёта регистра
• Правила сравнения символов можно задать на уровне схемы, таблицы или столбца
• Сравнение без учёта диакритических знаков также поддерживается
Public 21
Длинные идентификаторы
• Имена таблиц, столбцов и т.д. могут теперь иметь длину до 128 байт
• Позволяет присваивать объектам более понятные имена
Поддержка Глобализации
• AL32UTF8 – кодировка базы данных по умолчанию
• Поддержка Unicode 7.0
Улучшения в Ядре Базы Данных
CREATE TABLE Sales_Data_For_Online_Transactions (Transaction_Identifier NUMBER(6), Date_Of_Sales_Transaction DATE, Gross_Value_of_Transaction NUMBER(3,2), . . . …
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted
Oracle Multitenant – Архитектура Общая SGA Общий набор background процессов Один SPFILE «Pluggable» БД Легче управлять Идеально подходит для Cloud и консолидации
CDB
PDB$ SEED
PDB1 PDB2 PDB3
Redo Control Flashback spfile
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Максимальное количество PDB в одной контейнерной БД увеличено с 252 до 4,096 – Только для Exdata/Supercluster и Oracle
Cloud
• Лимиты на IOPS и MBPS для PDB базы данных
• Контроль выделения памяти для PDB с помощью параметров и менеджера ресурсов
• PDB с разными кодировками и временными зонами
24
Консолидация, Изоляция, Масштабируемость
Retail
Pricing
Multitenant Container
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
PDB Горячее Клонирование
• PDB Горячее Клонирование
– Создание test master базы данных в режиме онлайн
CRM
Oracle Cloud
Pricing Retail
On-Premises
25
Hot Clone
Snap Clone
Snap Clone
CRM CRM Dev1 CRM Dev2
Developers
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
PDB Обновление
• PDB Горячее Клонирование
– Создание test master базы данных в режиме онлайн
• PDB Обновление
– Инкрементальное обновление клона последними данными CRM
Oracle Cloud
Pricing Retail
On-Premises
26
CRM
Snap Clone
Snap Clone
CRM Dev1 CRM Dev2
Developers
TIME
Изменения делаются в БД
Клон БД отстал от сновной
Только изменения копируются и применяются
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• PDB Горячее Клонирование
– Создание test master базы данных в режиме онлайн
• PDB Обновление
– Инкрементальное обновление клона последними данными
• PDB Перемещение – Перемещение без простоя
27
PDB Перемещение
27
CRM
HR
Oracle Cloud
Pricing Retail
On-Premises
CRM
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 28
12.2 Per PDB Flashback
GL AP
PRODUCTION
T5
OE OE
T30 T0 T50 T20 T70 T90 CDB$ROOT
T5 T30 T0 T20
PDB OE
T5
T30
MRP RESTORE POINT alter session set container = OE;
create restore point mrp;
alter pluggable database OE close;
flashback pluggable database OE to restore point mrp;
T5 alter pluggable database OE open resetlogs;
PDB OE CLOSE
T100
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Container
• PDB совместно используют объекты приложения
– Код, метаданные и данные
• Дальнейшее упрощение управления
– Применение изменений к application container
• Подходит для SaaS приложений
Public 29
Account Type • Credit • Debit • Check • Savings
Bank Account
Person
Bank Card
PDB$SEED APP ROOT PDB1 PDB2 PDB3
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Шардинг
31
Линейная Масштабируемость, Изоляция Сбоев, Глобальное Распределение Данных
Одна гигантская база данных разделена на много маленьких баз данных (shards)
Customers Americas
Customers
Customers Europe
Customers Asia
• RAC и Data Guard удовлетворяют потребности 99% приложений, сохраняя прозрачность приложения
• Для некоторых OLTP приложений глобального масштаба предпочтительнее разбить одну огромную базу данных на несколько баз данных меньшего размера
– Чтобы избежать проблем масштабируемости и доступности, присущих одной огромной базе данных
– Необходимо настроить модель данных и приложение, чтобы транзакции автоматически перенаправлялись на правильный шард
• Нативный SQL для разбиения таблиц до 1000 шардов - Маршрутизация SQL в зависимости от ключа шардирования,
запросы по многим шардам - Добавление и реорганизация шардов в онлайн режиме - Линейная масштабируемость данных, нагрузки, пользователей и
изоляция
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 32
Oracle Sharding Автоматическое Распределение Улучшенный SQL синтаксис для Sharding …
CREATE SHARDED TABLE Customers
( CustId VARCHAR2(60) NOT NULL,
FirstName VARCHAR2(60),
LastName VARCHAR2(60),
…
PRIMARY KEY(CustId),
)
PARTITION BY CONSISTENT HASH (CustId)
…
• SQL синтаксис для создания шардированных таблиц
• Открытый API в отличие от NoSQL • При создании шардированной таблицы данные
автоматически секционируются по шардам • Прозрачное решардирование по мере
увеличения объёма данных • Выбор между методами шардирования:
• Управляемый системой - consistent hash • Определяемый пользователем - range, list • Композитный - range-hash, list-hash
• Общие справочные данные (Напр., Прайс-Лист) автоматически дублируются на всех шардах
• Поддержка размещения шардов в определённых географических регионах для соблюдения регуляторных требований (напр., закон о защите персональных данных)
…
…
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 33
Схема БД с шардингом данных
Customers Orders LineItems
Products
Таблицы БД в схеме
Sharded Tables
Shard 1 Shard 2 Shard N
…
Таблицы справочников дублируются по всем БД
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Coordinator DB
App Tier
Routing Tier
Data Tier
34
Поддержка Маршрутизации на Стороне Клиента
Application Server
Shard Directors
• Клиенты посылают sharding key (например, Customer ID) пулу соединений, соединение перенаправляется на нужный шард
• Скорость: кэширование диапазонов ключей на стороне клиента позволяет перенаправлять запросы сразу к шарду
• Масштабируемость: легко масштабируется при увеличении числа клиентов и шардов
• Поддержка UCP, OCI, ODP.NET, and JDBC
Sharding key
…
…
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Пример: Запрос по Нескольким Шардам • ROLLUP - запрос, чтобы получить количество клиентов по регионам в каждом классе
• SELECT geo, class, COUNT(*) FROM Customers GROUP BY geo, ROLLUP(class);
• Запрос выполняется на всех шардах
• Первый уровень агрегации и сортировки выполняется на всех шардах
• Затем координатор делает финальную агрегации данных поступивших от шард и возвращает результат клиенту
35
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 36
Sharding предназначен для OLTP приложений, не для DWH!
Oracle Database Sharding - Преимущества
…
Линейная масштабируемость Отказоустойчивость Географическое распределение
Добавление новой БД "на лету" увеличивает пропускную способность приложения.
Балансировка и разбиение шардов “на лету”.
Сбой одного шарда не приводит к отказу “БД”.
Шарды могут запускаться на разных релизах СУБД
Определяемое пользователем размещение данных для
производительности, доступности, DR.
…
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 12.1.0.2 APPROX_COUNT_DISTINCT
• 12.2.0.1 adds APPROX_PERCENTILE, APPROX_MEDIAN
– Найти значение для заданного процентиля, т.е. значение, которое представляет 90% процентиль для всех продаж
– 6-13X быстрее с погрешностью < 1%
• Приблизительные функции не требуют изменений приложений
– Запросы автоматически переписываются, чтобы использовать приблизительные функции
– approx_for_aggregation = TRUE
38
• Точность и коэффициент доверия для приблизительных функций
• Query rewrite теперь работает для материализованных представлений с приблизительными агрегатами
– Раньше это было невозможно для MV с distinct и percentile агрегатами
Приблизительные Результаты Запросов Не каждый запрос требует абсолютно точного результата
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Database 12c Постоянные Инновации
39
Cloud Internet Клиент-Сервер
1990s 2000s 2010s
Oracle 5, 6, 7, 8 Oracle 8i, 9i, 10g Oracle 11g, 12c
Масштабиру-емость
Row Level Locking, B-tree Indexes, Read Consistency, Parallel Server, Shared Cursors, Shared Server
Real Application Clusters, Automatic Storage Management, IOTs
Advanced Compression, Bitmap Indexes
Exadata, Smart Flash, In-Memory DB, Software-in-Silicon,
Native Database Sharding
Доступность Transactions, Ref Integrity, Online Backup, Point-in-Time Recovery
Data Guard (Active), Recovery Manager, Flashback, Clusterware, Online DDL, TAF
Zero Data Loss Recovery Appliance, Edition Based Redefinition, App. Cont.
Аналитика Partitions, Parallel SQL, Optimizer Analytic Function, Data Mining, OLAP, MVs SQL Pattern Match, R, Big Data Appl
Безопасность Privileges, Roles, Auditing, Network Encryption, Views
Data Encrypt, Masking, Virtual Private DB, Label Security, DB Vault, Audit Vault, PKI
Real Application Security, DB Firewall, Privilege Analysis, Redaction, Key Vault
Для Разработчиков
SQL, Views, PL/SQL, Triggers, LOBs, Object Types, Spatial, Text
Java in DB, Native XML, Table Functions, .Net, PHP, App Express, SQL Developer
Native JSON, REST Services, Node.js, RDF Social Graph, Network Graph
Управление Enterprise Manager, v$, wait event Diagnostics, Tuning, Testing, Lifecycle Packs MultiTenant, DB & Exa Cloud, DB Appl
Интеграция DB Links, 2PC, Replication, AQ GoldenGate, XA Transaction,External Table Big Data SQL, Big Data Analytics
Public
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 40