Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Deadlock Replication  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Всем доброе время суток.

Обычно я понимаю что делать когда есть deadlock,
но тут он вызывается во время работы джоба по репликации и не связа с пользовательскими запросами/процедурами.

Даже не знаю с какой стрроны подойти к задаче и понять "из-за чего".

ERRORLOG
2012-12-29 00:00:18.92 spid23s This instance of SQL Server has been using a process ID of 1396 since 11/15/2012 12:29:30 AM (local) 11/15/2012 5:29:30 AM (UTC). This is an informational message only; no user action is required.
2012-12-29 04:00:04.26 spid49s deadlock-list
2012-12-29 04:00:04.26 spid49s deadlock victim=process230574508
2012-12-29 04:00:04.26 spid49s process-list
2012-12-29 04:00:04.26 spid49s process id=process230574508 taskpriority=0 logused=0 waitresource=KEY: 22:72057594040614912 (93d89bacd30e) waittime=4156 ownerId=1215738152 transactionname=OPEN CURSOR lasttranstarted=2012-12-29T04:00:00.113 XDES=0x1aacb9b30 lockMode=S schedulerid=7 kpid=14532 status=suspended spid=87 sbid=0 ecid=0 priority=0 trancount=0 lastbatchstarted=2012-12-29T04:00:00.083 lastbatchcompleted=2012-12-29T04:00:00.083 clientapp=SQLAgent - TSQL JobStep (Job 0x00AD029DCF13414C904A39CFC512DB97 : Step 1) hostname=DTG957 hostpid=2248 loginname=NT AUTHORITY\NETWORK SERVICE isolationlevel=read committed (2) xactid=1215738152 currentdb=22 lockTimeout=4294967295 clientoption1=538968096 clientoption2=128024
2012-12-29 04:00:04.26 spid49s executionStack
2012-12-29 04:00:04.26 spid49s frame procname=mssqlsystemresource.sys.sp_MSagent_stethoscope line=160 stmtstart=11548 stmtend=11600 sqlhandle=0x0300ff7fcd139937fdfe3a00059f00000100000000000000
2012-12-29 04:00:04.26 spid49s open hC_merge_suspect
2012-12-29 04:00:04.26 spid49s frame procname=mssqlsystemresource.sys.sp_replication_agent_checkup line=35 stmtstart=2078 stmtend=2186 sqlhandle=0x0300ff7ffc5813181c813900059f00000100000000000000
2012-12-29 04:00:04.26 spid49s execute @retcode = @proc @heartbeat_interval
2012-12-29 04:00:04.26 spid49s frame procname=adhoc line=1 sqlhandle=0x010001003a573424107918ca000000000000000000000000
2012-12-29 04:00:04.26 spid49s sys.sp_replication_agent_checkup @heartbeat_interval = 5
2012-12-29 04:00:04.26 spid49s inputbuf
2012-12-29 04:00:04.26 spid49s sys.sp_replication_agent_checkup @heartbeat_interval = 5
2012-12-29 04:00:04.26 spid49s process id=process411dc8 taskpriority=0 logused=428 waitresource=KEY: 22:72057594040877056 (74b87fd4ceac) waittime=4155 ownerId=1215738155 transactionname=DELETE lasttranstarted=2012-12-29T04:00:00.113 XDES=0x82446e80 lockMode=X schedulerid=1 kpid=13088 status=suspended spid=92 sbid=0 ecid=0 priority=0 trancount=2 lastbatchstarted=2012-12-29T04:00:00.083 lastbatchcompleted=2012-12-29T04:00:00.083 clientapp=SQLAgent - TSQL JobStep (Job 0xA66DBB00C00CA04388E3BC7D5CF621AC : Step 1) hostname=DTG957 hostpid=2248 loginname=NT AUTHORITY\NETWORK SERVICE isolationlevel=read committed (2) xactid=1215738155 currentdb=22 lockTimeout=4294967295 clientoption1=673185824 clientoption2=128024
2012-12-29 04:00:04.26 spid49s executionStack
2012-12-29 04:00:04.26 spid49s frame procname=distribution.dbo.sp_MShistory_cleanup line=264 stmtstart=16352 stmtend=16654 sqlhandle=0x0300160004936176b8c10b00439f00000100000000000000
2012-12-29 04:00:04.26 spid49s DELETE FROM dbo.MSmerge_sessions
2012-12-29 04:00:04.26 spid49s WHERE NOT EXISTS (SELECT *
2012-12-29 04:00:04.26 spid49s FROM dbo.MSmerge_agents
2012-12-29 04:00:04.26 spid49s WHERE id = agent_id)
2012-12-29 04:00:04.26 spid49s OPTION(MAXDOP 1)
2012-12-29 04:00:04.26 spid49s frame procname=adhoc line=1 sqlhandle=0x01001600da09ab1e209e359f020000000000000000000000
2012-12-29 04:00:04.26 spid49s EXEC dbo.sp_MShistory_cleanup @history_retention = 48
2012-12-29 04:00:04.26 spid49s inputbuf
2012-12-29 04:00:04.26 spid49s EXEC dbo.sp_MShistory_cleanup @history_retention = 48
2012-12-29 04:00:04.26 spid49s resource-list
2012-12-29 04:00:04.26 spid49s keylock hobtid=72057594040614912 dbid=22 objectname=distribution.dbo.MSmerge_sessions indexname=ucMSmerge_sessions id=lock6bb63cd00 mode=X associatedObjectId=72057594040614912
2012-12-29 04:00:04.26 spid49s owner-list
2012-12-29 04:00:04.26 spid49s owner id=process411dc8 mode=X
2012-12-29 04:00:04.26 spid49s waiter-list
2012-12-29 04:00:04.26 spid49s waiter id=process230574508 mode=S requestType=wait
2012-12-29 04:00:04.26 spid49s keylock hobtid=72057594040877056 dbid=22 objectname=distribution.dbo.MSmerge_sessions indexname=nc4MSmerge_sessions id=lock3734af880 mode=S associatedObjectId=72057594040877056
2012-12-29 04:00:04.26 spid49s owner-list
2012-12-29 04:00:04.26 spid49s owner id=process230574508 mode=S
2012-12-29 04:00:04.26 spid49s waiter-list
2012-12-29 04:00:04.26 spid49s waiter id=process411dc8 mode=X requestType=wait



Ну один запрос конкретный я вижу (Delete), второй скорее всего внутри процедур репликации, но один чёрт я же в него лазить не буду?

С чего начать решать такую проблему?
Может быть я какой-то из важных флагов не включил?
29 дек 12, 15:00    [13705785]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock Replication  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Если что, то deadlock В базе distribution
как-то не логично туда суваться.
29 дек 12, 15:04    [13705797]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock Replication  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
up!

Happy new year :)
2 янв 13, 22:05    [13717321]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock Replication  [new]
Crimean
Member

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

а сменить расписание для заданий? вроде как они тупо дерутся? а так - мерж реплика потенциально дедлочная, да
2 янв 13, 22:15    [13717352]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock Replication  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
подумаю, но возможно прийдётся глубоко лезть в чужу работу.
А тот джоб который вылетает с deadlock-ом вообще хрен разведёшь, потому что запускается он каждый 5ть минут и название ему "Replication agents checkup"
запускает
sys.sp_replication_agent_checkup @heartbeat_interval = 5
2 янв 13, 22:33    [13717422]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock Replication  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Мне приходилось лазить в базе distribution, добавлять индексы к таблицам и править процедуры, чтобы найти причину проблем с репликацией. Правда, после того, как зафиксил баг, вернул всё назад. Так что думаю, стоит рискнуть.
3 янв 13, 10:59    [13718312]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock Replication  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Вот опять "вылезло"
(хорошо хоть не каждый день)

Причём в errorlog есть, а в истории джобов НЕ нашёл и понятия не имею что ему помешало.

Жертва дедлока вроде есть, а ошибки не вылетело.

В какую сторону копать?

К сообщению приложен файл (152_errorLog.txt - 28Kb) cкачать
3 авг 13, 00:27    [14657217]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock Replication  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
У кого-нибудь есть идеи по предыдущему сообщению?
5 авг 13, 16:40    [14665176]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock Replication  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34621
NIIIK
Обычно я понимаю что делать когда есть deadlock,
но тут он вызывается во время работы джоба по репликации и не связа с пользовательскими запросами/процедурами.


Есть стандартное штатное средство борьбы с deadlock в любом случае, при любых обстоятельствах -- повторить твою транзакцию заново.

При репликации все предпосылки для повторения есть (всё транзакционно, всё можно повторить), так что я не понимаю, почему оно вообще это само не делает. Видимо, есть какие-то настройки.
5 авг 13, 19:00    [14666078]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить