Вы находитесь на странице: 1из 50

Новые возможности Oracle

Database 12с
Игорь Мельников

Oracle СНГ

Copyright © 2016, Oracle and/or its affiliates. All rights reserved.


Когда закончится
Premier Support для
Oracle Database 11.2?
УЖЕ ЗАКОНЧИЛСЯ
31 января 2015 г.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Когда
Oracle Database 12.2
выйдет?
- Мы будем ждать, когда выйдет
первый патчсет для Release 2
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 3
Почему нет смысла ждать второго релиза?

2007

2008

2009

2010

2011

2012

2013

2016

2015

2016

2017

2018

2019

2020

2021

2022

2023

2024

2025
Oracle 11.2 Jan 2015 May 2017 Dec 2020
(GA: Sep 2009)

Oracle 12.1 Jun 2018 Jun 2021


(GA: Jun 2013)

Oracle 12.2 Patchset


(GA: xxx 2016)

 Каждый патчсет – это полный релиз Периоды между


 Каждый релиз несет большое релизами в месяцах
Oracle 11.2 .. 12.1
количество новых возможностей и
изменений Oracle 10.2 .. 11.1

Oracle 9.2 .. 10.1


 Cейчас нет такого понятия как “2-ой
0 10 20 30 40 50
релиз”
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 4
План

1 Контейнерная архитектура Oracle Database 12c


2 Oracle Database In-Memory
3 Oracle Automatic Data Optimization
4 Новое в процедуре обновления до Oracle Database 12c

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Контейнерная архитектура Oracle
Database 12c

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 6


Мультиарендная Архитектура Oracle Database 12c
Компоненты Мультиарендной Контейнерной БД (CDB)

PDB контейнеры

Root контейнер
Pluggable Databases (PDBs)
подключаемые базы данных
CDB (контейнерная БД)

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Мультиарендная Архитектура

• Мультиарендная архитектура может


поддерживать на данный момент до 252
PDB баз данных
Database
Link • PDB база данных работает точно так же,
как и обычная не-CDB база данных
• Подключившись к базе данных как
клиент, вы не можете определить, с
базой какого типа вы работаете, PDB или
не-CDB

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Файлы в CDB (контейнерной БД)
Области имён

• Каждая PDB имеет свой набор табличных


пространств, включая SYSTEM и SYSAUX
• PDB базы данных разделяют UNDO, REDO
и контрольные файлы, spfile - файл
параметров
• По умолчанию CDB содержит только одно
TEMP табличное пространство, но PDB
базы данных могут создавать свои
собственные

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Отключить / подключить БД
Просто отключите БД от старой CDB…

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Отключить / подключить БД
…и подключите к новой CDB…

• Перемещение подключаемой базы


данных между CDB базами – просто
перемещение метаданных PDB
• Обновление и патчирование происходят
значительно проще
• Отключённая PDB содержит в себе всю
информацию о применённых патчах,
ключах шифрования, параметрах и т.д.

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Управление многими БД как одной
Резервирование всех БД как одной; восстановление на уровне PDB

Один Backup

Восстановление на
момент времени
на уровне PDB

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Oracle Dataguard 12c для контейнерной архитектуры
Одна резервная БД для всех подключаемых баз данных

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Упрощение обновлений (patching)
Изменения применяются один раз, обновляются все PDB базы

Обновление на
месте

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Упрощение обновления обновлений
Гибкий выбор для патчирования & обновлений баз данных

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Клонирование PDB баз данных
Быстрое клонирование PDB баз данных

 PDB база данных может


быть клонирована внутри
той же CDB
 PDB может быть
клонирована из удалённой
CDB
 Интеграция с снапшотами
на уровне СХД/ФС

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Управление разделяемыми ресурсами
Oracle Resource Manager 12c

Низкий Приоритет
Средний Приоритет
Высокий Приоритет

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Преимущества контейнерной Архитектуры
Сокращение затрат, Гибкость, Простота Внедрения
Выделенная PDB для каждого приложения
 Приложения работают без изменений
 Быстрое клонирование (через снимки ФС или СХД)
 Переносимость (через подключаемость)

Разделяемая память и фоновые процессы


 Больше приложений на один сервер

Общие операции выполняются на уровне CDB


Управление многими как одной (обновление, HA,
резервирование)
Гранулярный контроль при необходимости

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Oracle Database In-Memory

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 19


Оперативная память: тренды и влияние
Сегодня память быстрее, дешевле и ее объем больше

Память значительно
Объемы памяти растут Стоимость падает
быстрее

5ms – скорость
2002 256 MB/DIMM 2002 $0.2/MB Disk
доступа
100ns –
2012 16 GB/DIMM 2012 $0.009/MB DRAM скорость
доступа
DRAM: 64x больше емкости 25x дешевле 50,000х быстрее
0.25ms –
2012 100 GB/DOM 2012 $0.0005/MB Flash скорость
доступа
Flash: 400x больше емкости 400x дешевле 20x быстрее

Ускорение OLTP и DW приложений, больше пользователей, больше данных

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Противоречие которое длится десятилетия
Строчный формат и поколоночный

SALES
 OLTP-операции работают быстрее со
строчным форматом
ORDER
Row
– Быстрая обработка нескольких строк, много колонок

SALES

S
 Аналитика работает быстрее с
Column
T
A колоночным форматом
T
E – Отчет о сумме продаж по штату
– Быстрая обработка нескольких колонок, много строк

Приходится выбирать один формат и идти на компромиссы

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Oracle In-Memory: отдельный кэш в SGA
Instance
Instance

Shared pool SGA SGA


Library
In-Memory
cache Database
In-row Redo log Redo log
Columnar
Data Dict. buffer cache buffer cache buffer cache
cache Cache

PMON SMON DBWR LGWR CKPT Others

• Статический параметр INMEMORY_SIZE


SQL> ALTER SYSTEM SET inmemory_size=32G SCOPE=SPFILE;

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


In-Memory Option: Оба формата в памяти СУБД

 И строчный и поколоночный Memory Memory


формат хранения в памяти для
одних и тех же данных/таблиц

 Данные одновременно активны и Sales Sales


транзакционно согласованы OLTP Analytics
Row Column
Format Format

 В 100 раз быстрее аналитика &


отчетность: поколоночный формат

 В 2 раза быстрее OLTP: строчный


формат

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Почему сканирование в In-Memory быстрее чем в
буферном кэше?
Буферный кэш
SELECT COL4 FROM MYTABLE;
X
X
X
X РЕЗУЛЬТАТ
X

Строчный формат

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 24


Почему сканирование в In-Memory быстрее чем в
буферном кэше?

In-Memory кэш
SELECT COL4 FROM MYTABLE;

RESULT
РЕЗУЛЬТАТ
X
X
X
Колоночный формат X

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 25


Включение columnar-кэширования для таблицы или
mview
• Включение columnar-кэширования для группы столбцов таблицы
• Кэшироваться может не вся таблица, а только часть столбцов!
SQL> ALTER TABLE cities
INMEMORY
INMEMORY (Id, Name, Country_Id, Time_Zone)
NO INMEMORY (Created, Modified, State);

Table altered.
•Служебные столбцы – не
участвуют в отчетах:
SQL> ALTER MATERIALIZED VIEW cities_mv INMEMORY;
нужны только для бизнес-
логики
Materialized view altered.

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Изменение плана запроса
SQL-оптимизатор перестраивает план запроса

SQL> SELECT count(*) FROM cities;

Execution Plan
----------------------------------------------------------
Plan hash value: 2756775702

---------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)|
---------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 0 (0)|
| 1 | SORT AGGREGATE | | 1 | |
| 2 | TABLE ACCESS INMEMORY FULL| CITIES | 1 | |
---------------------------------------------------------------------

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Сканирование миллиарда строк в секунду на
процессорном ядре
Пример: Найти все продажи в штате CA
In-Memory Column Store
• Каждое процессорное ядро Sales State column
сканирует одну колонку более чем
в 100 раз
 При сканировании быстрее
используются быстрые
векторные SIMD-инструкции “CA”

Загрузка
SIMD Сравнение
 Миллиарды строк в секунду

Register
Vector
значений Compare all всех
сканируются одним ядром CPU множества
штатов
values in значений
1 за
один цикл
cycle

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Сканирование и объединение данных из нескольких
таблиц

Пример: Найти все продажи в outlet-магазинах

Продажи
 Конвертирует join в Магазины
Storeid
быстрые сканы колонок in
S
A
T T
M
Y 15,38,64 O
O
P R
U
 Joins выполняются в 10 раз E E
N
I
быстрее D T

Type=outlet Sum

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


OLTP работает медленно из-за аналитических индексов
10 - 20
Поколоночное
1-3 аналитических
Таблица OLTP хранение в памяти
 Большинство индексов в OLTP индексов
(например, в ERP) базах строится индекса
только для аналитических запросов
 Индексы хорошо подходят для
предсказуемых запросов (и в
памяти, и на диске)
 Вставка одной строки в таблицу
приводит к обновлению 10-20
аналитических индексов:
Медленно!

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Полный синтаксис кэширования таблицы
Мощный и гибкий синтаксис

SQL> ALTER TABLE cities


INMEMORY
PRIORITY CRITICAL
DUPLICATE
INMEMORY MEMCOMPRESS FOR CAPACITY HIGH (Country_Id, Time_Zone)
INMEMORY MEMCOMPRESS NO (Id, Name, Name_Eng)
NO INMEMORY (Created, Modified, State);

Table altered.

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Storage Index в In-Memory Columnar Store
 Хранит минимальное
и максимальное
значение столбца в
каждом экстенте
памяти кэша
 Прозрачно исключает
ненужные
сканирования
столбцов, например:
WHERE prod_id > 14
AND prod_id < 29

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


SPARC M7 – Database Accelerator Engine (DAX)
• SQL-сопроцессор на кристалле CPU
• Сканирование и декомпрессия
сжатых данных в In-Memory
Columnar Store происходит в
сопроцессоре – на аппаратном
уровне
• Скорость декомпрессии > 120GB/sec
• Эквивалентно 16 PCI-карт с
сопроцессорами декомпрессии или
60 ядер CPU
• Выполнение на аппаратном уровне
условий WHERE (по значению и
диапазону)!
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 33
Для каких приложений подходит In-Memory Option?

• Если в приложении есть много запросов сканирующих много строк с


фильтрами такими как: “=, <, >, и IN”
• Запрашивает всего лишь несколько столбцов, напр: 5 столбцов из 100
столбцов таблицы
• Приложение часто делает соединение большой факторной таблицы с
таблицей измерений, с фильтром по таблице измерений

• Типы приложений предпочтительные для использования In-Memory


Option: хранилища данных (DataWarehouse) и cмешанного типа
(Mixed Application)

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 35
Oracle In-Memory Options не требует изменения
приложений

Полная функциональность - Нет ограничений на SQL


Простота реализации - Не нужна миграция данных
Полная совместимость - Не надо изменять приложения
Полностью Multitenant - Oracle In-Memory готова для cloud

Приложения получают все преимущества In-Memory опции без изменения кода приложения

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Oracle Automatic Data Optimization

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 37


Температурная карта (Heat Map) для сжатия данных
Уменьшает объем используемого места на диске, быстрее читает сжатые данные

Горячие данные Теплые данные Архивные данные


1110101010101010
1010101011101010011010111 1010101011101010
1010101011101010011010111000010100010110111 1010101011101010
1010101011101010011010111000010100010110111010101001

0110101010101101
0000101000101101110101010 0110101110000101
0101010010100100100001000101010110100101101 0110101110000101
0100100100001000101010110100101101001110000101001001

0001011011000110
0101001001000010001010101 0001011011101010
0011100001010010010100001001000010001010101 0001011011101010
0100001001000010001010101110011011100

1001010000010011
1010010110100111000010100 1001010010010000
11001101110011000111010 1001010010010000
1000101010110100
1001010000100100001000101 1000101010110100 1000101010110100
1011010010110001
0101110011010 1011010011100001 1011010011100001
0100100111110010 0100100101000010 0100100101000010
0100001000101010 0100001000101010 0100001000101010
1101000 1101001 1101001
3X 10X 15X
Advanced Row Compression Columnar Query Compression Columnar Archive Compression

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Сжатие строк на основе их использования
“в фоновом режиме”

S
ER
O R D SQL> ALTER TABLE EMPLOYEE ILM
ADD POLICY
ROW STORE COMPRESS ADVANCED ROW
AFTER 1 DAY OF NO MODIFICATION

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Сжатие секций на основе их использования
Автоматическая оптимизация хранения с HCC

S
R D ER SQL> ALTER TABLE ORDERS
O
ILM ADD POLICY
COMPRESS FOR QUERY HIGH
SEGMENT
AFTER 30 DAYS OF NO
MODIFICATION

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


ILM для индексов и LOB-ов
Групповая ILM-политика

SQL> ALTER TABLE TAB1 ILM ADD POLICY


COMPRESS FOR OLTP
GROUP AFTER 90 DAYS OF NO MODIFICATION;

• ILM-политика применяется к таблице, к индексам и LOB-объектам


– LOB сжимаются с помощью SecureFile compression

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


ADO – интеграция с бизнес-правилами
Собственная функция в правиле!
SQL> ALTER TABLE orders ILM ADD POLICY
ROW STORE COMPRESS ADVANCED
SEGMENT
ON orders_is_paid;

Table altered.

SQL> create or replace function orders_is_paid(object_number in


number) return boolean is
begin
… … … ….
end;

http://www.igormelnikov.com/2016/10/oracle-ilm-12-and-custom-business-rules.html
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Перемещение по слоям хранения
Автоматическая оптимизация хранения

SQL> ALTER TABLE EMPLOYEE ILM ADD POLICY


TIER TO LOW_COST_TABLESPACE;

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Автоматическая оптимизация хранения

SSD

Отчетность и законы HDD


OLTP Отчетность
15000RPM

Сжатие в 10 раз Сжатие в 15 раз

HDD 7200RPM
Этот квартал Этот год Предыдущие годы
Построчное хранение для
Compressed Archive Compressed
Column Store Column Store
быстрого OLTP для быстрого анализа
для макс сжатия

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Новое в процедуре обновления до Oracle
Database 12c

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 45


Упрощение обновления до Oracle 12c

Database Upgrade Assistant


• Автоматизация Pre-Upgrade
проверок
• Параллельное обновление
• Интеграция с RMAN
• Гарантированные точки
восстановления
• Подробный alert.log и вывод
диагностики

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Быстрее обновление – меньше простой

Новый параллельный upgrade catctl.pl

• catctl.pl
• Обновление БД в параллельном script1.sql script2.sql script3.sql

режиме
• До 40% быстрее script4.sql script7.sql script9.sql

• Апробирован и используется
крупными глобальными заказчиками
script5.sql script8.sql script10.sql

Oracle Database 11g


– Телеком биллинг
script6.sql script11.sql

– >100 SAP systems


script6.sql

– Крупные DWH

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Быстрее обновление – меньше простой

Пример вызова

$> $ORACLE_HOME/perl/bin/perl
• New Parallel Upgrade catctl.pl -n 8 catupgrd.sql

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Различие в обновлении Oracle 11.2 и Oracle 12c
Обновление до Обновление до Oracle Database 12c
Oracle Database 11.2
Предварительные utlu112i.sql preupgrd.sql
проверки:

Полнота Ограниченная Детальная с подробными


информации: рекомендациями
Скрипты Нет Да – до обновления, и поcле
исправления:
Скрипт обновления: catupgrd.sql catctl.pl
Поддерка Нет До 8 параллельных потоков – по
параллельности: умолчанию : 4

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |


Application Development
Big Data
Consolidation
Data Optimization
Data Warehousing
High Availability
In-Memory
Performance & Scalability
Security & Compliance

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |