|
|
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Доброго дня всем! У меня такой вопрос. Реплицирую BLOB (600 КБ). Иногда наступает момент, когда фтп перестает отвечать. Приходится рестартовать dbremote. BLOB_THRESHOLD у меня стандартный 256 Кб. По документации идет следующее: BOLAny value longer than the BLOB_THRESHOLD option is replicated as a blob. That is, it is broken into pieces and replicated in chunks, before being reconstituted using a SQL variable and concatenating the pieces at the recipient site. Значит ли это, что при повторном запуске dbremote начинает передавать данные с того момента, где его остановили? Мне кажется что должен, поскольку противоположная сторона кушает уже отосланные "кусочки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 14:19 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Нет, все-таки кажется он каждый раз тянет заново, если связь оборвалась :( Что же делать в случае, когда нужно передать несколько мегабайт :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 14:52 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Файлами батенька файлами синхронизироваться.А файлы пердавать по ftp с докачкой, почтой, курьером, ftn сетью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 17:43 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
chadФайлами батенька файлами синхронизироваться.А файлы пердавать по ftp с докачкой, почтой, курьером, ftn сетью Зря, батенька. Я вот сам сейчас задумываюсь над созданием отдельной БД с документами-файлами в дополнение к основной системе. И идея ее репликации средствами ASA мне почему-то нравится заметно больше, чем возня с разными файловыми транспортами. -- http://talk.ru/forum/talk.ru.accounting.development ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 18:17 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Я через BLOB рассылаю всем пользователям обновленный ехе :). Все происходит автоматически При работе, если версия прописанная в одном из полей не соответствует текущей версии ехе, то предлагается перезапустить прогу; в результате перезапуска старый ехе перетирается новым из базы. Обычно репликационные сообщения имеют размер 2-3 КБ (если использовать значения по умолчанию). При пересылки BLOB они увеличиваются значительно: до 25-30 Кб. Надо будет еще раз понаблюдать, при перезапуске dbremote посередине отсылки BLOB, сначала ли начинается отсылка или все-таки с какой-то контрольной точки. Если предположить, что все плохо, то каким образом можно реплицировать большие BLOB? использовать mapi, smtp? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 22:07 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Репликация идет по check-point'ам, которые в логе помечаются, когда все изменения в базе commit и все грязные страницы очищены.... Вот например сейчас мы знаем, что у нас отправлено все вплоть до чекпоинта А. Начинаем формировать сообщение от этого чекпоинта до следующего ближайшего чекпоинта. Сообщение пишется на фтп в файл с именем ".RemoteUserId" Если все прошло успешно и все данные вплоть до ближайшего чекпоинта ушли - этот файл будет переименнован в "RemoteUserId.N" Где N - очередной номер сообщения. Если связь была оборвана посередине передачи сообщения - оно будет послано заново, от чекпоинта A. Это общее правило. А вот теперь мы подходим к очень большим сообщениям: Если два чекпоинта находятся очень далеко друг от друга, либо между ними находится BLOB, это ведет к тому, что одно сообщение в которое по идее должны попасть все изменения превысит максимально разрешенный размер. Значит dbremote будет резать это сообщение на несколько файлов. Которые все будут пересланы как отдельные сообщения, но с пометкой что мол это "сообщение является частью одного длинного". В логе dbremote это будет видно упоминается что посылается сообщение "N-AAAAAA-BBBBBBB-XX" здесь AAAA - стартовый чекпоинт, BBBB - конечный чекпоинт, XX - номер сегмента в сообщении. (N - номер вторичной посылки). Предположим что был обрыв связи во время посылки сообещения с XX=10. При следующем старте dbremote он должен будет увидеть что последний подтвержденный отправленый checkpoint по прежнему AAAAAA и по идее, должен заново сформировать все сегменты сообщения "AAAAAA-BBBBBBB" и отправить их заново (с увеличеным N, но насчет последнего не уверен). Получатель должен увидеть все сегменты одного длинного сообщения и попытаться наложить их. Если получены не все сегменты - он переспросит у получателя о повторной пересылке начиная с AAAAAA. Вот тогда N точно будет увеличен.... вот.... надеюсь я никого не потерял по пути? :) В общем, такова теория. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 19:15 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Спасибо, стало понятней. White Owl, не проясните теперь такой момент работы dbremote через ftp: Если одно из сообщений было пропущено, а в папке лежит довольно большое число следующих за ним, то dbremote не перепошлет сообщение missed, до тех пор пока не проверит всю эту кучу. Особенно напряг с этим, если базы не реплицировались сутки и на ftp скапливаются сотни сообщений. Что бы вы могли посоветовать в этом случае. Проблема в качестве связи: пока все сообщения не будут просмотрены, не будет сформирован miss, но по мере просмотра бывает так, что связь опять пропадает. Приходится помогать ручками: удалять все сообщения, идующие за пропущенным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 21:51 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
У меня таких проблем никогда не было. Просто в нашей фирме репликация идет раз в сутки и в основном по направлению филалы->главный офис. А консолидированная база и ftp-сервер находятся на расстоянии пары метров, в одной локальной сети :) А в филиалы уходит максимум одно-два сообщения в сутки. Поэтому я не очень хорошо представляю масштаб ваших проблем. Ну раз вопрос возникает, то наверное проблемы есть :) Можно сделать так: создаем на локальном диске полную копию ФТПшной структуры каталогов. И при большом объеме входящих сообщений делаем ручное перемещение файлов с ФТП в эти локальные каталоги. Тогда получение большого количества сообщений будет идти немножко веселее. Есть правда несколько сложностей с этим: 1) Если в нашей базе зарегестрированы FTP-юзера и нету ни одного FILE-юзера - dbremote вообще не будет проверять локальные каталоги. Это можно вылечить создав хотя бы одного remote юзера с репликацией через файлы. Этого фиктивного юзера можно никуда не подписывать или подписать на что-нибудь, но не стартовать подписку. 2) Если remote юзер зарегестрирован как FTP юзер, dbremote будет принимать сообщения от него через любой входящий протокол - FTP/FILE/etc. Но неважно откуда прийдет сообщение, ответ этому юзеру будет послан через FTP всегда. Думаю что таким образом можно слегка облегчить нагрузку на сеть, но только на базах которые должны принимать большое количество сообщений. И делать копирование с FTP на локальный хард-драйв делать тоже должен достаточно опытный человек. Я еще могу представить такую схему на консолидированной базе, но на удаленных базах это уже не очень реально. В первую очередь из-за отсутствия там опытных администраторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 22:53 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Немного сложная схема, на мой взгляд. Я думал про такой вариант: написать небольшое приложение, работающее на фтп-машине, которое периодически проверяет число скопившихся сообщений. При количестве больше N оно стирает их. Или проверять дату самого старого сообщения, если разница между текущим и им больше заданного интервала, то также стирать. Все-таки dbremote недоработан с т.з. ключей, отвечающих за количество таймаутов, попыток достучаться, и т.д., поэтому приходится снабжать его дополнительными самописными решениями, странно что разработчики до сих пор этого не сделали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 11:14 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Ну я бы сказал что ВОТ ЭТО УЖЕ сложная схема :) Может проще будет сократить частоту сеансов репликации, чтобы не скапливалось такое большое количество сообщений? Пусть они (сообщения) будут толще, но их будет меньше. Проблема то как я понимаю именно в количестве сообщений? Подуймайте, а действительно ли вам надо пересылать данные так часто? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 17:54 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Проблема в том, что введенные данные сливаются в один "веб-портал", в который постоянно входят клиенты. Клиенту также отсылается отчет по электронной почте. Если делать репликацию редко, то будут вопросы: как же так у меня тут 300, а у вас 200 (еще пока) :). Кроме того, офисы и клиенты в разных часовых поясах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 20:25 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Кстати, в одном местном банке была такая "крышка". В качестве репликации использовался MS Exchange. Так вот по каким-то техническим причинам репликация была прервана на срок точно не помню, но что-то около месяца. Exchange просто был не в состоянии переварить то количество сообщений, которое набежало за время простоя :) и накрылся, "а чем накрылся вам всем хорошо известно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 20:29 |
|
||
|
Репликация BLOB
|
|||
|---|---|---|---|
|
#18+
Рыжий КотПроблема в том, что введенные данные сливаются в один "веб-портал", в который постоянно входят клиенты. Клиенту также отсылается отчет по электронной почте. Если делать репликацию редко, то будут вопросы: как же так у меня тут 300, а у вас 200 (еще пока) :). Кроме того, офисы и клиенты в разных часовых поясах... У меня примерно так же было... А сейчас... При нужде печатается отчет построеный на основе select Time_Received from SYS.SYSREMOTEUSER. А всем пользователям выдано утверждение: "Цифры в консолидированой базе даются по состоянию на вчерашний вечер. Если вы видите более новые данные по каком-то филиалу - это неожиданный бонус, но не более того." И все. Вот если какой-то филиал отстал более чем на два дня - тогда начинаем тревогу поднимать. Некоторые сидят на диалапе, так что задержки вполне легальны. С технической точки зрения, я стараюсь делать сеансы репликации не реже чем раз в час. Но бухгалтерия знает: обновления идут раз в сутки и не чирикать! Поначалу тоже весело было - бухгалтер подключется через VNC к филиальскому компьютеру, исправляет там платежи какие-то. А потом бежит к большому шефу: "Я только что исправила там цифры, а офисные отчеты не изменились! Давайте накажем админа, он цифры обратно поменял!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 21:45 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32761685&tid=2014118]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
154ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 274ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...