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

Откуда:
Сообщений: 137
В продолжение к теме https://www.sql.ru/forum/1212486/problema-s-bazoy-distribution

После восстановления работы бд distribution и запуска репликаций две репликации из всего числа не поднялись, при этом d мониторе репликаций можно увидеть следующую ошибку:

автор
The subscription(s) have been marked inactive and must be reinitialized. NoSync subscriptions will need to be dropped and recreated. (Источник: MSSQLServer, номер ошибки: 21074)


Попробовал на одной публикации удалить подписку, а после это по-новой создать. Удалилось без проблем, а вот при попытке создания новой подписки для уже имеющейся публикации выдает следующую ошибку:


автор
Job 'name_job' started successfully.
Warning: The distribution agent job has been implicitly created and will run under the SQL Server Agent Service Account.
Сообщение 1205, уровень 13, состояние 56, процедура sp_MSLockMatchID, строка 10
Transaction (Process ID 394) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.


Подписку инициализировал следующим скриптом (запускал на стороне распространителя):
автор
use [PublisherDB]
exec sp_addsubscription @publication = N'PublicationName', @subscriber = N'SubscriberServer', @destination_db = N'SubscriberDB', @subscription_type = N'Push', @sync_type = N'automatic', @article = N'all', @update_mode = N'read only', @subscriber_type = 0
exec sp_addpushsubscription_agent @publication = N'PublicationName', @subscriber = N'SubscriberServer', @subscriber_db = N'SubscriberDB', @job_login = null, @job_password = null, @subscriber_security_mode = 1, @frequency_type = 64, @frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, @frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, @active_end_time_of_day = 235959, @active_start_date = 20160504, @active_end_date = 99991231, @enabled_for_syncmgr = N'False', @dts_package_location = N'Distributor'
GO


Подскажите, с чем это может быть связано и как это можно исправить?
4 май 16, 12:42    [19133016]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock при создании подписки  [new]
nk13
Member

Откуда:
Сообщений: 137
Создал по-новой публикации. Причину ошибки к сожалению выявить не смог.
4 май 16, 13:45    [19133404]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock при создании подписки  [new]
o-o
Guest
select SWITCHOFFSET(xed.value('@timestamp', 'datetimeoffset'), '+01:00') as Creation_Date,
       xed.query('.') AS Extend_Event
from
(
       select CAST([target_data] AS XML) AS Target_Data
       from sys.dm_xe_session_targets AS xt
       join sys.dm_xe_sessions AS xs
		   on xs.address = xt.event_session_address
       where xs.name = N'system_health'
       and xt.target_name = N'ring_buffer'
) as XML_Data
cross apply Target_Data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData(xed)
order by Creation_Date desc

вот так можно выгрести последние дедлоки,
только инфо там фу по сравнению с еррорлогом.
вы не пишете графы в еррорлог?
но примерно понять можно и так
4 май 16, 17:03    [19134609]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock при создании подписки  [new]
nk13
Member

Откуда:
Сообщений: 137
o-o
select SWITCHOFFSET(xed.value('@timestamp', 'datetimeoffset'), '+01:00') as Creation_Date,
       xed.query('.') AS Extend_Event
from
(
       select CAST([target_data] AS XML) AS Target_Data
       from sys.dm_xe_session_targets AS xt
       join sys.dm_xe_sessions AS xs
		   on xs.address = xt.event_session_address
       where xs.name = N'system_health'
       and xt.target_name = N'ring_buffer'
) as XML_Data
cross apply Target_Data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData(xed)
order by Creation_Date desc

вот так можно выгрести последние дедлоки,
только инфо там фу по сравнению с еррорлогом.
вы не пишете графы в еррорлог?
но примерно понять можно и так


Спасибо, возьму на вооружение!
5 май 16, 07:10    [19136449]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock при создании подписки  [new]
o-o
Guest
ой!
сутки спустя там вряд ли вчерашнее осталось.
удобно графы в еррорлог писать,
флаги 1204, 1222 в startup parameters
5 май 16, 08:58    [19136575]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить