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

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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