edition based redefinition. Обновление приложений на “лету”

15
<Insert Picture Here> Edition Based Redefinition Обновление приложений на “лету” Игорь Мельников Oracle СНГ

Upload: andrey-akulov

Post on 15-Jun-2015

192 views

Category:

Technology


10 download

DESCRIPTION

Дополнительные возможности для повышения надежности систем

TRANSCRIPT

Page 1: Edition Based Redefinition. Обновление приложений на “лету”

<Insert Picture Here>

Edition Based RedefinitionОбновление приложений на “лету”Игорь МельниковOracle СНГ

Page 2: Edition Based Redefinition. Обновление приложений на “лету”

2

Высокая доступность

• Внеплановый простой

• Системный сбой• Real Application

Clusters

• Потеря данных • Сбой носителя • ASM, Physical Standby

• Ошибки человека• Технологии Flashback• Logical Standby

• Повреждение данных

• Data Recovery Advisor• RMAN• Oracle Secure Backup

• Катастрофа • Data Guard

• Плановый простой

• Изменение PL/SQL-объектов БД приложения

• Online Application Upgrade

• Сопровождение данных

• Online Redefinition

Page 3: Edition Based Redefinition. Обновление приложений на “лету”

3

Oracle Database 11g Release 2Online Application Upgrade

• Часто бизнес-критичные приложения бывают много часов недоступны из-за “наката” обновлений (патчей) или установки новой версии приложения• Oracle Database 11g Release 2 предлагает

революционную технологию которая дает возможность обновлять приложения на “лету” – без остановки !• Одновременно могут быть использованы как

старая, так и новая версия приложения !

Page 4: Edition Based Redefinition. Обновление приложений на “лету”

4

Решение проблемы установки патчейEdition-based redefinition

• Новые типы объектов в СУБД: – edition– editioning view– crossedition trigger

• PL/SQL-код устанавливается в новую версию (edition)• Новые столбцы таблиц и изменения данных в них, не

видимы в старой версии– Editioning view делают разную проекцию таблиц, структура

которых менялась в каждую версию (новые столбцы невидимы в старой версии)

– Crossedition триггер, невидимо для старой версии, осуществляет конвертацию данных сделанных в старой версии в новую (и наоборот – в случае “отката” патча) структуру

Page 5: Edition Based Redefinition. Обновление приложений на “лету”

5

Версия (редакция) объектаEditions

• Edition – новое понятие в 11.2• Версия наследуется от родительской – Наследует все объекты от родительской (кроме таблиц и

индексов)– Каждая версия может иметь собственную реализацию одного и

того же PL/SQL-объекта– Версия может иметь только одного потомка

• БД должна иметь как минимум одну версию (ORA$BASE – существует по умолчанию)• Сессия всегда выполняется в определенной версии (по

умолчанию в ORA$BASE)

Page 6: Edition Based Redefinition. Обновление приложений на “лету”

6

Версионируемые объекты Editioned Objects

• Не все объекты версионируемы (editioned)• Чтобы объект был версионируемым должно быть

соблюдено два условия:1. Объект должен быть объектом версионируемого

(editionable) типа: • Function, Procedure, • Package (specification and body)• Type (specification and body)• Trigger• Library• Synonym• View

2. Объект должен принадлежать версионно-полномочному пользователю (has an editions-enabled owner)

Page 7: Edition Based Redefinition. Обновление приложений на “лету”

7

CREATE EDITION version_2 AS CHILD OF ora$base;

GRANT USE ON version_2 TO ibs;

ALTER USER ibs ENABLE EDITIONS;

Версия (редакция) объектаСоздание редакции

Page 8: Edition Based Redefinition. Обновление приложений на “лету”

8

Видимость унаследованных объектов

Object_4

Object_3

Object_2

Object_1

Pre-upgrade edition

Page 9: Edition Based Redefinition. Обновление приложений на “лету”

9

Object_4

Object_3

Object_2

Object_1

Object_2

Object_1

Pre-upgrade edition

Post-upgrade edition

Наследуется от

(inherited)

(inherited)

(inherited)

(inherited)

Object_4

Object_3

Видимость унаследованных объектов

Page 10: Edition Based Redefinition. Обновление приложений на “лету”

10

Object_4

Object_3

Object_2

Object_1

Object_4*

Object_3*

Object_2

Object_1

Pre-upgrade edition

Post-upgrade edition

(actual)

(actual)

(inherited)

(inherited)

Видимость унаследованных объектов

Наследуется от

Page 11: Edition Based Redefinition. Обновление приложений на “лету”

11

Object_4

Object_3

Object_2

Object_1

(Object_4)

Object_3

Object_2

Object_1

Pre-upgrade edition

Post-upgrade edition

(dropped)

(actual)

(inherited)

(inherited)

Видимость унаследованных объектов

Наследуется от

Page 12: Edition Based Redefinition. Обновление приложений на “лету”

12

Версионирующие представления Editioning Views

• Таблицы и индексы – это неверсионируемые объекты (noneditionable objects)– Таблицы и индексы содержат огромный объем данных,

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

• Версионирующие представления (editioning views):– Новый класс представлений, появившийся в Oracle11g R2– Логически представляют собой копии таблицы в разных

версиях - это логические проекции неверсионируемых физических таблиц

CREATE EDITIONING VIEW accounts ASSELECT Id,Name,Amount FROM accounts_table;

Page 13: Edition Based Redefinition. Обновление приложений на “лету”

13

Кросс-версионные триггерыCrossedition triggers

• В Oracle11g R2 введен новый специализированный вид триггеров – crossedition triggers• Создаются в «новой» версии (post-upgrade edition)• Два типа кросс-версионных триггеров:– Прогрессивные (forward)• Срабатывают для команд DML, вызванных сессиями «старой»

версии• Обновляют данные в «новых» столбцах таблицы на основе

изменений данных в «старых» её столбцах

– Регрессивные (reverse) (Не обязательны, нужны для “отката” в online)• Срабатывают для команд DML, вызванных сессиями «новой»

версии• Обновляют данные в «старых» столбцах таблицы на основе

изменений данных в «новых» её столбцах

Page 14: Edition Based Redefinition. Обновление приложений на “лету”

14

Edition-based Redefinition

"Edition-based Redefinition is the killer feature of Oracle Database 11g Release 2.

It is worth 2 features".

Tom Kyte (24-feb-2010, Moscow, Russia)

Page 15: Edition Based Redefinition. Обновление приложений на “лету”

<Insert Picture Here>

Игорь МельниковВедущий консультант Oracle СНГ

Email : [email protected] Phone : +7 (495) 641 14 00Direct: +7 (495) 641 14 42Mobile: +7 (915) 205 26 27