powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA9: репликация dbRemote
11 сообщений из 11, страница 1 из 1
ASA9: репликация dbRemote
    #33640810
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В репликации dbRemote 2 БД на 9.0.2.3249, через FTP с интервалом 2 минуты.
В базах данные "разъехались", в логах dbRemote нет ни ошибок, ни предупреждений.
Протранслировал логи БД (без триггеров) - выяснилось что в удаленной БД был update (3)
которого нет в центральной!
(1) вставка данных в центральной, это уезжает в удаленную
(2) изменения данных в удаленной, приезжает в цетральную
(3) это приезжает по репликации в удаленную БД, но в центральной БД этого нету!
Как такое может быть? Может я что-то неправильно делаю?
Заранее спасибо.

PS:
dbRemote запускается под DBA
в подписках нет никаких условий

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
это в логе центральной БД
1======================================================================================
--CONNECT-1007-01665446132-Abr-2006-03-27 09:03
--INSERT-1007-01666160011
INSERT INTO MSoft.Invoice(ID,DocNumber1,DocNumber2,RegDate1,RegDate2,
      Contractor1_ID,Contractor2_ID,Consignee_ID,Consigner_ID,Payer_ID,Type_ID,
      Reason_ID,FinType_ID,FinOrder_ID,Manager_ID,Price_Type_ID,TmpInvoice_ID,
      DocStatus,Register,PayDate,WarrantNumber,WarrantFace,Remark,Insert_User,
      Insert_Date,Update_User,Update_Date,FaxInvoice,RRDocNumber,IsExport,
      Status3to2Date)
VALUES (246281,'257050',NULL,'2006-03-27 00:00',NULL,828,1252,1252,460,1252,2,34,NULL,NULL,1,2,246279,
  3,NULL,NULL,NULL,NULL,'ДКЪ б/в74024','Abr','2006-03-27 11:04:33.489','Abr',
  '2006-03-27 11:04:33.489',0,NULL,0,NULL)
--UPDATE-1007-01666161374
UPDATE MSoft.Invoice
   SET DocStatus=2,
       Update_Date='2006-03-27 11:04:49.567',
       Status3to2Date='2006-03-27 11:04:49.567'
 WHERE ID=246281
1======================================================================================

2======================================================================================
--CONNECT-1002-01674596182-DBA-2006-03-28 16:53
--UPDATE-1002-01674596360
UPDATE MSoft.Invoice
   SET DocStatus=3,
       Update_User='zam2',
       Update_Date='2006-03-28 16:50:15.328'
 WHERE ID=246281
--UPDATE-1002-01674596932
UPDATE MSoft.Invoice
   SET DocStatus=1,
       Update_Date='2006-03-28 16:50:36.718'
 WHERE ID=246281
2======================================================================================


это в логе удаленной БД
1======================================================================================
--CONNECT-1047-0112672202-DBA-2006-03-27 11:06
--INSERT-1047-0112686321
INSERT INTO MSoft.Invoice(ID,DocNumber1,DocNumber2,RegDate1,RegDate2,
      Contractor1_ID,Contractor2_ID,Consignee_ID,Consigner_ID,Payer_ID,Type_ID,
      Reason_ID,FinType_ID,FinOrder_ID,Manager_ID,Price_Type_ID,TmpInvoice_ID,
      DocStatus,Register,PayDate,WarrantNumber,WarrantFace,Remark,Insert_User,
      Insert_Date,Update_User,Update_Date,FaxInvoice,RRDocNumber,IsExport,
      Status3to2Date)
VALUES (246281,'257050',NULL,'2006-03-27 00:00',NULL,828,1252,1252,460,1252,2,34,NULL,NULL,1,2,246279,
  3,NULL,NULL,NULL,NULL,'б/в74024','Abr','2006-03-27 11:04:33.489','Abr',
  '2006-03-27 11:04:33.489',0,NULL,0,NULL)
--UPDATE-1047-0112687672
UPDATE MSoft.Invoice
   SET DocStatus=2,
       Update_Date='2006-03-27 11:04:49.567',
       Status3to2Date='2006-03-27 11:04:49.567'
 WHERE ID=246281
1======================================================================================


2======================================================================================
--CONNECT-1050-0120044441-zam2-2006-03-28 16:22
--UPDATE-1050-0120507664
UPDATE MSoft.Invoice
   SET DocStatus=3,
       Update_User='zam2',
       Update_Date='2006-03-28 16:50:15.328'
 WHERE ID=246281
UPDATE MSoft.Invoice
   SET DocStatus=1,
       Update_Date='2006-03-28 16:50:36.718'
 WHERE ID=246281
2======================================================================================


3======================================================================================
--CONNECT-1021-0120514780-DBA-2006-03-28 16:54
--UPDATE-1021-0120545003
UPDATE MSoft.Invoice
   SET DocStatus=3,
       Update_Date='2006-03-28 16:50:15.328'
 WHERE ID=246281
3======================================================================================
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #33640882
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Как настроена данная таблица в публикациях в каждой точке?
Поля, условия?
2) Реплицируются ли действия триггеров? Если да, то текст триггеров на эту таблицу надо посмотреть.
3) Если есть триггеры конфликтов в консолидированной базе на этой таблице, то в них тоже не помешает посмотреть.

Просто так Update прийти не может.
А вообще как-то интересно у вас поле DocStatus обновляется везде.
Сначала = 3 и тут же равно 1? Или такая бизнес-логика хитрая?
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #33641023
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Все поля, без условий
2) тригеры не реплицирутся - они одинаковы в обеих БД,
(а что их смотреть, еслиб (3) был сгенерировал в тригере, то он бы в отранслированный лог БД не попал бы)
3) нет таких

А вообще как-то интересно у вас поле DocStatus обновляется везде.
Сначала = 3 и тут же равно 1? Или такая бизнес-логика хитрая?
Это пользователи такие хытрые :)
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #33641048
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверьте тщательно логику триггеров (может даже стоит сделать отдельные две базы через реплику), когда-то у меня тоже такое было, думал, что ASA виновата...
дело в том, что в insert или update уже передаются поля со значениями, которые вы думаете, будут вычислены на месте, а их уже посчитали и отправили...
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #33641083
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. я так понимаю, что в результате
DocStatus в консолидированной равен 1, а в удаленной 3?
А это поле DocStatus
могут править одновременно в разных точках в одном документе?
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #33641101
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рыжий Котпроверьте тщательно логику триггеров (может даже стоит сделать отдельные две базы через реплику), когда-то у меня тоже такое было, думал, что ASA виновата...
дело в том, что в insert или update уже передаются поля со значениями, которые вы думаете, будут вычислены на месте, а их уже посчитали и отправили...
К последнему присоединяюсь.
Передаются именно значения, которые записались в базу после всех возможных вычислений!!! Т.е. на другом конце уже вычислять ничего не надо в триггере, если только Вы в другие таблицы ничего не пишете на основе этих данных.
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #33641203
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про репликацию Before тригеров и проверки "IF CURRENT REMOTE USER IS NULL ..." я в курсе. Так и сделано, но я обязательно это еще раз проверю :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ASA9: репликация dbRemote
    #36312064
Yurk0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASA 9.0.2.3778
SQL Remote

У меня возникла аналогичная проблема((((((((
В удаленной БД был update, который почему-то не передался в консолидированную БД

Система работает несколько месяцев, данные передаются, и подобных проблем не было…

Лог консолидированой БД
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
--BEGIN TRANSACTION-1018-0705466369
BEGIN TRANSACTION
go
--UPDATE-1018-0705466417
UPDATE doc.TEH_ZVED_FACT
   SET USER_MODIFY='teh_pidg',
       DATE_MODIFY='2009-10-16 11:00:46.903',
       TU_R= 14 ,
       PTO_PG= 12 ,
       K_PTO= 45 ,
       VID= 1 ,
       SKZ_ALL= 20 
 WHERE ID= 130000045 
go
--UPDATE-1018-0705466631
UPDATE doc.DOCUMENTS
   SET USER_MODIFY='DBA',
       DATE_MODIFY='2009-10-16 11:09:50.274',
       ID_DOC_STATUS= 2 
 WHERE ID= 130000045 
go
--INSERT-1018-0705466731
INSERT INTO doc.DOC_STATUS_HISTORY(ID,USER_CREATE,USER_MODIFY,DATE_CREATE,
      DATE_MODIFY,STATUS,ID_DOC,ID_NEW_STATUS,ID_OLD_STATUS,"COMMENT",ST_ORDER)
VALUES ( 130000091 ,'teh_pidg','teh_pidg','2009-10-16 11:09:50.384','2009-10-16 11:09:50.384', 1 , 130000045 , 2 , 1 ,NULL, 2 )
go
--UPDATE-1018-0705466793
UPDATE doc.TEH_ZVED_FACT
   SET USER_MODIFY='DBA',
       DATE_MODIFY='2009-10-16 11:09:52.177',
       TU_K=- 86 ,
       GKV_PG= 12 ,
       K_PTO= 145 ,
       SKZ_PR= 18 ,
       INVEST=-. 25 
 WHERE ID= 130000045 
go
--COMMIT-1018-0705467029
COMMIT WORK


Лог удаленной БД
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
--CHECKPOINT-0000-0085966396-2009-10-16 10:54
--BEGIN TRANSACTION-1002-0085966429
BEGIN TRANSACTION
go
--UPDATE-1002-0085966450
UPDATE doc.TEH_ZVED_FACT
   SET USER_MODIFY='teh_pidg',
       DATE_MODIFY='2009-10-16 11:00:46.903',
       TU_R= 14 ,
       PTO_PG= 12 ,
       K_PTO= 45 ,
       VID= 1 ,
       SKZ_ALL= 20 
 WHERE ID= 130000045 
go
--COMMIT-1002-0085966644
COMMIT WORK
go
--BEGIN TRANSACTION-1002-0085966645
BEGIN TRANSACTION
go
--UPDATE-1002-0085966887
UPDATE doc.DOCUMENTS
   SET DATE_MODIFY='2009-10-16 11:09:50.274',
       ID_DOC_STATUS= 2 
 WHERE ID= 130000045 
go
--INSERT-1002-0085967285
INSERT INTO doc.DOC_STATUS_HISTORY(ID,USER_CREATE,USER_MODIFY,DATE_CREATE,
      DATE_MODIFY,STATUS,ID_DOC,ID_NEW_STATUS,ID_OLD_STATUS,"COMMENT",ST_ORDER)
VALUES ( 130000091 ,'teh_pidg','teh_pidg','2009-10-16 11:09:50.384','2009-10-16 11:09:50.384', 1 , 130000045 , 2 , 1 ,NULL, 2 )
go
--COMMIT-1002-0085967367
COMMIT WORK
go
--BEGIN TRANSACTION-1002-0085967368
BEGIN TRANSACTION
go
--UPDATE-1002-0085967369
UPDATE doc.TEH_ZVED_FACT
   SET DATE_MODIFY='2009-10-16 11:09:52.177',
       TU_K=- 86 ,
       GKV_PG= 12 ,
       K_PTO= 145 ,
       SKZ_PR= 18 ,
       INVEST=-. 25 
 WHERE ID= 130000045 
go
--COMMIT-1002-0085967560
COMMIT WORK
go
--CONNECT-1016-0085967561-DBA-2009-10-16 11:09
--BEGIN TRANSACTION-1016-0085967572
BEGIN TRANSACTION
go
--COMMIT-1016-0085967595
COMMIT WORK
go
--ROLLBACK-1016-0085967596
ROLLBACK WORK
go
--ROLLBACK-1002-0085967603
ROLLBACK WORK
go
--CHECKPOINT-0000-0085967610-2009-10-16 11:14
--CONNECT-1031-0085967631-DBA-2009-10-16 11:30
--BEGIN TRANSACTION-1031-0085967642
BEGIN TRANSACTION
go
--UPDATE-1031-0085967688
UPDATE doc.TEH_ZVED_FACT
   SET DATE_MODIFY='2009-10-16 11:00:46.903',
       K_PTO= 45 
 WHERE ID= 130000045 
go
--COMMIT-1031-0085967872
COMMIT WORK
вот последний update и не передался...
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #36313346
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Это не последний update не передался, а еще раз накатился первый (из листинга) update

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
UPDATE doc.TEH_ZVED_FACT
   SET USER_MODIFY='teh_pidg',
       DATE_MODIFY='2009-10-16 11:00:46.903',
       TU_R= 14 ,
       PTO_PG= 12 ,
       K_PTO= 45 ,
       VID= 1 ,
       SKZ_ALL= 20 
 WHERE ID= 130000045 

а т.к. в лог пишется только ИЗМЕНЕНИЯ, то и записалась транзакция как

Код: plaintext
1.
2.
3.
UPDATE doc.TEH_ZVED_FACT
   SET DATE_MODIFY='2009-10-16 11:00:46.903',
       K_PTO= 45 
 WHERE ID= 130000045 

Это баг в ASA, имхо
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #36318576
Yurk0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МарсельПривет.
Это не последний update не передался, а еще раз накатился первый (из листинга) update

хм... а как это так?
какие могут быть причины возникновения такой ситуации?
...
Рейтинг: 0 / 0
ASA9: репликация dbRemote
    #36320008
Марсель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все просто, при каких-то условиях, dbremote ошибочно вставляет в отправку первую транзакцию (?) из присланых удаленной БД (может быть что-то с неправильным расчетом смещения). Можно конечно найти в чем причина, открыть кейс и пусть исправляют. Но по опыту исправления похожей ошибки в Mobilink скажу - лучше забить :).
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA9: репликация dbRemote
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]