Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
Добрый день!
Настроена merge репликация. Есть три подписчика.
Через "монитор репликации" видно что, какие-то данные меняются по таблицам.
Можно посмотреть какие именно данные меняются или будут меняться?
26 июл 12, 11:14    [12918308]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Андрей Антипов
Member

Откуда:
Сообщений: 7
saszay,

У вас в Replication Monitor указанны статьи (они же таблицы), по ним вы видите количество записей, полученных и отправленных с подписчика на издателя и наоборот. Если вам нужны конкретные данные, например какая строка добавлялась/обновлялась/удалялась, то следует смотреть в таблицы MSMerge_genhistory, MSMerge_Contents, MSMErge_tombstone.
22 авг 12, 15:58    [13050260]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
Проблема разрослась: периодически возникают репликации, созданные самим SQL сервером, без участия человека и логики работы приложения.
Как этот процесс можно контролировать? Чтобы он запускался ночью хотя бы, а не в самый разгар рабочего дня?
31 мар 14, 11:22    [15809903]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Glory
Member

Откуда:
Сообщений: 104751
saszay
периодически возникают репликации, созданные самим SQL сервером, без участия человека и логики работы приложения.

Это как ? ИИ возник что ли ?
31 мар 14, 11:24    [15809922]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
invm
Member

Откуда: Москва
Сообщений: 9823
Вам уже говорилось - 14695099. Но вы упорно не желаете искать причину происходящего.
Пока не осознаете простую истину: сиквел по собственной инициативе не меняет данные в таблицах, - проблему не решите.
31 мар 14, 11:45    [15810080]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
Даже не знаю как это описать: периодически (~ 1 раз в неделю) начинают идти UPDATE транзакции на нескольких таблицах, как маленьких и больших. Причём, иногда, UPDATE транзакции идут на таблица, в которые по логике работы идёт только добавление данных. Кол-во транзакций может доходить до 500 000 (может и больше) на одну таблицу. Транзакции могут идти даже с серверов, на которых не идёт работа с данными...
31 мар 14, 11:47    [15810095]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Glory
Member

Откуда:
Сообщений: 104751
saszay
начинают идти UPDATE транзакции на нескольких таблицах

Вы где это мониторите ?
31 мар 14, 11:53    [15810142]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
invm
Вам уже говорилось - 14695099. Но вы упорно не желаете искать причину происходящего.
Пока не осознаете простую истину: сиквел по собственной инициативе не меняет данные в таблицах, - проблему не решите.


"Простая" истина опровергается моим сервером. Где искать я уже не знаю: просмотрел всё что мог: задачи по времени и событиям, логику работы всей программы. Ни где нет UPDATE на 500 000 записей... После прохождения этих транзакций - репликации идут в нормальном режиме: после работы человека над данными...
Периодически запускаю валидацию данных - ошибок не находит, а "паразитные" транзакции всё равно есть.
31 мар 14, 11:57    [15810168]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Glory
Member

Откуда:
Сообщений: 104751
saszay
Ни где нет UPDATE на 500 000 записей...

Если его нигде нет, то где вы его видите то ?
31 мар 14, 11:58    [15810179]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
Glory
saszay
начинают идти UPDATE транзакции на нескольких таблицах

Вы где это мониторите ?


Replication Monitor
31 мар 14, 11:58    [15810180]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Glory
Member

Откуда:
Сообщений: 104751
saszay
Glory
пропущено...

Вы где это мониторите ?


Replication Monitor

И что вы там видите ? Что сервер выполняет "UPDATE на 500 000 записей" ? Т.е. текст команды UPDATE ?
31 мар 14, 11:59    [15810189]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
Glory,

Нет, я вижу что идёт UPDATE на таблицу, и общее кол-во прошедших транзакций.
31 мар 14, 12:02    [15810212]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Glory
Member

Откуда:
Сообщений: 104751
saszay
я вижу что идёт UPDATE на таблицу, и общее кол-во прошедших транзакций.

И поэтому вы решили, что "возникают репликации, созданные самим SQL сервером, без участия человека и логики работы приложения" ?
31 мар 14, 12:09    [15810264]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
invm
Member

Откуда: Москва
Сообщений: 9823
saszay
Где искать я уже не знаю: просмотрел всё что мог: задачи по времени и событиям, логику работы всей программы
Потому что надо не глазами смотреть, а мониторить происходящее.
Если есть update на таблицах, где, по вашей БЛ, возможен только insert, то и ищите источник этих update'ов.
31 мар 14, 12:15    [15810318]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
Glory
saszay
я вижу что идёт UPDATE на таблицу, и общее кол-во прошедших транзакций.

И поэтому вы решили, что "возникают репликации, созданные самим SQL сервером, без участия человека и логики работы приложения" ?


да
31 мар 14, 12:16    [15810330]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
invm
saszay
Где искать я уже не знаю: просмотрел всё что мог: задачи по времени и событиям, логику работы всей программы
Потому что надо не глазами смотреть, а мониторить происходящее.
Если есть update на таблицах, где, по вашей БЛ, возможен только insert, то и ищите источник этих update'ов.


А где ещё искать?
31 мар 14, 12:16    [15810337]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
invm
Member

Откуда: Москва
Сообщений: 9823
saszay
А где ещё искать?
Пишите триггер на update, в котором и журналируете кто, когда и откуда этот самый update делает.
31 мар 14, 12:46    [15810602]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
invm
saszay
А где ещё искать?
Пишите триггер на update, в котором и журналируете кто, когда и откуда этот самый update делает.


А как узнать "откуда"?
31 мар 14, 13:59    [15811173]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Glory
Member

Откуда:
Сообщений: 104751
saszay
А как узнать "откуда"?

Параметры соединения посмотреть не судьба ?
31 мар 14, 14:00    [15811181]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
invm
Member

Откуда: Москва
Сообщений: 9823
saszay
А как узнать "откуда"?
sys.dm_exec_sessions
31 мар 14, 14:23    [15811305]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
invm
saszay
А где ещё искать?
Пишите триггер на update, в котором и журналируете кто, когда и откуда этот самый update делает.

Написал триггер:
CREATE TRIGGER [dbo].[Approvements_Update] on [dbo].[Approvements] 
FOR UPDATE
not for replication
AS
DECLARE @q nvarchar(max)
SET @q = 'select session_id, login_time, [host_name], [program_name], client_interface_name, login_name, nt_user_name, last_request_start_time, [language],
       original_login_name
 from sys.dm_exec_sessions 
 WHERE session_id = ' + CAST(@@SPID As varchar)
 
 EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DefaultSMTP',
                             @recipients   = 'xxx@yyy.zz',
                             @subject      = 'UPDATE [Approvements]',
                             @query        = @q,
                             @body_format  = 'HTML',                             
                             @query_result_header = 1,
                             @query_result_separator = '#',
                             @exclude_query_output = 1


"Левые" транзакции пошли - письма нет.
15 апр 14, 13:31    [15884756]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Glory
Member

Откуда:
Сообщений: 104751
saszay
письма нет.

Разве это значит, что триггер не сработал ?
15 апр 14, 13:52    [15884879]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 464
Glory
saszay
письма нет.

Разве это значит, что триггер не сработал ?


Тогда что это значит? И как тогда ловить данные? Записывать в таблицу?
15 апр 14, 14:18    [15885081]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
Glory
Member

Откуда:
Сообщений: 104751
saszay
Тогда что это значит?

Это значит только то, что "письма нет". Без всяких следствий.
15 апр 14, 14:26    [15885154]     Ответить | Цитировать Сообщить модератору
 Re: Данные в merge replication  [new]
dvim
Member

Откуда: Санкт Петербург
Сообщений: 709
saszay,
Написал триггер:

Уж если написали, то лучше пишите в какую нибудь новую таблицу лог, а не по почте шлите.
+ DDL триггер на отключение триггеров хорошо бы...
15 апр 14, 14:37    [15885228]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить