|
v7: Как решить проблемы с синхронизацией распределенных баз 1С (УРИБ)? | ☑ | ||
---|---|---|---|---|
0
topbanana
17.09.12
✎
16:27
|
Есть 1С 7.7, одна центральная база и 2 периферийных. Периодически возникают проблемы с синхронизацией между ними — например 2 базы видят какой-то документ, а в третьей его нет. Либо документ есть, а движения в регистрах не произошли.
Такое решалось перепроведением документов и восстановлением последовательности. Хотя в теории 1С должна контролировать целостность и т.п. Базы у нас синхронизируются каждые 5-10 минут, объем передаваемых данных небольшой. Сейчас вот новая ошибка — разные базы видят разные остатки в регистре Деньги по разным кассам. А это уже, в зависимости от ошибки, можно принять за недостачу у кассира. Вопрос вот в чем: как сделать так, чтобы все было хорошо и все три базы были идентичны? Если это не реально, то как хотя бы оперативно отслеживать проблемы? |
|||
1
vde69
17.09.12
✎
16:30
|
1. обмен точно типовой и полный? никаких доп ДЛЛ нет?
2. что такое коллизии слышал? |
|||
2
Cthulhu
17.09.12
✎
16:31
|
Если миграция объектов настроена корректно, и синхронизация делается как надо (ц-п-ц-п за цикл) - то ничего такого не "возникает".
урбд - самая безглючная из компонент... если. конечно, правильно с ней работать. |
|||
3
Скользящий
17.09.12
✎
16:37
|
скорее всего коллизии. УРБД надежнейшая вещь, если разумеется учитывать возможность коллизий и грамотно разграничивать права доступа.
|
|||
4
topbanana
17.09.12
✎
16:48
|
Обмен типовой, стандартной компонентой. Дополнительно добавлена только v7plus.dll. Про колизии слышали, но не похоже на них.
Ситуация такая: есть 3 магазина, у каждого магазина свой пользователь "кассир", у которого отдельный журнал РасходныеРозничныеXX и, соответственно, отдельный документ РасходнаяРозничнаяXX. Доступ к этим документам есть только у кассиров (и только к документам своего магазина) и у меня. Проблем нашел 4 штуки за 3 года. 3 проблемы такого плана - периферийная база создала документ на 10 грн, а в центральной по нему стоит движение 20 грн, хотя есть открыть документ, там будет указана Сумма 10 грн. И одна проблема - документ в периферийной базе есть, а в центральной его нет. Документы удалил и провел их копии. Проблема с разными остатками по кассе решилась. Вопрос почему это происходит и как этого избежать остается. |
|||
5
ЗомбиТ1С
17.09.12
✎
16:48
|
Размеры баз не приблизились к гигу? Обмен начинает глючить самым первым.
|
|||
6
topbanana
17.09.12
✎
16:50
|
Как считать объем базы? С индексами у меня 1.9 гиг, сами ДБФ на 1.5 гига
|
|||
7
ЗомбиТ1С
17.09.12
✎
16:52
|
В 1С каждая ДБФ-ка с родными дровами не должна превышать 1 Гиг, фактически еще меньше. Кури "проблему 1Гбайт"
|
|||
8
topbanana
17.09.12
✎
16:53
|
Тогда мне еще рано, самая большая dbf - 381mb
|
|||
9
Cthulhu
17.09.12
✎
17:11
|
(4): это как?.. периферийки 2 - а магазина 3???
|
|||
10
Cthulhu
17.09.12
✎
17:15
|
возможеные причины "потери" докуменнтов - восстановление базы из архива. по логам обмена выходит что все документы куда надо дошли, и с тех пор не попадали в обмен (не меняясь).
|
|||
11
akaBrr
17.09.12
✎
17:15
|
Если базы ДБФ, то возможны проблемы с индексами, отсюда следуют проблемы с данными в базах.
|
|||
12
Cthulhu
17.09.12
✎
17:16
|
(10) - грубое нарушение регламента использования урбд; лечение - перезапись всех объектов в базах-источниках с полным обменом.
|
|||
13
topbanana
17.09.12
✎
17:20
|
(9): это я имел в виду 2 периферийных + 1 центральная база.
(10): что за восстановление базы из архива? Базы синхронизируются каждые 5 минут через дропбокс стандартным способом. (11): Избежать проблем с индексами как-то можно? (12): что вы имеете в виду? |
|||
14
akaBrr
17.09.12
✎
17:21
|
(13) увы, только перейдя на SQL
|
|||
15
Mikeware
17.09.12
✎
17:24
|
Читай лог, ищи коллизии.
|
|||
16
Lexusss
17.09.12
✎
17:31
|
Не слушай студентов! Коллизии не вызывают расхождение данных в переферийных базах. Правило простое - кто первый оказался в центре - того и тапки.
Указанная симптоматика говорит о ручных игрищах с регистрацией обменов или повреждением табличек/итогов. |
|||
17
Cthulhu
17.09.12
✎
17:33
|
(16): или все нафиг, центр главнее всех.
|
|||
18
Lexusss
17.09.12
✎
17:35
|
(17) Центр в центре по определению быстрее всех :)
|
|||
19
Cthulhu
17.09.12
✎
17:37
|
(18): "центр в центре" кроме того если будет иметь корректировки по объекту, созданному в периферийке, то все остальные изменения, приехавшие в центр - идут лесом вне зависимости от того, "чьи тапки" - вот об чом я.
|
|||
20
1Снег
17.09.12
✎
17:38
|
(0) Отказаться от УРБД, 1 база, остальные по RDP
|
|||
21
akaBrr
17.09.12
✎
17:40
|
(20) круто, чо
|
|||
22
Lexusss
17.09.12
✎
17:56
|
(19) Ага. И эти же корректировки уйдут в ПБ, где так же побьют все изменения сделанные на ПБ. Все снова будет засинхронизировано.
|
|||
23
topbanana
17.09.12
✎
18:02
|
(16): я вот тоже на счет колизий сомневаюсь. А что значит "ручные игрища с итогами"? Повреждения таблиц? Каждый вечер принудительно переиндексация идет по всем базам. А тестирование и исправление делаю очень редко.
|
|||
24
Mikeware
17.09.12
✎
18:04
|
(23) "сбой итогов" - довольно обыденная вещь и без "игрищ".
|
|||
25
topbanana
17.09.12
✎
18:07
|
(23): Способы лечения/обнаружения есть?
|
|||
26
Mikeware
17.09.12
✎
18:12
|
Для сиквела - валом. Равно как и оперативного исправления.
а т.к. файловые базенки - мелкие, то для них отдельно что-то придумывать - обломно |
|||
27
topbanana
17.09.12
✎
18:18
|
Мне в голову только одно решение пришло. Раз в день запускается обработка, которая для каждой локальной базы считает суммарный итог по регистрам и записывает это в спец.документ "колизии".
А у администратора 1С при входе будет проверка на идентичность итогов во всех документах за определенную дату. У меня так сейчас регистр "взаиморасчеты" проверяется. Надо, видимо, и остальные регистры добавить. |
|||
28
Mikeware
17.09.12
✎
18:20
|
(27) лучше напиши контроль итогов.
|
|||
29
alex74
17.09.12
✎
18:20
|
судя по всему проблемы не в урбд а в самих базах. Лечится переводом на SQL но будет снижение производительности
|
|||
30
topbanana
17.09.12
✎
18:21
|
(28): что вы имеете в виду?
|
|||
31
Mikeware
17.09.12
✎
18:23
|
(30) контроль правильности итогов регистров.
|
|||
32
topbanana
17.09.12
✎
19:30
|
(31): и как это делается в двух словах?
|
|||
33
DGorgoN
17.09.12
✎
20:21
|
(0) Вопрос - а в переферийках много народу?
|
|||
34
topbanana
17.09.12
✎
20:39
|
(33): в одной пара человек сидит, от нее проблем и нету. А во второй до 11 человек.
|
|||
35
DGorgoN
17.09.12
✎
20:49
|
(34) А может проще УРИБ заменить доступом по РДП? 11 человек это прибл. 2-5 мб/сек интернета. 2 человека - им даже 3Ж хватит если он будет стабильным (512-1 мб/сек).
|
|||
36
DGorgoN
17.09.12
✎
20:49
|
+(35) Как вариант vpn + rdp
|
|||
37
DGorgoN
17.09.12
✎
20:50
|
Вот вам и будут нынче модные облака )
|
|||
38
topbanana
17.09.12
✎
21:13
|
(35): это если вы не торопитесь, а если у вас очередь клиентов, а у провайдера проблема на линии, или на центральной базе отключили свет?
|
|||
39
DGorgoN
17.09.12
✎
21:15
|
(38) У нас просто эти белогривые лошадки есть. Но канает, согласен если есть нормальное соединение. Но может нормальный интернет уже дополз до вас?
|
|||
40
topbanana
17.09.12
✎
21:26
|
(39): нормальный интернет давно есть, повторюсь, не хочется увеличивать риски. Потому что если можно работать локально, зачем добавлять еще риск отказа у провайдера и у РЭС?
|
|||
41
Mikeware
18.09.12
✎
07:19
|
(35) предлагать магазину работать через РДП - изврат.
(32) взять остатки за предыдущий период, прибавить обороты - и результат сравнить с остатками на текущий период. совпали - замечательно. не совпали - значит, ашипка. |
|||
42
dk
18.09.12
✎
07:44
|
последовательность восстанавливаете? Где восстанавливаете?
какие настройки миграции последовательностей? |
|||
43
Токарь
18.09.12
✎
08:27
|
(0) Для DBF 7.7 Ежедневное ТиИ со всеми галками в режиме "только тест" снимает проблему неверной арифметики. Скрипт в Планировщик или на Рабочий стол ярлык от него.
|
|||
44
vde69
18.09.12
✎
08:56
|
пути исправления
1. приведение индексов в порядок: вставить выгонялку пользователей и переиндексаци в случае кривого выхода любого перца (готовой не видел, но написать не проблемма) вставить в код проверку использования ОС с разной кодировкой (и запрет входа) 2. приведение итогов в порядок блокировка всех баз полный перерасчет итогов в центре обмен полный перерасчет итогов в перефирийках обмен установка единой для всех баз границы запрета редактирования контрольный бекап всех баз разблокирование всех баз 3. коллизии устанавливаем запрет редактирования обьектов по признаку "где создался" (документ создался в центре - перефирийки не имеют право править) запрет редактирования объекта пока он есть в таблицах к обмену (типовые грабли поменяли рекв=1, выгрузили, поменяли рекв=2 выгрузили, загрузили файл с рекв=1 а второй файл потеряли, получили подтверждение что обьект получен) для уменьшения вероятности потери файлов http://infostart.ru/public/16687/ создание ОЛЕ обработки сравнение итогов между рабочей базой и контрольной на дату запрета редактирования |
|||
45
Прохожий
18.09.12
✎
09:00
|
(0) Нужно сделать два двухсторонних обмена подряд и всё синхронизируется. Начинай с центральной базы:
Центр-Периферия-Центр-Периферия. Разница из-за того, чт опри загрузке на периферии не ждут окончания загрузки .а "зависшую" 1С рубят. Со временем вообще таблицы убьют. |
|||
46
Прохожий
18.09.12
✎
09:01
|
(42) Это пока не надо..
|
|||
47
Прохожий
18.09.12
✎
09:01
|
(44) И это пока не надо..
|
|||
48
Mikeware
18.09.12
✎
09:12
|
(44) 3. не придет подтверждение второго пакета, объект будет отправлен следующим пакетом.
|
|||
49
vde69
18.09.12
✎
09:47
|
(48) ты не прав...
удаление из таблицы регистрации не связано с номером пакета, по этому данный сабж критичен для УРБД, а вот в МОД-е данной проблеммы вроде нет... |
|||
50
Mikeware
18.09.12
✎
09:54
|
(49) Как раз связано. Из таблицы регистрации при подтверждении получения пакета удалятся записи с непустым dwnldid значением не меньше подтверждаемого.
при перезаписи объекта при регистрайии ид обмена в таблице регистрации очищается. |
|||
51
vde69
18.09.12
✎
10:06
|
(50) в данном случае ты не вник, номер пакета - да, а я говорю о файле обмена
на пальцах дано: рекв = 1, текПакет=10 центр: делаем рекв = 2 делаем выгрузку, файл содержит рекв = 2, текПакет=11 перефирийка: делаем загрузку текПакет=11, рекв = 2 выгружаем подтверждение текПакет=11 этот файл где-то "задержался".... центр: делаем рекв = 3 ждем, и не дождавшись подтверждения пакета 11 заново делаем выгрузку делаем загрузку текПакет=11, рекв = 3 этот файл потерялся на совсем и не дойдет до перефирийки и вдруг приходит тот самый "задержавшийся файл" который содержит подтверждение текПакет=11 результат Центр: рекв = 3, текПакет=11 Перефирийка: рекв = 2, текПакет=11 |
|||
52
Mikeware
18.09.12
✎
10:12
|
(51) ты ошибаешься. При повторной выгрузке в ПБ уйдет пакет с №12.
а при изменении в ЦБ реквизита с 2 на 3 - ид пакета очистится. И уйдет объект в обмен со следующим пакетом. поэтому прием пакета с №11 никак не отменит отправку объекта со следующим пакетом. |
|||
53
vde69
18.09.12
✎
10:26
|
(52) ты хочешь сказать что если я 534 раза изменю обьект (в течении 1 минуты), то в регистрации будет указано что его нужно выгрузить в текущий+534 номере пакете :)
версионности в 7.7 нет, а вот в 8.х там есть поле версии обьекта, там такой проблеммы нет :) |
|||
54
Mikeware
18.09.12
✎
10:29
|
(53)1. я говорю, что при изменении объекта ид выгрузки в таблице апдейтсов очищается.
а заполняется он при отправке. поэтому при изменении после отправки он не попадет в подтвержденные. 2. Да? а поле VerStamp - этчо? |
|||
55
vde69
18.09.12
✎
10:39
|
>>>при изменении объекта ид выгрузки в таблице апдейтсов очищается. а заполняется он при отправке
убедил :) |
|||
56
Mikeware
18.09.12
✎
10:43
|
(55) "я давно играю"© :-)
просто с использованием этих механизмов у меня сделана универсальная настраваемая даже пользователями миграция. Поэтому и знаю этот механизм достаточно хорошо |
|||
57
akaBrr
18.09.12
✎
10:46
|
(56) посмотреть бы
|
|||
58
Mikeware
18.09.12
✎
11:07
|
(57) что именно?
там довольно много |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |