Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
Постановка задачи такая: существуют несколько приложений, находящихся в разных базах.
Все они используют настройки (справочники) находящиеся в схемах/таблицах одинаковой структуры.
Необходимо использовать одни и те же настройки для всех приложений

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

Рассматривается вариант с использованием DBLINK с созданием синонимов (или mview) на все структуры настройки.
Собственно, вопрос: насколько правильный подобный подход и есть ли альтернативные варианты
(кроме переноса всего в одну базу)?

Если ответ положительный, то сразу вопрос:
Как корректно пробрасывать в сессию на удаленной базе client_info сессии, открывшей dblink?
Рассматриваем вариант установки CLIENT_INFO на триггере on logon в remote db таким же как и в source, но не понимаем,
как добраться до него из этого триггера.
Установка client_info обязательна, т.к. на него завязано много бизнес-логики, поэтому предполагается использовать именно триггер,
как наиболее надежный вариант установки параметров, в том числе при восстаовлении связи после падения.
6 окт 14, 17:16    [16667394]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
-2-
Member

Откуда:
Сообщений: 15330
sevtech04,

репликация...
6 окт 14, 17:45    [16667581]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
-2-, Репликация плохой вариант, т.к. доступ к изменившимся данным справочников требуется сразу всем приложениям.
6 окт 14, 17:50    [16667604]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
-2-
Member

Откуда:
Сообщений: 15330
sevtech04
доступ к изменившимся данным справочников требуется сразу всем приложениям.
Может статься, что репликация будет значительно менее латентна, чем само приложение.
В конце концов, застопорить систему можно не только дблинками, но и синхронной репликацией.
6 окт 14, 17:56    [16667636]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
sevtech04
-2-, Репликация плохой вариант, т.к. доступ к изменившимся данным справочников требуется сразу всем приложениям.
и как это противоречит репликации? а вообще напрашивается решение класса mdm
6 окт 14, 17:59    [16667650]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
Alexander Ryndin,
Более сотни справочных таблиц, с которыми одновременно работает несколько сотен юзеров. Как-то страшновато реплицировать все это между 4-5 серверами в онлайне.
P.S. А при чем здесь вообще MDM-решения? Речь идет о крупных десктопных приложениях. Или Вы имеете в виду не Mobile Device Management?
6 окт 14, 18:06    [16667677]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
mayton
Member

Откуда: loopback
Сообщений: 49795
sevtech04
Рассматривается вариант с использованием DBLINK с созданием синонимов (или mview) на все структуры настройки.
Собственно, вопрос: насколько правильный подобный подход и есть ли альтернативные варианты
(кроме переноса всего в одну базу)?

Тут без нагрузки - непонятно. Наверное никто не оценивал какой % таблиц и справочников
перенесутся в db_link и какие через MVIEW и как просядет производительность при работе
с основным набором данных которые будут видны ТОЛЬКО через DB_LINK.

Мне кажется с этого надо начать.
6 окт 14, 18:06    [16667679]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
mayton,
Предполагается, что общими данными будут практически все (это порядка 100 таблиц), кроме особо специфичных для приложений.
Плюс по подобной схеме планируется реализовать использование нескольких конфигураций (т.е. разные схемы приложений используют db_link с одинаковым именем, только смотрящие в разные места, при этом серверный код остается без изменений)
6 окт 14, 18:13    [16667706]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
sevtech04
Alexander Ryndin,
Более сотни справочных таблиц, с которыми одновременно работает несколько сотен юзеров. Как-то страшновато реплицировать все это между 4-5 серверами в онлайне.
P.S. А при чем здесь вообще MDM-решения? Речь идет о крупных десктопных приложениях. Или Вы имеете в виду не Mobile Device Management?
А изменения этих справочников где делаются? Во всех 4-5 системах? MDM в данном контексте это master data management.
6 окт 14, 18:15    [16667709]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
mayton
Member

Откуда: loopback
Сообщений: 49795
sevtech04
mayton,
Предполагается, что общими данными будут практически все (это порядка 100 таблиц), кроме особо специфичных для приложений.
Плюс по подобной схеме планируется реализовать использование нескольких конфигураций (т.е. разные схемы приложений используют db_link с одинаковым именем, только смотрящие в разные места, при этом серверный код остается без изменений)

Друг. Тут тебе никто пальцем в небо не попадёт. Разворачивай на макете и смотри
как просядет скорость работы. Насчёт правильности подхода - х.з. Главное
чтоб работало. Это тебе не Мартин Фаулер. Это база мать ее так. Всё бувай. Успехов.
6 окт 14, 18:17    [16667718]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
FOREIGN KEY
Guest
sevtech04, ссылочная целостность не используется?
Как вы представляете ее использовать, если справочники будут лежать в отдельной БД?
6 окт 14, 18:36    [16667797]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
Alexander Ryndin,
да, изменения возможны из разных клиентов, определяется грантами юзеров
6 окт 14, 19:35    [16668006]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
mayton,

на макете я разворачиваю, естественно. Но меня тормозит второй вопрос - client_info На нем завязано достаточно много критичной логики. И без нормаьного проброса в удаленную базу практически нет возможности тестить в существующих приложениях.
6 окт 14, 19:38    [16668012]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
FOREIGN KEY,

Ссылочная целостность соблюдается вручную, foreign key не используется. Во всех структурах использующих правочники есть поля первичного ключа таблиц-справочников. Естественно, при переходе на такую схему потребуется конвертация ссылочных полей.
6 окт 14, 19:42    [16668016]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
Alexander Ryndin,

плюс еще одно требование к постановке - минимум изменений в существующем коде. А кода за годы развития и работы приложений уже сотни тысяч строк... Это одна из главных причин поиска решения, позволяющего написать и забыть, даже пожертвовав производительностью
6 окт 14, 19:46    [16668032]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
mayton
Member

Откуда: loopback
Сообщений: 49795
sevtech04
mayton,

на макете я разворачиваю, естественно. Но меня тормозит второй вопрос - client_info На нем завязано достаточно много критичной логики. И без нормаьного проброса в удаленную базу практически нет возможности тестить в существующих приложениях.

Если в БД№1 вызовы set_module, set_action, set_client_info проходили через прикладной интерфейс
то его надо изменить таким образом чтобы шёл трансфер изменений в БД№2. Или считывать эти
данные синхронно из gv$session в БД№1 по линку. Ну вобщем соплей и костылей тут можно
много придумать. Пускай форум подкинет еще мыслей.
6 окт 14, 20:14    [16668124]     Ответить | Цитировать Сообщить модератору
 Re: Объединение нескольких Oracle приложений  [new]
sevtech04
Member

Откуда:
Сообщений: 9
mayton, Alexander Ryndin

Да видимо это задача MDM.
Только здесь хочется прикладные задачи непосредственно подсадить на этот репозитарий.

При том, что изменение его записей грантуемо нормальной бизнес-логикой конкретного приложения.

В единую базу приложения затягивать нет желания по причинам:
1. Задачи восстановления данных из бекапа возможны раздельно для приложений.
2. Некоторые инстансы/приложения развернуты в географической локации пользователей (т.к. каналы связи).
3. Деление инстансов на железном уровне - распределяет нагрузку.
и т.д

Насколько вообще корректна идея разбежки приложения/приложений по нескольким базам для ERP?
Если бизнес логика хорошо делится на логические блоки.

Грубо Базы (для понимания):
1. MDM_GLOSSARY

2. BUH0_TANSACTIONS
3. BUH1_TANSACTIONS

4. BUH_CONSOLIDATE_DATA

5. FINANCE_DATA
6. BUDGET_DATA
6 окт 14, 21:12    [16668251]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить