• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Реплікація бази даних

Автор yastrema, Жовтень 03, 2017, 09:56:11

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

yastrema

Що робити коли при реплікації бази даних викидає помилку?  (DataM.sSyncDo:
Arithmetic overflow or division by zero has occurred.Arithmetic exception, numeric overflow, or string truncation.
String right truncation.)

maxmokry

Ощущение, что пытаетесь влить в поле больше данных, чем оно вмещает...
Вручную размер полей в БД не меняли в той базе, из которой приходит репликация?
[url="http://goo.gl/ciUwjI"]http://goo.gl/ciUwjI[/url] - Синхронизация УС с VirtueMart, [url="http://goo.gl/Uh3GBC"]http://goo.gl/Uh3GBC[/url] - Интернет-магазин на базе укрсклада без импорта/экспорта

syuli

Налаштовую реплікацію, вчора все працювало правильно, а сьогодні зранку при передачі із головного офісу на віддалений видало помилку

DataM.sDo:
Invalid insert or update value(s): object columns are constrained - no 2 table rows can have duplicate column values.
Violation of PRIMARY or UNIQUE KEY constraint "PK_TOVAR_CENA_LOG" on table "TOVAR_CENA_LOG".
Problematic key value is ("NUM" = 143878).

В чому може бути проблема і як її виправити?

maxmokry

Цитата: syuli від Жовтень 04, 2017, 09:45:22
Налаштовую реплікацію, вчора все працювало правильно, а сьогодні зранку при передачі із головного офісу на віддалений видало помилку

DataM.sDo:
Invalid insert or update value(s): object columns are constrained - no 2 table rows can have duplicate column values.
Violation of PRIMARY or UNIQUE KEY constraint "PK_TOVAR_CENA_LOG" on table "TOVAR_CENA_LOG".
Problematic key value is ("NUM" = 143878).

В чому може бути проблема і як її виправити?

Думаю, что такой информацией как журнал изменения цен на товар можно пожертвовать.

- Сделайте бекап БД на подчиненном (куда вливаете репликацию)
- в окне SQL выполните команду: delete from TOVAR_CENA_LOG where NUM=143878

Попробуйте сделать репликацию еще раз. Скорее всего выдаст аналогичную ошибку, но с другим номером записи (так как ругалось: 2 table rows can have duplicate column values). Удалите и ее. После этого процесс репликации скорее всего пройдет нормально.

Если не получится - восстановите БД из бекапа и нужно будет думать дальше.
[url="http://goo.gl/ciUwjI"]http://goo.gl/ciUwjI[/url] - Синхронизация УС с VirtueMart, [url="http://goo.gl/Uh3GBC"]http://goo.gl/Uh3GBC[/url] - Интернет-магазин на базе укрсклада без импорта/экспорта

syuli

В чому може бути причина? на віддаленому офісі нічого не манялось, реплікацію налаштувала вчора і з базою там ніхто не працював, працювали тільки на головному. Сьогодні зранку зайшла передати дані із головного офісу на віддалений і виникла ця помилка

admin

Цитата: yastrema від Жовтень 03, 2017, 09:56:11
Що робити коли при реплікації бази даних викидає помилку?  (DataM.sSyncDo:
Arithmetic overflow or division by zero has occurred.Arithmetic exception, numeric overflow, or string truncation.
String right truncation.)

Цитата: syuli від Жовтень 04, 2017, 09:45:22
Налаштовую реплікацію, вчора все працювало правильно, а сьогодні зранку при передачі із головного офісу на віддалений видало помилку

DataM.sDo:
Invalid insert or update value(s): object columns are constrained - no 2 table rows can have duplicate column values.
Violation of PRIMARY or UNIQUE KEY constraint "PK_TOVAR_CENA_LOG" on table "TOVAR_CENA_LOG".
Problematic key value is ("NUM" = 143878).

В чому може бути проблема і як її виправити?

Пишите на поддержку.
п 1.2. https://www.softbalance.com.ua/forum/index.php/topic,426.0.html

syuli

Ще питання по реплікації. Кожен із віддалених офісів може працювати із своїми документами, що робити, якщо потрібно на віддаленому офісі відредагувати документ, створений на головному? (наприклад, зробили на основному офісі рахунок для клієнта, а потім клієнт прийшов в магазин (він працює через реплікацію як віддалений офіс) і попросив змінити рахунок)

І ще одна ситуація: один із магазинів працює з базою даних напряму через інтернет, але зв'язок нестабільний, думаємо про те, щоб перевести його на роботу через реплікацію, і тут виникає проблема, оскільки тоді він не зможе працювати із своїми документами, створеними до того.

admin

Цитата: syuli від Жовтень 04, 2017, 12:15:02
Ще питання по реплікації. Кожен із віддалених офісів може працювати із своїми документами, що робити, якщо потрібно на віддаленому офісі відредагувати документ, створений на головному? (наприклад, зробили на основному офісі рахунок для клієнта, а потім клієнт прийшов в магазин (він працює через реплікацію як віддалений офіс) і попросив змінити рахунок)

Вообще репликация была задумана для отдельной работы магазина, чтобы каждый из пользователей работал только со своим документом и на своей точке. Например если вы создали документ на главке, передали на удаленку, вы его опять изменили на главке и на удаленке его тоже изменили, передаете данные в главку и что делать? Где главные изменения?
Вот поэтому документ и сливается т.к. нет приоритета и непонятно чьи данные более верные. Если и редактировать документ на другой точке, то надо 100% гарантию что этот документ не редактировали на первой точке.

Цитата: syuli від Жовтень 04, 2017, 12:15:02
І ще одна ситуація: один із магазинів працює з базою даних напряму через інтернет, але зв'язок нестабільний, думаємо про те, щоб перевести його на роботу через реплікацію, і тут виникає проблема, оскільки тоді він не зможе працювати із своїми документами, створеними до того.

Да, не сможет. Можно включить такую опцию (редактирование документов главки), но это принесет куча проблем. Попробуйте RDP, тогда даже если соединение оборвет, то это не скажеться на базе, вы просто прекратите видеть картинку (удаленный рабочий стол), а ваш УкрСклад Клиент останеться подключенный в программу, просто перезайдете и начнете работу с того же самого места.