Microinvest Форум Форуми Microinvest Форум
Microinvest Форум
 
 Въпроси/ОтговориВъпроси/Отговори   ТърсенеТърсене   ПотребителиПотребители   Потребителски групиПотребителски групи   Регистрирайте сеРегистрирайте се 
 ПрофилПрофил   Влезте, за да видите съобщенията сиВлезте, за да видите съобщенията си   ВходВход 

Ред на изпращане на операциите при репликация

 
Създайте нова тема   Напишете отговор    Microinvest Форум Форуми -> Склад Pro
Предишната тема :: Следващата тема  
Автор Съобщение
andrewa



Регистриран на: 01 Юли 2008
Мнения: 418
Местожителство: Пловдив

МнениеПуснато на: Вто Сеп 18, 2018 21:00    Заглавие: Ред на изпращане на операциите при репликация Отговорете с цитат

За месец време на два пъти се получи конфликт при възстановяване на репликация master-master след прекъсване на захранването за около половин час. Установих какво води до проблема:
1. На сървър А за обект №1 се създава продажба, която се репликира успешно на сървър Б докато има връзка А-Б.
2. Прекъсва връзката между сървъри А и Б.
3. На сървър А за същия обект №1 "редактират" продажбата за да добавят още една позиция. Това правят като я трият и я създават отново със същия номер, но с няколко записа в повече - за да не става номерацията на "швейцарско сирене".
4. Възстановява се връзката между сървъри А и Б, прехвърлят се записите направени на сървър А и се получава конфликт с редактираната продажба - на сървър Б е налична Продажба с такъв номер.

При експорт на операциите на сървър А се вижда че редактираната продажба липсва на очакваното място по хронологичен ред на въвеждане, тя е записана по-късно по хронологичен ред в момента на редактриране.
При експорт на операциите на сървър Б се вижда че въпросната продажба си стои на очакваното място по хронологичен ред в момента на създаване и в експорта липсват добавените при редакцията на продажбата редове.

Обяснявам си го с това, че по някаква причина от сървър А до сървър Б не достига навреме информция че тази продажба е затрита, а започва да се подава информация за нова продажба със стария номер - и конфликт!

Ясно ми е че не правим редакция на продажба по правилата, но защо се получава така че редактирана продажба се репликира преди да се репликира затриването на тази продажба? Има ли начин тази последователност да се оправи така че да не се получава конфликт заради редакция на продажба по този начин?
Или се заблуждавам?
_________________
Материали, машини и технологии за рекламата - четвърт век точност и коректност!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Виктор Павлов
Microinvest
Microinvest


Регистриран на: 12 Авг 2002
Мнения: 18708

МнениеПуснато на: Вто Сеп 25, 2018 15:02    Заглавие: Отговорете с цитат

MSSQL или MySQL?

И в двата случая не трябва да има проблем, защото сървърите изпращат заявките в SQL вид и заявката DELETE ще се изпълни и на единия и на другия сървър.
_________________
Клиентите на Microinvest по света: http://www.microinside.ru
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
azrod



Регистриран на: 17 Май 2008
Мнения: 1584
Местожителство: Пловдив

МнениеПуснато на: Вто Сеп 25, 2018 18:52    Заглавие: Отговорете с цитат

По-скоро проблем ще има ако се направи редакция и на двата сървъра. Тогава за този номер acct ще има две различни UUID-та и вероятно ще останат и двете при тръгване на репликацията
_________________
CompAssist BG - дистрибутор на Microinvest за Пловдив
Стари версии на програмите изпращам само на мои клиенти!
d.chukalov@compassistbg.com
0877/399177
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
andrewa



Регистриран на: 01 Юли 2008
Мнения: 418
Местожителство: Пловдив

МнениеПуснато на: Вто Сеп 25, 2018 19:42    Заглавие: Отговорете с цитат

Сървърите са MySQL (MariaDB).

Не е правена редакция на втория сървър, на който спира токът и на който се получава конфликт при старт. Там продажбицата е записана по хронологичния ред на операциите и е в първоначалния си вид. Тази продажба е правена на друг обект и служителите на този обект нямат права да пипат.

Логично е всички операции, включително и DELETE, да се изпълнят и на двата сървъра. Но на временно изключения сървър тази операция очевидно не е изпълнена. Чудя се защо. Бих го отдал на някакво странно състезание на сигнали в рядка ситуация, но 2 пъти в един месец е твърде често за да повярвам.

Въпросът ми е дали има някакъв начин операция DELETE да се репликира към втория сървър след операция създаване на продажбата. При създаване на документ с вече съществуващ номер ще настъпи конфликт и релпикацията ще спре преди да се получи команда DELETE.
И такова разбъркване в реда на операциите при репликиране ми изглежда фантастика, но не зная за какво да се хвана.

на
_________________
Материали, машини и технологии за рекламата - четвърт век точност и коректност!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
azrod



Регистриран на: 17 Май 2008
Мнения: 1584
Местожителство: Пловдив

МнениеПуснато на: Вто Сеп 25, 2018 20:41    Заглавие: Отговорете с цитат

Нямам идея на MySQL как върви репликацията, но на MS SQL се тригерира по едни големи уникални ID-та.
_________________
CompAssist BG - дистрибутор на Microinvest за Пловдив
Стари версии на програмите изпращам само на мои клиенти!
d.chukalov@compassistbg.com
0877/399177
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Покажи мнения от преди:   
Създайте нова тема   Напишете отговор    Microinvest Форум Форуми -> Склад Pro All times are EET (Източна Европа)
Страница 1 от 1

 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети


Powered by phpBB © 2001, 2005 phpBB Group
Translation by: Boby Dimitrov