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

Откуда:
Сообщений: 217
Ребят, проблема - повисла транзакция.

Все возможные способы снять ее без перезагрузки sql сервиса не привили ни к чему.

Проблемный скрипт стартовал как job, но перезагрузка агента, так-же не позволяет его убить.

Остается две возможности:



- перевести базу на которую данный процесс ссылается в single режим и попробовать его убить.

- Перезагрузить сервис MSDTC, поскольку транзакция была с LinkedServer

Только сервер боевой и возник вопрос, кроме нарушения репликации это еще к чему-то существенному приведет?

Третья возможность перезагрузка sql - пока не рассматривается.
9 апр 14, 19:00    [15858011]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
незнаю
Guest
Если ввод-вывод по транзакции отсутствует и в DTC информации по транзакции нет, то только рестарт экземпляра. В DTC проверить легко, через component service. Ну или еще можно транзакции поискать со статусом -2. Это бага такая, транзакция вроде живая и ждет ответа внешнего компонента. Но послать ей коммит или роллбек никак. Майкрософт это признает как багу, но почему-то не исправляет. И да, сингл мод вам не поможет.
9 апр 14, 21:34    [15858499]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
tsdos
Member

Откуда:
Сообщений: 217
Спасибо незнаю,
Перезагрузка в single исходя из этого(картинка):

DTC, а где его смотреть в component service? У меня там только LocalDTC, где все по нулям, полагаю это не то.

Собственно и вопрос поднял из за, повлечет ли что либо нехорошее перезагрузка на сервере этого самого DTC сервак исключительно под SQL.

Статус транзакции:
PID 55: transaction rollback in progress. Estimated rollback completion: 0%. Estimated time remaining: 0 seconds.

Еще нашел на каком-то блоге рекомендацию. Что за зверь такой DAC, слабо понимаю и о том, что есть он в SQL2008r2 не ведаю, но буду разбираться:

KILLING THE PROCESS USING THE Dedicated Administrator's Connection (DAC).

You need to have the DAC enabled / activated before your can think of using this option.

To know more about how to connect using DAC and how to check if the DAC is enabled, Please check the post on DAC ;-
http://sqlskillport.blogspot.in/2012/03/how-to-connect-to-dedicated.html

So, if we have the DAC enabled and if you are able to connect to the DAC session, Please go ahead and run the appropriate queries to determine the spids associated with the command 'KILLED/ROLLBACK' and kill them. This could resolve the issue.

If the above said scenarios or options didn't work for you, please don't think anything else, go ahead and have the SQL Service restarted to release these sessions.

Hope this helps]
10 апр 14, 10:21    [15859985]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
tsdos
Member

Откуда:
Сообщений: 217
Вместо картинки (34 это ID базы)
OBJECT 34 72595547
0
IX
LOCK
GRANT
1
33554432
55
0
0
TRANSACTION
10 апр 14, 10:24    [15860010]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
tsdos
Member

Откуда:
Сообщений: 217
DAC не помог((.
10 апр 14, 11:14    [15860347]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
tsdos
Member

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

В итоге официальные рекомендации от microsoft

- Не перезагружать MSDTC, поскольку это может привести к раз синхронизации и проблемам с другими Linkserver.

- Перезагрузить сервис.

- Если нет важных блокировок, то ждать естественной смерти сервера.

Проблема достаточно распространена.
10 апр 14, 13:13    [15861267]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
незнаю
Guest
Приветствую.
Не смог сразу ответить. Все правильно Estimated rollback completion: 0%. Estimated time remaining: 0 seconds. Основной показатель что транзакция ничего не делает. Счетчики чтения - записи могут иметь какие-то значения, но они не меняются. Это значит, что транзакция висит и никогда не откатится. Рестартовать DTC можно, но при этом желательно что-бы не было распределенных транзакций. Ничего не поломаете, кроме как получите откат новых транзакций. И да, DTC рестартовать не надо. Ваша транзакция в части DTC давно разрешилась. В component service смотрите Local DTC далее transaction list. Там отображаются существующие DTC транзакции. В интернете по Вашей проблеме информации не найдете, все только на личном опыте. Рестартуйте экземпляр. Если есть premier support запросите их. У меня это рядовая ситуация, особенно когда оракловые сервера падают(тестовые) :) или сетка сбойнет. На проме в основном из-за сетки.
10 апр 14, 21:03    [15864965]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
tsdos
Member

Откуда:
Сообщений: 217
незнаю,

Уже связывался с preimer support. В общем решили ничего не трогать, пока сервер планово не перезагрузим, либо сам не упадет (было уже из за openquery).

А так, Вы правы были недавно были какие то проблемы с оракловыми серверами. С сеткой мало вероятно запрос был из агента, а все сервера - виртуалки, в одной стойке, хотя я эту часть инфраструктуры слабо себе представляю - недавно работаю, да и занимаются обслуживанием виртуалок и железа - другие люди.

А за помощь, огромное спасибо!

Если у Вас есть большой опыт работы в c linkserver серверами, может дадите совет, по проблеме с которой я недавно столкнулся:

Настраиваю в тестовой среде DCOM, для AllowInProcess. При настройке, когда я ставлю свои
данные и пароль (домен\vova) во вкладке Idenfity - все
работает, если ставлю - запускать с правами запустившего пользователя
- не работает, не смотря на то, что я, это я -домен\vova .

На продуктиве стоит, то, что сервис запускается именно с правами
запустившего пользователя и все работает.

Есть предположение, что это связано, с тем, что на тестовом сервере у
меня стоит SQL 2012, а на продуктиве 2008r2
11 апр 14, 09:45    [15866125]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
незнаю
Guest
:) не надо AllowInProcess, на том же некрософте есть статьи, что приводит к краху процесса. Поищите. Там вся хитрость в привилегиях. Собственно как все работает, если пользователь сиквельный то запрос в линке выполняется в окружении mssql server. Т.е. если сиквел запущен от бесправного пользователя, то ничего не сделаете. Если локальный админ, то тут сиквел имеет нужные привилегии. Соответственно если пользователь доменный, то придется прослеживать где прав не хватает, т.к здесь запрос сквозь линк получает окружение доменного пользователя. Теперь про наших баранов - AllowInProcess сиквел запускает внешний процесс в окружении командного обработчика sql server. Если это драйвер некрософта, то может и проканает. Если для связи с oracle используется оракловый клиент, и оракловый драйвер, то бывает не проканывает. Процесс валится. Периодически, не всегда, но бизнес нервничает. Вот вроде все. Вообщем копай где прав не хватает. Надеюсь помог.
11 апр 14, 22:52    [15870835]     Ответить | Цитировать Сообщить модератору
 Re: что повлечет за собой перезагрузка MSDTC  [new]
tsdos
Member

Откуда:
Сообщений: 217
незнаю,

Спасибо.
14 апр 14, 16:36    [15880441]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить