SlideShare a Scribd company logo
1 of 27
Download to read offline
Использование
Edition Based Redefinition
для обновления приложений,
доступных 24/7
Петр Марголис
Архитектор
Oracle Database Forum, Москва
19 февраля 2014
План









О компании CUSTIS

Приложение
Цели и требования
Варианты архитектуры решения

Основные принципы Oracle EBR
Перевод приложения на EBR
Результат

2/27
О компании CUSTIS


Специализация – заказная разработка,
бережное внедрение и сопровождение
на полном жизненном цикле масштабных
учетно-аналитических систем





Год основания – 1996
Количество сотрудников > 200
Ключевые клиенты: Банк России,
Газпромбанк, ГК «Спортмастер»,
ЕИРКЦ г. Астрахани, ЕРКЦ г. Саратова

3/27
Приложение




Банковская учетная система

Двухзвенная архитектура




Сервер – Oracle DB 11gR2, бизнес-логика на PL/SQL
«Тонкий клиент» – отображение и ввод данных

Интеграция с другими системами

4/27
Цели и задачи



Централизация учета в многофилиальном
банке

 Филиалы располагаются в различных часовых
поясах, поэтому приложение используется
в режиме 24/7



Снижение операционных рисков
при обновлении системы во время
эксплуатации

 Поэтапное внедрение изменений в различных
филиалах с возможностью их отмены

5/27
Технические требования



Возможность установки обновлений ПО
без остановки работы системы



Параллельная эксплуатация нескольких
версий ПО, работающих с одними данными



Возможность перевода пользователей
на новую версию ПО или «отката»
к предыдущей версии

6/27
Варианты архитектуры решения

Распределенная

Централизованная

7/27
Распределенная архитектура
 Повышение надежности: отказ






одного узла не приводит
к остановке системы
В каждой временной зоне есть
возможность выделить
технологическое окно
для установки обновлений
Необходимость
администрировать множество
экземпляров ПО
Необходимость синхронизации
изменений и разрешения
конфликтов
Нет механизма «отката»
обновлений
8/27
Централизованная архитектура
 Уменьшение количества
экземпляров системы,
которые необходимо
администрировать

 Гарантированная
согласованность данных

 Отсутствие технологических
окон для установки
обновлений

 Нет механизма поэтапного
обновления ПО и «отката»
обновлений

9/27
Edition-based redefinition (EBR)




Входит в Enterprise Edition, начиная с 11gR2



Позволяет управляемо переключать
пользователей на различные версии ПО

Позволяет выполнять изменения
(redefinition) объектов, не затрагивая
существующие версии (editions) объектов

10/27
Версионируемость объектов
Версионируемые

Неверсионируемые




















Function
Procedure
Package
(спецификация и тело)
Type (спецификация
и тело)
Trigger
Non-public synonym
View
Editioning Views
Cross-edition triggers



Tables
Constraints
Indexes
Database links
Materialized views
Sequences
Public synonyms
(версионируемые в 12с)
….

11/27
Перевод приложения на EBR









Подготовительные шаги

Инструментарий администратора
Доработка приложения
Обновление неверсионных объектов

Обеспечение совместимости версий
Изменения в модели безопасности
Влияние на разработку и эксплуатацию

12/27
Подготовительные шаги
1. Включение версионирования
для набора схем

13/27
Подготовительные шаги
1. Включение версионирования
для набора схем

2. Создание версионирующих
представлений для всех таблиц

14/27
Подготовительные шаги
1. Включение версионирования
для набора схем

2. Создание версионирующих
представлений для всех таблиц

3. Перевод кода PL/SQL
и клиентских приложений
на использование
версионирующих представлений

15/27
Подготовительные шаги
1. Включение версионирования
для набора схем

2. Создание версионирующих
представлений для всех таблиц

3. Перевод кода PL/SQL
и клиентских приложений
на использование
версионирующих представлений

4. «Перевешивание» триггеров
на версионирующие представления

5. Выдача прав другим схемам
на версионирующие представления
16/27
Инструментарий администратора


Доработка инструментария
установки обновлений



Создание нового edition перед
изменением объектов

17/27
Инструментарий администратора


Доработка инструментария
установки обновлений



Создание нового edition перед
изменением объектов

18/27
Инструментарий администратора


Доработка инструментария
установки обновлений



Создание нового edition перед
изменением объектов

19/27
Инструментарий администратора


Доработка инструментария
установки обновлений





Создание нового edition перед
изменением объектов

Разработка инструментария
управления версиями



Задание версии по умолчанию

ALTER DATABASE DEFAULT EDITION = edition_name;



Переключение пользователей между
версиями

CREATE OR REPLACE TRIGGER tr_set_edition
AFTER LOGON ON DATABASE
…
ALTER SESSION SET EDITION = edition_name;
…

20/27
Доработка приложения





Неверсионные объекты
не могут ссылаться
на версионные
Появляются новые типы
объектов
и изменяются структуры
Расширяется набор
атрибутов, задающих
уникальность объектов

Отказ
от использования
публичных
синонимов
Изменение работы
со словарем данных
Oracle

(owner, object_name,
edition_name)

21/27
Обновление неверсионируемых
объектов


Блокировка
неверсионируемых объектов
(таблиц, индексов)
при выполнении DDL операций

 Использование EBR совместно
с Online Redefinition
(DBMS_REDEFINITION)



Изменение индексов
(создание, удаление)
затрагивает все editions

 Workaround при помощи
invisible индексов
22/27
Обеспечение совместимости версий


Внесение изменений в структуру
или логику использования данных может
нарушить работу предыдущей версии

 Дублирование данных и их синхронизация
при помощи кросс-версионных триггеров
(Cross-edition triggers)
Пример 1
Разделение одной таблицы на «мастер»
и «деталь» (связь один ко многим):





Существующие столбцы таблицы не удаляются
Когда «старая» версия изменяет данные
в основной таблице, то Forward-триггер
заполняет новую таблицу
Когда «новая» версия меняет данные
в подчиненной таблице, то Reverse-триггер
заполняет «старые» столбцы основной
таблицы
23/27
Обеспечение совместимости версий


Внесение изменений в структуру или
логику использования данных может
нарушить работу предыдущей версии

 Дублирование данных и их синхронизация
при помощи кросс-версионных триггеров
(Cross-edition triggers)
Пример 2
Изменение набора значений атрибута,
с которым связана логика приложения:




Создается новый столбец, дублирующий
существующий
Каждая версия «видит» свой экземпляр
столбца
Логика преобразования значений атрибута
реализуется в кросс-версионных триггерах
24/27
Влияние на разработку и эксплуатацию


Необходимо обеспечивать совместимость нескольких
версий при разработке и тестировании






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

Наличие кросс-версионных триггеров может
замедлять операции изменения данных, в том числе
в уже эксплуатируемой версии





В примере 1 при разделении основной таблицы на две –
вставка в подчиненную таблицу замедляется в два раза

Одновременная эксплуатация нескольких версий
может усложнить процедуры разбора и разрешения
инцидентов
25/27
Преимущества решения с EBR


Установка обновлений ПО без остановки
системы

 за счет создания нового edition для обновления



Одновременная работа пользователей
с разными версиями ПО в рамках одного
экземпляра БД и с одним набором
данных

 за счет использования разных editions
и cross-edition triggers



Контролируемое переключение
пользователей между версиями,
в том числе «откат» обновлений

 за счет использования версии по умолчанию
и/или задания версии для отдельного
пользователя

26/27
Спасибо за внимание!

Петр Марголис
pmargolis@custis.ru
+7 (495) 772-97-02

27/27

More Related Content

Similar to Использование Edition Based Redefinition для обновления приложений, доступных 24/7

Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологий
Отшельник
 
0041
00410041
0041
JIuc
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложений
Jack Chikovany
 
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
Омские ИТ-субботники
 

Similar to Использование Edition Based Redefinition для обновления приложений, доступных 24/7 (20)

Управление данными (дополнительно)
Управление данными (дополнительно)Управление данными (дополнительно)
Управление данными (дополнительно)
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологий
 
0041
00410041
0041
 
NetWrix SQL Server Change Reporter. Обзор программы для аудита SQL Server
NetWrix SQL Server Change Reporter. Обзор программы для аудита SQL ServerNetWrix SQL Server Change Reporter. Обзор программы для аудита SQL Server
NetWrix SQL Server Change Reporter. Обзор программы для аудита SQL Server
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектура
 
Киев, BA Con 2017
Киев, BA Con 2017Киев, BA Con 2017
Киев, BA Con 2017
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложений
 
Ruby on Rails. Работа с моделями
Ruby on Rails. Работа  с моделямиRuby on Rails. Работа  с моделями
Ruby on Rails. Работа с моделями
 
Бизнес-контекст, совместная работа и согласованность для интеллектуального уп...
Бизнес-контекст, совместная работа и согласованность для интеллектуального уп...Бизнес-контекст, совместная работа и согласованность для интеллектуального уп...
Бизнес-контекст, совместная работа и согласованность для интеллектуального уп...
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFS
 
Бастион Интегратор: Решение "Проектный офис" на базе Microsoft Project Server
Бастион Интегратор: Решение "Проектный офис" на базе Microsoft Project ServerБастион Интегратор: Решение "Проектный офис" на базе Microsoft Project Server
Бастион Интегратор: Решение "Проектный офис" на базе Microsoft Project Server
 
методология Rad (46)
методология Rad (46)методология Rad (46)
методология Rad (46)
 
Новая платформа сбора показателей
Новая платформа сбора показателейНовая платформа сбора показателей
Новая платформа сбора показателей
 
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
 
Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребности
 
Архитектура в Agile проекте
Архитектура в Agile проектеАрхитектура в Agile проекте
Архитектура в Agile проекте
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017
 

More from CUSTIS

More from CUSTIS (20)

Три истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для EnterpriseТри истории микросервисов, или MSA для Enterprise
Три истории микросервисов, или MSA для Enterprise
 
Долгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейлеДолгоживущие ИТ в динамичном ритейле
Долгоживущие ИТ в динамичном ритейле
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациям
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...Диаграммы учета как средство для наглядного и целостного отображения правил у...
Диаграммы учета как средство для наглядного и целостного отображения правил у...
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практики
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революции
 
Опыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банкеОпыт построения микросервисной архитектуры в цифровом банке
Опыт построения микросервисной архитектуры в цифровом банке
 
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?Золотая лихорадка MSA: почему нам не подошли микросервисы?
Золотая лихорадка MSA: почему нам не подошли микросервисы?
 
Барьеры микросервисной архитектуры
Барьеры микросервисной архитектурыБарьеры микросервисной архитектуры
Барьеры микросервисной архитектуры
 
Три истории микросервисов
Три истории микросервисовТри истории микросервисов
Три истории микросервисов
 
От монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульнымОт монолитных моделей предметной области — к модульным
От монолитных моделей предметной области — к модульным
 
Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...Проблемы управления правами доступа к информационным системам крупной торгово...
Проблемы управления правами доступа к информационным системам крупной торгово...
 
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифрыБудущее omni-channel маркетинга: инструменты, кейсы и цифры
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
State of the .Net Performance
State of the .Net PerformanceState of the .Net Performance
State of the .Net Performance
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
 
Опыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектурыОпыт применения метода ATAM для оценки архитектуры
Опыт применения метода ATAM для оценки архитектуры
 
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватаетГибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
 
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
 

Recently uploaded

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 

Recently uploaded (9)

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 

Использование Edition Based Redefinition для обновления приложений, доступных 24/7

  • 1. Использование Edition Based Redefinition для обновления приложений, доступных 24/7 Петр Марголис Архитектор Oracle Database Forum, Москва 19 февраля 2014
  • 2. План        О компании CUSTIS Приложение Цели и требования Варианты архитектуры решения Основные принципы Oracle EBR Перевод приложения на EBR Результат 2/27
  • 3. О компании CUSTIS  Специализация – заказная разработка, бережное внедрение и сопровождение на полном жизненном цикле масштабных учетно-аналитических систем    Год основания – 1996 Количество сотрудников > 200 Ключевые клиенты: Банк России, Газпромбанк, ГК «Спортмастер», ЕИРКЦ г. Астрахани, ЕРКЦ г. Саратова 3/27
  • 4. Приложение    Банковская учетная система Двухзвенная архитектура   Сервер – Oracle DB 11gR2, бизнес-логика на PL/SQL «Тонкий клиент» – отображение и ввод данных Интеграция с другими системами 4/27
  • 5. Цели и задачи  Централизация учета в многофилиальном банке  Филиалы располагаются в различных часовых поясах, поэтому приложение используется в режиме 24/7  Снижение операционных рисков при обновлении системы во время эксплуатации  Поэтапное внедрение изменений в различных филиалах с возможностью их отмены 5/27
  • 6. Технические требования  Возможность установки обновлений ПО без остановки работы системы  Параллельная эксплуатация нескольких версий ПО, работающих с одними данными  Возможность перевода пользователей на новую версию ПО или «отката» к предыдущей версии 6/27
  • 8. Распределенная архитектура  Повышение надежности: отказ     одного узла не приводит к остановке системы В каждой временной зоне есть возможность выделить технологическое окно для установки обновлений Необходимость администрировать множество экземпляров ПО Необходимость синхронизации изменений и разрешения конфликтов Нет механизма «отката» обновлений 8/27
  • 9. Централизованная архитектура  Уменьшение количества экземпляров системы, которые необходимо администрировать  Гарантированная согласованность данных  Отсутствие технологических окон для установки обновлений  Нет механизма поэтапного обновления ПО и «отката» обновлений 9/27
  • 10. Edition-based redefinition (EBR)   Входит в Enterprise Edition, начиная с 11gR2  Позволяет управляемо переключать пользователей на различные версии ПО Позволяет выполнять изменения (redefinition) объектов, не затрагивая существующие версии (editions) объектов 10/27
  • 11. Версионируемость объектов Версионируемые Неверсионируемые                 Function Procedure Package (спецификация и тело) Type (спецификация и тело) Trigger Non-public synonym View Editioning Views Cross-edition triggers  Tables Constraints Indexes Database links Materialized views Sequences Public synonyms (версионируемые в 12с) …. 11/27
  • 12. Перевод приложения на EBR        Подготовительные шаги Инструментарий администратора Доработка приложения Обновление неверсионных объектов Обеспечение совместимости версий Изменения в модели безопасности Влияние на разработку и эксплуатацию 12/27
  • 13. Подготовительные шаги 1. Включение версионирования для набора схем 13/27
  • 14. Подготовительные шаги 1. Включение версионирования для набора схем 2. Создание версионирующих представлений для всех таблиц 14/27
  • 15. Подготовительные шаги 1. Включение версионирования для набора схем 2. Создание версионирующих представлений для всех таблиц 3. Перевод кода PL/SQL и клиентских приложений на использование версионирующих представлений 15/27
  • 16. Подготовительные шаги 1. Включение версионирования для набора схем 2. Создание версионирующих представлений для всех таблиц 3. Перевод кода PL/SQL и клиентских приложений на использование версионирующих представлений 4. «Перевешивание» триггеров на версионирующие представления 5. Выдача прав другим схемам на версионирующие представления 16/27
  • 17. Инструментарий администратора  Доработка инструментария установки обновлений  Создание нового edition перед изменением объектов 17/27
  • 18. Инструментарий администратора  Доработка инструментария установки обновлений  Создание нового edition перед изменением объектов 18/27
  • 19. Инструментарий администратора  Доработка инструментария установки обновлений  Создание нового edition перед изменением объектов 19/27
  • 20. Инструментарий администратора  Доработка инструментария установки обновлений   Создание нового edition перед изменением объектов Разработка инструментария управления версиями  Задание версии по умолчанию ALTER DATABASE DEFAULT EDITION = edition_name;  Переключение пользователей между версиями CREATE OR REPLACE TRIGGER tr_set_edition AFTER LOGON ON DATABASE … ALTER SESSION SET EDITION = edition_name; … 20/27
  • 21. Доработка приложения    Неверсионные объекты не могут ссылаться на версионные Появляются новые типы объектов и изменяются структуры Расширяется набор атрибутов, задающих уникальность объектов Отказ от использования публичных синонимов Изменение работы со словарем данных Oracle (owner, object_name, edition_name) 21/27
  • 22. Обновление неверсионируемых объектов  Блокировка неверсионируемых объектов (таблиц, индексов) при выполнении DDL операций  Использование EBR совместно с Online Redefinition (DBMS_REDEFINITION)  Изменение индексов (создание, удаление) затрагивает все editions  Workaround при помощи invisible индексов 22/27
  • 23. Обеспечение совместимости версий  Внесение изменений в структуру или логику использования данных может нарушить работу предыдущей версии  Дублирование данных и их синхронизация при помощи кросс-версионных триггеров (Cross-edition triggers) Пример 1 Разделение одной таблицы на «мастер» и «деталь» (связь один ко многим):    Существующие столбцы таблицы не удаляются Когда «старая» версия изменяет данные в основной таблице, то Forward-триггер заполняет новую таблицу Когда «новая» версия меняет данные в подчиненной таблице, то Reverse-триггер заполняет «старые» столбцы основной таблицы 23/27
  • 24. Обеспечение совместимости версий  Внесение изменений в структуру или логику использования данных может нарушить работу предыдущей версии  Дублирование данных и их синхронизация при помощи кросс-версионных триггеров (Cross-edition triggers) Пример 2 Изменение набора значений атрибута, с которым связана логика приложения:    Создается новый столбец, дублирующий существующий Каждая версия «видит» свой экземпляр столбца Логика преобразования значений атрибута реализуется в кросс-версионных триггерах 24/27
  • 25. Влияние на разработку и эксплуатацию  Необходимо обеспечивать совместимость нескольких версий при разработке и тестировании    Если есть изменения в модели данных, несовместимые с текущей версией Если есть изменения в логике использования атрибутов и структур данных Наличие кросс-версионных триггеров может замедлять операции изменения данных, в том числе в уже эксплуатируемой версии   В примере 1 при разделении основной таблицы на две – вставка в подчиненную таблицу замедляется в два раза Одновременная эксплуатация нескольких версий может усложнить процедуры разбора и разрешения инцидентов 25/27
  • 26. Преимущества решения с EBR  Установка обновлений ПО без остановки системы  за счет создания нового edition для обновления  Одновременная работа пользователей с разными версиями ПО в рамках одного экземпляра БД и с одним набором данных  за счет использования разных editions и cross-edition triggers  Контролируемое переключение пользователей между версиями, в том числе «откат» обновлений  за счет использования версии по умолчанию и/или задания версии для отдельного пользователя 26/27
  • 27. Спасибо за внимание! Петр Марголис pmargolis@custis.ru +7 (495) 772-97-02 27/27