Новые возможности СУБД oracle database 12c release 2...Новые...

45
Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель отдела баз данных и облачных вычислений технологического консалтинга Oracle СНГ 30 ноября, 2016 года

Upload: others

Post on 10-Aug-2020

44 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

Новые возможности СУБД Oracle Database 12c Release 2

Марк Ривкин

Руководитель отдела баз данных и облачных вычислений технологического консалтинга Oracle СНГ

30 ноября, 2016 года

Page 2: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Oracle Multitenant – Архитектура

Общая SGA Общий набор background процессов Один SPFILE «Pluggable» БД

CDB

PDB$ SEED

PDB1 PDB2 PDB3

Redo Control Flashback spfile

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 3: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

• Количество подключаемых баз данных в контейнере увеличено с 252 до 4096

• Управление выделением памяти на уровне каждой PDB (buffer cache, shared pool, PGA, SGA_MIN_SIZE, SGA_TARGET)

• Управление ресурсами I/O (MAX_IOPS, MAX_MBPS в init.ora)

• Улучшение изоляции для PDB

• PDB lockdown profile – перечень административных операций разрешенных в PDB

Увеличение степени консолидации

HR

CRM

Multitenant Container

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 4: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

PDB Lockdown Profiles

Network access

•Операции которые используют сеть для коммуникации вне PDB

•e.g. UTL_SMTP

System access

•Операции которые работают с компьютером и ОС

•e.g. Выполняют команды хоста

File Access

•Операции которые работают с файлами и папками

•e.g. Размещение External table

Common User or object access

•Операции которые могут позволить локальному пользователю PDB работать через CDB пользователя и обращаться к общим объектам

Administrative features

•Операции которые позволяют администрировать некоторые DB опции

•e.g. Oracle Text

Зачем они нужны?

• Защита разделяемых ресурсов

Page 5: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Управление SGA для PDB

Sales

Marketing

Support

Root

Ограничение SGA для PDB

освобождает память для

других!

SGA

_TA

RG

ET

SGA_TARGET можно установить для PDB. Устанавливает hard limit

для PDB’s SGA.

CDB’s SGA

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 6: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Управление SGA для PDB

Sales

Marketing

Support

Root

Установив SGA_MIN_SIZE для PDB,

получаем Гарантированный объем SGA для PDB.

SGA

_MIN

_SI

ZE

CDB’s SGA

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 7: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Клонирование PDB без останова

• PDB Hot Clone

• Онлайновое создание мастер-копии БД в облаке, для дальнейших тестов

CRM

Oracle Cloud

Pricing Retail

On-Premises

7

Hot Clone

Snap Clone

Snap Clone

CRM CRM Dev1 CRM Dev2

Developers

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 8: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

CRM

Oracle Cloud

Pricing Retail

On-Premises

CRM

Snap Clone

Snap Clone

CRM Dev1 CRM Dev2

Developers

TIME

Изменения в БД

Клон не синхронизирован

Копируются и применяются только изменения

Public

Обновление PDB

• PDB Hot Clone

• Онлайновое создание мастер-копии БД в облаке, для дальнейших тестов

• PDB Refresh Инкрементальное обновление клона БД свежими данными

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 9: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Перемещение PDB

• PDB Hot Clone

• Онлайновое создание мастер-копии БД в облаке, для дальнейших тестов

• PDB Refresh • Инкрементальное обновление клона

БД свежими данными

• PDB Relocate • Перемещение PDB без простоя

CRM

HR

Oracle Cloud

Pricing Retail

On-Premises

CRM

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 10: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

HOT Cloning PDB Refresh manual

PDB Refresh automatic

Клонирование PDB - примеры

SQL> CREATE PLUGGABLE DATABASE oedev FROM oe@dblink

SQL> CREATE PLUGGABLE DATABASE OEDEV FROM OE@DBLINK REFRESH

MODE MANUAL;

SQL> ALTER PLUGGABLE DATABASE OEDEV OPEN READ ONLY;

SQL> ALTER PLUGGABLE DATABASE OEDEV REFRESH;

SQL> CREATE PLUGGABLE DATABASE OEDEV FROM OE@DBLINK REFRESH

MODE EVERY 360 MINUTES; -- каждые обновление 6 часов

SQL> ALTER PLUGGABLE DATABASE OEDEV OPEN READ ONLY;

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 11: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

TNS LISTENER

TNS LISTENER

ПРИЛОЖЕНИЕ НЕ ИЗМЕНЯЕТСЯ СТРОКА СОЕДИНЕНИЯ НЕ ИЗМЕНЯЕТСЯ

12.2 PDB RELOCATE КАК ЭТО РАБОТАЕТ LSNR CONNECTION FORWARDING Другие режимы: LSNR CROSS REGISTRATION COMMON LISTENER

CDB1

GL AP PO

CDB2

create pluggable database OE from OE@CDB1_dblink relocate online;

OE OE

REDO, UNDO and Datafile Copy Iterative REDO Copy

TNS LISTENER_NETWORKS UPDATED IN PDB FOR CONNECT FORWARDING

NEW READ and WRITE CONNECTIONS FORWARDED TO RELOCATED PDB

Iterative REDO Copy

alter pluggable database OE open;

OE

Final REDO Copy and ROLLBACK

OE TOMBSTONE

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 12: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

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

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 13: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Application Containers

Общие данные: справочники, информация о клиентах, нормативная информация

До 12.2: Общие данные и код дублируются в всех PDB

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Pricing Retail CRM

Page 14: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

• Application Container cодержит

• Application Root (Master)

• PDBs в составе контейнера

• Application Seed (шаблон для создания новых PDB в Application Container)

• PDB разделяют общие данные

• Код, метаданные и данные • Еще больше упрощение управления

• Обновления общих данных один раз – в Application Container-е

• Синхронизация мастер-данных • Подходит для любых приложений

Application Containers Контейнер для приложений

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 15: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Application Containers

16

• Совместное использование кода и данных приложения несколькими PDB

Account Type • Credit • Debit • Check • Savings

Bank Account

Person

Bank Card

PDB$SEED APP ROOT PDB1 PDB2 PDB3

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 16: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

Новое в Real Application Cluster и Automatic Storage Management

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 17: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Узлы RAC Reader в Oracle RAC 12.2 Классический RAC Cluster

12.2 Flex Clusters с RAC Reader Nodes

Сильно связанные серверы, напрямую

подключенные к общей СХД

• Узлы RAC Reader обеспечивают

масштабирование read-only-нагрузки на тысячи

узлов

• RAC Reader узлы поддерживают огромное

число вычислительных узлов

• RAC Reader работают на основе концепции Leaf-

узлов, которая появились в Oracle Flex Cluster

12.1

• Leaf-узлы cлабо связаны и НЕ подключены к

общей СХД

• Отказ Leaf-узла не влияет на другие узлы и на

другую нагрузку

• Использование RAC Reader Nodes

обеспечивает перенос read-only нагрузки с DB-

узлов, освобождая их для другой работы

Ввод-вывод leaf-узлов обслуживается Hub-узлами (Исключение: Exadata)

Слабо связанные серверы, НЕ

подключенные к общей СХД

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 18: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Массивная масштабируемость RAC

19

• Массивная масштабируемость выполнения параллельных запросов

• С помощью Flex Cluster, параллельные

запросы могут выполняться на leaf-узлах

• Не обслуживают сессии БД напрямую

• Массивная масштабируемость только для

Parallel Query Parallel Query Coordinator

Parallel Query Processes

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 19: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Управление хранением данных на основе БД для гибкости и достуности

ASM Flex Diskgroup - новый тип дисковой группы ASM

Организация дисков в ASM-группе до 12.1

Diskgroup

DB3 : File 1

DB2 : File 2 DB1 : File 3

DB3 : File 3

DB2 : File 1

DB1 : File 1

DB1 : File 2

DB2 : File 3 DB3 : File 2

DB2 : File 4

12.2 Flex Diskgroup Organization

Flex Diskgroup

DB1 File 1

File 2

File 3

DB2 File 1

File 2

File 3

File 4

DB3 File 1

File 2

File 3

File Group Разделяемое

управление ресурсами Управление ресурсами

на основе БД

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 20: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Flex Diskgroup

DB1 File 1

File 2

File 3

DB2 File 1

File 2

File 3

File 4

DB3 File 1

File 2

File 3

Quota

DB3

File 1

File 2

File 3

Организация дисковой группы ASM Flex • Дисковая группа ASM Flex

обеспечивает:

– Управление квотами – лимит пространства выделенный для БД

– Изменение избыточности – уменьшение уровня зеркалирования для менее критичных БД

– Теневые копии (“split mirrors”) для легкого и быстрого создания клонов БД для тестирования и разработки

ASM Flex Diskgroup - продолжение Управление хранением данных на основе БД для гибкости и достуности

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 21: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

Oracle Database In-Memory 12.2

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 22: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Что такое Oracle Database in-Memory?

• Оба строчный и колоночный форматы для одних и тех же данных

• Данные согласованы и транзакционно целостны

• OLTP-операции используют строчный формат

• Аналитика и отчетность используют новый колоночный формат • Одинаковый результат вне

зависимости от используемого формата представления в памяти

Обычный Буферный кэш

In-Memory Columnar Cache

SALES SALES

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

Колоночный формат

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 23: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

• Real-Time аналитика на резервной БД, без влияния на основную БД

• Более эффективное использование ресурсов резервной БД

• Различные политики In-Memory для одной и той же таблицы на основной и резервной БД

24

In-Memory на Active Data Guard Standby

Month In-Memory

Production Standby

Year In-Memory

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 24: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

In-Memory на Active Data Guard Standby

SQL> ALTER TABLE cities

INMEMORY

DISTRIBUTE FOR SERVICE dwh_ro

INMEMORY (Id, Name, Country_Id, Time_Zone)

NO INMEMORY (Created, Modified, State);

Table altered.

Столбцы помещаются в In-Memory, только на тех экземплярах, где доступен сервис

Пример: включаем для таблицы In-Memory для определенного сервиса

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 25: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

• In-Memory Join Group включают в себя столбцы используемые в соединениях таблиц

• Столбцы разделяют общий словарь в In-Memory (для кодирования в compression unit)

• Соединения выполняются на основе cловаря в In-Memory, не используя значения столбцов

• Увеличение скорости соединений в 2-3 раза!

In-Memory Join – быстрые соединения таблиц в IMDB

Пример: Посчитать объем продаж в магазинах типа "Outlet"

CREATE JOIN GROUP store_sales_jg (stores(store_id), sales(store_id);

Stores Соединение по Store_ID

Type=‘Outlet’

Sales

Am

ou

nt

Sto

re ID

Typ

e

Sto

re ID

Public Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 26: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

• Аналитические запросы часто содержат вычисляемые выражения

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

• Пользователь может управлять этим через виртуальные столбцы

• Либо выражения определяются автоматически

• К таким столбам применяются все техники оптмизации In-Memory

• Cложные запросы выполняются в 3-5x раз быстрее

Real-Time Analytics: Вычисляемые выражения в In-Memory

Net = Price + Price * Tax

In-Memory Column Store

Sales

Example: Compute total sales price

Tax

Pri

ce

Pri

ce

Pri

ce +

Pri

ce X

Tax

P

rice

+ P

rice

* T

ax

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 27: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Автоматизация In-Memory Data Auto Population Policies

Sales_Q3

Sales_Q2

Sales_Q4

In-Memory Column Store

Sales _Q1

• Heat map отслеживает историю доступа к данным

• Можно назначать политики для

• Загрузки данных в IM column store

• Увеличения уровня компрессии по мере «устаревания» данных

• Выгрузки данных из IM column store

Page 28: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

Oracle Sharding

29

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 29: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

• Каждый шард имеет собственные CPU, память и диски

• Данные распределяются по базам с помощью ключа – (sharding key), напр: столбец account_id

• Приложение “видит” одну логическую БД

Oracle Sharding - Aрхитектура

Одна единая физическая БД

Server

Таблицы разделяются на секции распределенные по трем независимым

базам данных (shards)

Server A Server B Server C

A Non-sharded Database A Sharded Database

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 30: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Схема БД с шардингом данных

Customers Orders LineItems

Products

Таблицы БД в схеме

Sharded Tables

Shard 1 Shard 2 Shard N

Таблицы справочников дублируются по всем БД

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 31: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Методы шардинга • Данные распределяются на основе столбца в корневой таблице логической модели

данных

• Sharding Key

• Системный шардинг c помощью хэширования (Consistent Hash)

• Для автоматического равномерного распределения данных по всем базам

• User-defined шардинг с распределением по диапазону или списку значений (Range или List)

• Для явного распределения данных по соответствующим шардам (базам данных)

• Композитный шардинг (Range - Consistent Hash или List - Consistent Hash)

• Для явного распределения данных по группам шард

• И автоматического равномерного распределения данных по шардам внутри группы

32 Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 32: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Шардинг таблиц с ссылочной целостностью

CREATE DUPLICATED TABLE Products (

ProductId INTEGER PRIMARY KEY,

Name VARCHAR2(128),

LastPrice NUMBER(19,4), …….)

TABLESPACE products_tsp ;

CREATE SHARDED TABLE Orders (

OrderId INTEGER,

CustId VARCHAR2(60),

OrderDate TIMESTAMP,

CONSTRAINT pk_orders

PRIMARY KEY (CustId, OrderId),

CONSTRAINT fk_orders_parent

FOREIGN KEY (CustId) REFERENCES

Customers(CustId)

)

PARTITION BY REFERENCE

(fk_orders_parent) ;

CREATE TABLESPACE SET tsp_set_1 ;

CREATE SHARDED TABLE Customers

( CustId VARCHAR2(60) NOT NULL,

FirstName VARCHAR2(60),

LastName VARCHAR2(60),

CustProfile CLOB,

CONSTRAINT pk_customers

PRIMARY KEY(CustId),

CONSTRAINT cons_json

CHECK (CustProfile IS JSON)

)

PARTITION BY CONSISTENT HASH (CustId)

PARTITIONS AUTO

TABLESPACE SET tsp_set_1 ;

33 Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 33: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Oracle Sharding - Возможности

• Автоматизация шардинга через Global Data Services

• Централизованное управление схемой шардинга (разбиение и дублирование)

• Единый глобальный сервис (в GDS) через который доступны все шарды

• Прямая (tnsnames.ora) и программая передача ключа шарда

• Гибкое масштабирование с автоматической балансировкой

• Использование репликации для HA шард-БД

Shard Directors

Catalog / Coordinator

Connection Pool

Sharded Database

(SDB)

Sharding Key e.g. customerID

34 Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 34: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Пример: запрос по нескольким шардам

35

• ROLLUP - запрос, чтобы получить количество клиентов по регионам в каждом классе

• SELECT geo, class, COUNT(*) FROM Customers GROUP BY geo, ROLLUP(class);

• Запрос выполняется на всех шардах

• Первый уровень агрегации и сортировки выполняется на всех шардах

• Затем координатор делает финальную агрегации данных поступивших от шард и возвращает результат клиенту

35 Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 35: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

36

Oracle Database Sharding - преимущества

Линейная масштабируемость Отказоустойчивость Географическое распределение

Добавление новой БД "на лету" увеличивает пропускную способность приложения.

Балансировка и разбиение шардов “на лету”.

Сбой одного шарда не приводит к отказу “БД”.

Шарды могут запускаться на разных релизах СУБД

Определяемое пользователем размещение данных для

производительности, доступности, DR.

36 Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 36: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Oracle Database 12c Release 2 предлагает выбор

Oracle Sharding

Одна единая логическая БД

Одна единая физическая БД

N физических баз данных

Oracle RAC

37 Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 37: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

Oracle Partitioning 12.2

38

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 38: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

List Partitioning - ограничение

Тип продукта1 Тип продукта2

Тип продукта3

До PL/SQL 12.2: значения ключей должны быть определены заранее

CREATE TABLE products (

Id NUMBER(9) GENERATED BY DEFAULT AS IDENTITY,

Code CHAR(5),

Name VARCHAR2(20000))

PARTITION BY LIST (Code) (

PARTITION p1 VALUES ('PROD1'),

PARTITION p2 VALUES ('PROD2'),

PARTITION p3 VALUES ('PROD3'),

PARTITION p_unknown VALUES (DEFAULT));

Прочие типы продуктов

Прочие типы продуктов

39

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 39: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Autolist Partitioning Для новых значений секции создаются автоматически

CREATE TABLE products (

Id NUMBER(9) GENERATED BY DEFAULT AS IDENTITY,

Code CHAR(5),

Name VARCHAR2(2000))

PARTITION BY LIST (Code) AUTOMATIC

(PARTITION p1 VALUES ('PROD1'));

Тип продукта1 Тип продукта2

Тип продукта3 Тип продукта4 Тип продукта5 ...

INSERT INTO products(Code,Name) VALUES ('PROD2','PRODUCT 2');

40

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

INSERT INTO products(Code,Name) VALUES ('PROD3','PRODUCT 3'); INSERT INTO products(Code,Name) VALUES ('PROD4','PRODUCT 4'); INSERT INTO products(Code,Name) VALUES ('PROD5','PRODUCT 5');

ALTER TABLE old_products SET PARTITIONING AUTOMATIC;

Page 40: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Multi-column list Partitioning Cекционирование по списку по нескольким столбцам

CREATE TABLE orders (

Id NUMBER(9) GENERATED BY DEFAULT AS IDENTITY,

ProductCode CHAR(5),

OrderTypeCode CHAR(5))

PARTITION BY LIST (ProductCode, OrderTypeCode)

(PARTITION p1 VALUES (('PROD1','TYPE1'),('PROD1','TYPE2')),

PARTITION p2 VALUES ('PROD2','TYPE1'),

PARTITION p3 VALUES ('PROD2','TYPE2'),

PARTITION p_unknown VALUES(default));

• Расширенный синтаксис обращения к секции также работает:

SELECT * FROM orders PARTITION FOR ('PROD2','TYPE1');

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 41: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Mar Jan

Feb

CDRs

SQL

Application

Конвертация таблицы в секционированную Conversion of a nonpartitioned table to a partitioned table

ALTER TABLE orders MODIFY

PARTITION BY LIST (ProductCode, OrderTypeCode)

AUTOMATIC (PARTITION p1 VALUES

(('PROD1','TYPE1'),('PROD1','TYPE2')))

ONLINE UPDATE INDEXES;

• В процессе конвертации, DML над таблицей разрешен!

• Глобальные секционированные остаются

• Непрефиксные индексы становятся глобальными несекционированными индексами

• Префиксные индексы становятся локальными секц. индексами

• Bitmap-индексы становятся локальными секц. индексами Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 42: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Partitioning – прочие улучшения

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

• Перевод в READ-ONLY cекций и под-секций

• Упрощение cоздания таблицы для обмена секции и таблицы

• Фильтрация строк при операциях с секциями (MOVE, SPLIT, MERGE)

ALTER TABLE orders_move_part

MOVE PARTITION q1_2016 TABLESPACE open_orders COMPRESS

ONLINE

INCLUDING ROWS WHERE order_state = 'open';

CREATE TABLE table1 FOR EXCHANGE WITH TABLE part_table1;

ALTER TABLE orders MODIFY PARTITION year_2011 READ ONLY;

Page 43: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Partitioning External Tables

Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

• Cекционирование поддерживается и для внешних таблиц (EXTERNAL TABLE) REATE TABLE orders (

order_id NUMBER(12),

order_date DATE NOT NULL,

.... )

ORGANIZATION EXTERNAL(

TYPE ORACLE_LOADER

DEFAULT DIRECTORY data_dir1

ACCESS PARAMETERS(

RECORDS DELIMITED BY NEWLINE

BADFILE bad_dir: 'sh%a_%p.bad'

LOGFILE log_dir: 'sh%a_%p.log'

FIELDS TERMINATED BY '|’))

PARALLEL

PARTITION BY RANGE (order_date)

(PARTITION month1 VALUES LESS THAN (TO_DATE('31-12-2014', 'DD-MM-YYYY'))

LOCATION ('sales_1.csv'),

PARTITION month2 VALUES LESS THAN (TO_DATE('31-01-2015', 'DD-MM-YYYY'))

LOCATION ('sales_2.csv'),

PARTITION month3 VALUES LESS THAN (TO_DATE('28-02-2015', 'DD-MM-YYYY'))

LOCATION ('sales_3.csv'),

PARTITION pmax VALUES LESS THAN (MAXVALUE)

DEFAULT DIRECTORY data_dir2 LOCATION('sales_4.csv'));

Page 44: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель

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

Oracle Database 12c R2 - продолжение непрерывных инноваций

Облака Интернет Клиент-Сервер

1990-ые 2000-ые 2010-ые

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 Pluggable DB RAC и ASM In-Memory Sharding Partitioning PL/SQL JSON

Page 45: Новые возможности СУБД Oracle Database 12c Release 2...Новые возможности СУБД Oracle Database 12c Release 2 Марк Ривкин Руководитель