26.11.2004, 15:32 | #1 |
Участник
|
Распределенные базы ????
Уважаемые знатоки Axaptы, подскажите какие существуют инструменты для создания распределенной базы в Axaptе? Что-нибудь вроде выделения для каждого филиала своего диапазона ReclD и репликации баз средствами MS SQL или Oracle. Или на практике все пользуются одной базой с тонким клиентом через AOS или Web?
|
|
26.11.2004, 15:40 | #2 |
Модератор
|
Не существует.
Более того, MBS очень плохо относится к подобным идеям. Одно из решений - Axapta Retail от корус'a. или ручками, как уже делало несколько человек. Разруливать надо не только ReсId, но и номерные серии - обратите внимание. С Уважением, Георгий |
|
26.11.2004, 15:43 | #3 |
Moderator
|
Поищите - на форуме обсуждалось и не раз. Реализация возможна, но на практике это выходит дороже, чем приобретение выделенного канала - в одной из тем я подробно описывал свой опыт в данной области.
|
|
26.11.2004, 15:58 | #4 |
Участник
|
Спасибо за ответы.
Про номерные серии - не забыл (забыл написать ). Интересовал не сама возможность и технические сложности, связанные с реализацией, а именно общепринятый подход (как это называется Best Practices, что ли). С уважением, Алексей. |
|
26.11.2004, 17:35 | #5 |
NavAx
|
Best Practices в данном случае - не делать распределенные системы
Axapta Retail (как у нас в компании) может работать в таком режиме, но вырвать это дело и использовать как отдельное решение... ну не знаю, за этим в корус консалтинг... но сомневаюсь. так что остается только 2варианта: 1) не делать так (правильный ответ) 2) программировать. много.
__________________
И все они создания природы... |
|
28.11.2004, 22:39 | #6 |
NavAx
|
Делали мы такое дело, причем несколькими способами -
1. Репликация всей базы, с разделением RecID и т.д. реализорвано было под Oracle и много программировали именно под Oracle. Стандартными средствами это решить не удалось... сегодня MS SQL достиг уже большого прогресса в плане стандартных средств репликации, но не уверен что удасться настроить правильную репликацию таблицы например InventSum... 2. Рекпликация отдельных журналов и таблиц на уровне самой Аксапты - это на мой взгляд, вообще гиблая была идея - в первом случае хоть системность есть некая а сдесь вообще - как кривая выведет... Так что если подробность нужны - пишите на мыло. Дам координаты компании которая это успешно реализовала. |
|
28.11.2004, 23:59 | #7 |
Участник
|
Цитата:
Изначально опубликовано skof
Так что если подробность нужны - пишите на мыло. Дам координаты компании которая это успешно реализовала. ...У нас есть такие приборы, но мы вам о них не расскажем. Уважаемые, прекращайте подобный гиблый маркетинг. Если есть о чем сказать - скажите прямо и открыто. Назовите имена героев, чтобы вся страна знала и гордилась. Если нечего сказать, то и мутить воду нечего... |
|
29.11.2004, 12:39 | #8 |
Участник
|
Я участововал в создании распределенного решения на другой системе. Не на SQL. И механизмы репликации самой СУБД никак не задействовались - намеренно. Не думаю, что безумно сложно реализовать её и на Аксапте, по крайней мере, в рамках ограниченных модулей. Общая схема такая:
- для базах выделяются раздельные диапазоны для кодов не RecId, а именно кодов. Поскольку средства репликации СУБД не используются, RecId не имеют значения - записи при репликации создаются с новыми RecId. Диапазоны выделяются тем, что каждая удаленная база имеет свой прядковый номер, "знает" его и вставляет его префиксом для каждой номерной серии - вообще для каждой. - каждая удаленная база формирует очередь из созданных, модифицированных и удаленных записей. На основе этой очереди в момент сеанса репликации формируется пакет данных для передачи. Очередь не очищается, пока не придут подтверждения из другой базы об удачной репликации. - пакет приходит в другую базу, записи встраиваются в неё (удаленны удаляются, измененные изменяются). - Важным является тот момент, что таблицы БД заранее разделены на 2 типа: 1 - передаваемые при репликации и 2 - не передаваемые, а пересчитываемые в момент приема пакета (в Аксапте это была бы, например, InventSum). - Для принятых записей формируется пакет подтверждений. Он отправляется обратно и удаляет очередь в первой базе - разумеется, только по тем записям, прием которых был подтвержден. Если пакет записей или пакет подтверждений был утерян, то конечно процесс повторяется - таким образом обеспечивается целостность. Разумется, там есть еще нюансы. Но в целом ничего безумно сложного. |
|
29.11.2004, 16:45 | #9 |
Участник
|
Спасибо, Zabr
|
|
29.11.2004, 16:48 | #10 |
Участник
|
такой маленький нюанс как сопостовление, где все связки по RecId (и мест таких к сожалению полно)
если использовать стандартный импорт в Ах, то для ЕДТ RefRecId он еще связи сохранит, но в целом по системе такой метод репликации дает очень и очень частичное решение это проще отчеты в ЦСВ файлах по мылу слать и автоматам закачивать куда надо и разностить... но опять же, даже это и то нужно делать самим. |
|
29.11.2004, 17:19 | #11 |
Участник
|
Цитата:
Изначально опубликовано BOAL
такой маленький нюанс как сопостовление, где все связки по RecId (и мест таких к сожалению полно) |
|
29.11.2004, 17:51 | #12 |
Участник
|
Цитата:
Изначально опубликовано Zabr
Вот это один из тех моментов, которые толкают меня на сомнения относительно профессионализма разработчиков Аксапты. Хранение связей по RecId - это крайне безграмотный подход. Не забывайте, что RecID пришел из Конкорда, а туда от предшественников. RecID пришел из собственного формата базы данных. Тогда, когда принималось решение о RecID - это было очень прогрессивное решение. Сейчас да - оно кажется странным. Но приходится тащить совместимость. Далее, даже на заре, разработчики не думали о репликации. Наоборот, они всеми своими фибрами думали о ЕДИНОЙ БАЗЕ, о едином хранилище. И тогда это было на пике моды и прогресса. В общем, не судите. Не судимы будете |
|
29.11.2004, 21:40 | #13 |
NavAx
|
Цитата:
Если есть о чем сказать - скажите прямо и открыто. Назовите имена героев, чтобы вся страна знала и гордилась. Если нечего сказать, то и мутить воду нечего...
а подробности такие - 1. RecID-ы разделяли 2. В Oracle использовался только механизм соединения баз - репликация писалась на тригерах 3. про таблицы подобные InventSum - работало точно так как писал выше уважаемый Zabr, впрочем и другие вещи - очередь измененных записей и т.д. все очень похоже, но вставка новых, удаление старых и изменение измененных делалось не средствали Аксапты а средствами Oracle. Аксаптой кстати даже интереснее - соблюдается многоплатформенность... А насчет "хорошей морской практики" и т.д. скажу что ничего крамольного в репликации не вижу - если красиво реализовано и работает - то почему бы и нет? |
|
29.11.2004, 22:17 | #14 |
Участник
|
Спасибо, skof
|
|
01.12.2004, 10:56 | #15 |
Участник
|
Цитата:
Изначально опубликовано mazzy
Тогда, когда принималось решение о RecID - это было очень прогрессивное решение. Базовый принцип стандарта SQL заключается в том, что строка идентифицируется только значимыми полями. В этом случае RecId это спасательный круг для тех кто не умеет делать правильные структуры данных. Как то работает и ладно. А когда данные переваливают за 3 лимона записей, клиенты говорят - какая хорошая система Axapta, только работает чтото медленно. И ни какой апгрейд сервера тут не спасет. Внимание! при правильных структурах данных у вас проблемы начнуться толко со 30 лимонов записей!!! А при очень правильных со 100. Только не надо путать правильные и максимально нормализованные. Впрочем, может я ошибся, может тогда еще небыло стандарта SQL - Mazzy уточни года плиз. Извините, что ушел в сторону от темы. |
|
01.12.2004, 12:39 | #16 |
Участник
|
Цитата:
Изначально опубликовано Волчара
Что же передового в решении по RecId? Причем гарантированная уникальность в пределах 32 бит. Тогда 4 млрд казалось огромным числом Цитата:
Изначально опубликовано Волчара
Внимание! при правильных структурах данных у вас проблемы начнуться толко со 30 лимонов записей!!! А при очень правильных со 100. Только не надо путать правильные и максимально нормализованные. Цитата:
Изначально опубликовано Волчара
Впрочем, может я ошибся, может тогда еще небыло стандарта SQL - Mazzy уточни года плиз. Но стандартной СУБД не было. Переход на SQL был сделан в предыдущей версии - в конкорде. А поддержка только двух стандартных СУБД - только в Аксапте. И то изначально предполагалось, что Аксапта будет поддерживать много разных СУБД (если кто-то помнит partnerguide дамгаардовских времен и разделы для разных СУБД). На двух СУБД остановились гораздо позже. Причем остановились маркетологи, а не технари. Про историю можно почтитать здесь http://axapta.mazzy.ru/articles/names/ Даты внизу статьи. |
|
01.12.2004, 13:01 | #17 |
Участник
|
Причем связи по RecID есть почти во всех известных крупных системах (и в 1С - тоже :-)). Это было очень прогрессивное решение в сравнении со связью по пользовательскому коду. Теперь изменение пользовательского ключа (№ документа, Item ID) не влияло на реляционные связи, их не требовалось обновлять. Те, кто думал о репликации, добавлял поле префикса площадки, те, кто не думал ....
|
|
01.12.2004, 13:16 | #18 |
Участник
|
Те, кто думал о репликации, добавлял:
а) номер площадки, где запись создана б) внутрисистемный уникальный код записи (не пользовательский, но и не RecId) Позволю также не согласиться с утверждением о гарантированной уникальности RecId. Потому что здесь есть ограничения. А раз они есть, то и о полной гарантированности речь не идет. Это во-первых уникальность только в пределах одной базы, и во-вторых, уникальность только в случае если не проиводится перегрузка данных через текстовый дамп (например, в целях дефрагментации или при хранении бэкапов в виде дампов для экономии места). В этих случаях Recid'ы меняются. |
|
01.12.2004, 13:29 | #19 |
Участник
|
Цитата:
Изначально опубликовано Сисой
Причем связи по RecID есть почти во всех известных крупных системах Это вопрос: естественные ключи против искусственных. Эта религиозная война не скоро окончится http://www.akzhan.midi.ru/devcorner/...ByTentser.html См. также обсуждение этой темы на sql.ru |
|
01.12.2004, 13:30 | #20 |
Участник
|
Цитата:
Изначально опубликовано Zabr
Те, кто думал о репликации, добавлял: Было время, когда репликация воспринималась как зло. А модным было - единая база, всемирный интернет, на кончиках пальцев... |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Принципы построения базы данных | 11 | |||
Утилиты для работы с журналом базы данных | 0 | |||
Ищу готовые базы Axapta | 25 | |||
Axapta ComConnector и распределенные транзакции | 0 | |||
Уменьшение базы данных Axapta | 13 |
|