остановка агента при репликация

X-Cite
Дата: 22.01.2013 18:00:35
1) Покажите Индекс.
2) Данные в таблицу должны вставляться или изменяться как на издателе и подписчике или только на одном из них?
X-Cite
Дата: 22.01.2013 18:02:17
volann34
Я считаю что это ошибка и есть причина остановки, то я не совсем представляю как ее решить, а вот скажите а если не копировать индексы при репликации, а создать из вручную потом после репликации, это поможет?

Не поможет, потому что потом при создании индекса вручную он ругнется на тоже самое.
volann34
Дата: 23.01.2013 09:21:10
1. сценарий индекса
CREATE UNIQUE NONCLUSTERED INDEX [IDX_CSPEVENT_UNIQUEEVENT] ON [dbo].[CSPEVENT]
(
[EVENT_DT] ASC,
[EVENT_TYPE] ASC,
[ASSET_RID] ASC,
[EVENT_SEQ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [qwertyy]
GO
Отрывок сценарий таблицы:
CREATE TABLE [dbo].[CSPEVENT](
[EVENT_ID] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[EVENT_DT] [datetime] NOT NULL,
[ASSET_RID] [int] NOT NULL,
[EVENT_SEQ] [int] NOT NULL,
[EVENT_TYPE] [char](4) NOT NULL,

2. Да данные вставляются как на издателе так и на подписчике
invm
Дата: 23.01.2013 10:16:10
Ну и как, по вашему, при таком индексе, диапазоны identity помогут избавится от дубликатов?
Вы, для начала, должны решить, что делать с данными, нарушающими уникальность.

А удаление этого индекса -- "страусиная" политика. Тем более, что это сторонняя разработка.
volann34
Дата: 23.01.2013 11:02:16
А если в индекс вставить столбец с идентификаторов?
invm
Дата: 23.01.2013 11:36:55
volann34
А если в индекс вставить столбец с идентификаторов?
Это будет равнозначно удалению индекса.
X-Cite
Дата: 23.01.2013 11:51:36
volann34
1. сценарий индекса
CREATE UNIQUE NONCLUSTERED INDEX [IDX_CSPEVENT_UNIQUEEVENT] ON [dbo].[CSPEVENT]
(
[EVENT_DT] ASC,
[EVENT_TYPE] ASC,
[ASSET_RID] ASC,
[EVENT_SEQ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [qwertyy]
GO
Отрывок сценарий таблицы:
CREATE TABLE [dbo].[CSPEVENT](
[EVENT_ID] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[EVENT_DT] [datetime] NOT NULL,
[ASSET_RID] [int] NOT NULL,
[EVENT_SEQ] [int] NOT NULL,
[EVENT_TYPE] [char](4) NOT NULL,

2. Да данные вставляются как на издателе так и на подписчике

У вас на издателе и подписчике оказались одинаковые данные с разными идентификаторами соответствующие индексу, требующему уникальность. Возможно между срабатыванием репликации и на издателе и на подписчике ввели данные попадающие под индекс.
В данный момент необходимо на одном из серверов удалить или исправить запись вручную. В дальнейшем выставить частоту срабатывания репликации, чтобы уменьшить возможность одновременного ввода данных попадающих под ограничение индекса.
Например раз в 3-5 минут.
X-Cite
Дата: 23.01.2013 11:54:18
Судя по монитору репликации. У вас срабатывает 1 раз в два часа. И длится 15 минут. (Для меня 15 минут это очень много).
В вашем случае 3-5 минут не подойдет. тогда выставить хотя бы в 20 минут.
также можно выяснить причину, что побудило пользователей на двух серверах ввести данные попадающие под индекс.
volann34
Дата: 23.01.2013 12:02:17
Данные вводят не пользователи а приложение! Приложение прикреплено несколько агентов, находящихся на разных серверах, они и кидают данные в таблицу, один агент может находится только на одном сервере, поэтому он не может сыпать данные туда и туда! А агенты сами уникальны
volann34
Дата: 23.01.2013 12:05:51
А у меня вопросик, раз дублируется строчка, если я в параметрах индекса включу параметр "Пропускать повторяющиеся значения". Субд же не будет добавлять ее? и от этого не пострадают последующееся строчки