Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA9: репликация dbRemote / 11 сообщений из 11, страница 1 из 1
03.04.2006, 12:29
    #33640810
Марсель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
В репликации 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
03.04.2006, 12:51
    #33640882
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
1) Как настроена данная таблица в публикациях в каждой точке?
Поля, условия?
2) Реплицируются ли действия триггеров? Если да, то текст триггеров на эту таблицу надо посмотреть.
3) Если есть триггеры конфликтов в консолидированной базе на этой таблице, то в них тоже не помешает посмотреть.

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

А вообще как-то интересно у вас поле DocStatus обновляется везде.
Сначала = 3 и тут же равно 1? Или такая бизнес-логика хитрая?
Это пользователи такие хытрые :)
...
Рейтинг: 0 / 0
03.04.2006, 13:35
    #33641048
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
проверьте тщательно логику триггеров (может даже стоит сделать отдельные две базы через реплику), когда-то у меня тоже такое было, думал, что ASA виновата...
дело в том, что в insert или update уже передаются поля со значениями, которые вы думаете, будут вычислены на месте, а их уже посчитали и отправили...
...
Рейтинг: 0 / 0
03.04.2006, 13:45
    #33641083
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
Т.е. я так понимаю, что в результате
DocStatus в консолидированной равен 1, а в удаленной 3?
А это поле DocStatus
могут править одновременно в разных точках в одном документе?
...
Рейтинг: 0 / 0
03.04.2006, 13:50
    #33641101
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
Рыжий Котпроверьте тщательно логику триггеров (может даже стоит сделать отдельные две базы через реплику), когда-то у меня тоже такое было, думал, что ASA виновата...
дело в том, что в insert или update уже передаются поля со значениями, которые вы думаете, будут вычислены на месте, а их уже посчитали и отправили...
К последнему присоединяюсь.
Передаются именно значения, которые записались в базу после всех возможных вычислений!!! Т.е. на другом конце уже вычислять ничего не надо в триггере, если только Вы в другие таблицы ничего не пишете на основе этих данных.
...
Рейтинг: 0 / 0
03.04.2006, 14:26
    #33641203
Марсель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
Про репликацию Before тригеров и проверки "IF CURRENT REMOTE USER IS NULL ..." я в курсе. Так и сделано, но я обязательно это еще раз проверю :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
16.11.2009, 11:40
    #36312064
Yurk0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
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
16.11.2009, 18:44
    #36313346
Марсель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
Привет.
Это не последний 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
19.11.2009, 00:28
    #36318576
Yurk0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA9: репликация dbRemote
МарсельПривет.
Это не последний update не передался, а еще раз накатился первый (из листинга) update

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


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