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

Откуда:
Сообщений: 22
Здравствуйте!

Есть два MSSQL 2008 R2 сервера, залинкованнные друг с другом (linked servers, sql server native client).
На обоих выполняются инструкции вида считать каких-то 100 записей из таблицы 1 локального сервера и добавить их в таблицу удаленного сервера, т.е. примерно следующее:
insert into link_serv.db.dbo.table(code, name, etc)
select top 100 code, name, etc
from local_table
where some_conditions
Вопрос: будет ли в этом случае использоваться служба MSDTC.
И просьба кинуть ссылками по распределенным транзакциям (distributive transactions).
Заранее спасибо!
3 апр 13, 15:24    [14131639]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
Crimean
Member

Откуда:
Сообщений: 13147
> будет ли в этом случае использоваться служба MSDTC.

будет. обход есть для 2008 R2 - уход на insert exec sp_executesql + "remote proc transaction promotion" выключить
3 апр 13, 15:42    [14131797]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
_serg_987
Member

Откуда:
Сообщений: 22
Crimean
> будет ли в этом случае использоваться служба MSDTC.

будет. обход есть для 2008 R2 - уход на insert exec sp_executesql + "remote proc transaction promotion" выключить


Задача как раз именно уйти от этой службы.
Подскажите еще, чем черевато, какие возможные грабли у этого обхода?
3 апр 13, 16:09    [14131952]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
Crimean
Member

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

грабля одна - "insert exec can't be nested" (ц) MSDN
остальное - только плюсы
3 апр 13, 17:23    [14132291]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
_serg_987
Задача как раз именно уйти от этой службы.


Уйдите от линкованных серверов и распределенных транзакций.
3 апр 13, 17:30    [14132317]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
Crimean
Member

Откуда:
Сообщений: 13147
pkarklin
Уйдите от линкованных серверов и распределенных транзакций.


+1 к мнению, но это +1 сервис в сопровождение, который все будет делать
не всегда это приемлемо
а переход от "прямой" работы с линкованными на RPC, обычно, достаточен для хорошего контроля работы в целом
3 апр 13, 17:34    [14132330]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
_serg_987
Member

Откуда:
Сообщений: 22
Crimean
pkarklin
Уйдите от линкованных серверов и распределенных транзакций.


+1 к мнению, но это +1 сервис в сопровождение, который все будет делать


Точно в 10. Именно об это ломаем копья.
Либо linked service, что, иногда (согласно ответу выше) распределенная транзакция. А это MSDTC и много-много тем на соответствующих форумах, мол не работает. Конечно, возможно, не всегда прямые руки, но и дыма без огняне бывет.
С другой стороны самописные сервисы, в нашем случае это .net, что тоже черевато не всегда прямым администрировнием у Заказчика.
4 апр 13, 13:15    [14135433]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
_serg_987,

На Service Broker можно еще посмотреть.
4 апр 13, 13:17    [14135443]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
_serg_987
Member

Откуда:
Сообщений: 22
_serg_987
linked service

имел ввиду linked servers )
4 апр 13, 13:30    [14135518]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
Crimean
Member

Откуда:
Сообщений: 13147
invm
_serg_987,

На Service Broker можно еще посмотреть.


очень часто "шило на мыло", однако
4 апр 13, 14:01    [14135702]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
_serg_987
Member

Откуда:
Сообщений: 22
Коллеги, хочу попросить прокомментироват следующие схемы взаимодействия:
1. Linked Servers:
_______ _______
| | | |
| DB1 | <====> | DB2 |
|_______| |_______|

2. 1 сервис
_______ _______
| | | |
| DB1 | <====> srv <==> | DB2 |
|_______| |_______|

3. 2 сервиса:
_______ _______
| | | |
| DB1 |<srv1><====><srv2>| DB2 |
|_______| |_______|

п.1 непосредственное взаимодействие БД<->БД.
п.2 используется один сервис, который читает/пишет из/во всех БД.
п.3 два симметричных сервиса для обмена сообщениями.

Задача взаимодействия двух территориально удаленных (разные части города) серверов.
Примерно десяток справочников, которые нужно синхронизировать. Оба участника равноправны (изменения и добавление возможны там и там, удалений - нет).
Большую часть можно передавать асинхронно, но для одного-двух требуется синхронный перенос.
5 апр 13, 09:27    [14138634]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Crimean
invm
_serg_987,

На Service Broker можно еще посмотреть.


очень часто "шило на мыло", однако
С точки зрения сопровождения? Возможно...

_serg_987
Примерно десяток справочников, которые нужно синхронизировать. Оба участника равноправны (изменения и добавление возможны там и там, удалений - нет).
Большую часть можно передавать асинхронно, но для одного-двух требуется синхронный перенос.
Вопросы логической целостности и конфликтов изменений не рассматриваются вообще?
Всегда гарантированно будет только два участника?
5 апр 13, 10:04    [14138728]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
_serg_987
Member

Откуда:
Сообщений: 22
invm
Вопросы логической целостности и конфликтов изменений не рассматриваются вообще?
Всегда гарантированно будет только два участника?


Большая часть сравочников достаточно независимы - поэтому асинхронно консистентность в конечном итоге.
Два справочника связаны плюс требование бизнес-логики полное соответствие на любой срез времени - поэтому синхронно.
Разрешение конфликтов - конечно есть, при желании могу указать детали.
Да, только два участника
5 апр 13, 10:10    [14138741]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
_serg_987
Большая часть сравочников достаточно независимы - поэтому асинхронно консистентность в конечном итоге.
Два справочника связаны плюс требование бизнес-логики полное соответствие на любой срез времени - поэтому синхронно.
Разрешение конфликтов - конечно есть, при желании могу указать детали.
Тогда как вы будете гарантировать консистентность, не используя транзакционные механизмы?
5 апр 13, 10:21    [14138782]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
_serg_987
Member

Откуда:
Сообщений: 22
invm
Тогда как вы будете гарантировать консистентность, не используя транзакционные механизмы?

Почему не используя? Я про это не писал).
Двухфазный коммит.
5 апр 13, 10:31    [14138826]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
_serg_987
Почему не используя? Я про это не писал).
Двухфазный коммит.
Тогда, имхо, единственный сервис проще в реализации.
5 апр 13, 10:42    [14138886]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
_serg_987
Member

Откуда:
Сообщений: 22
_serg_987
Два справочника связаны плюс требование бизнес-логики полное соответствие на любой срез времени - поэтому синхронно.

Неточно выразился. Полное соответствие данных между серверами на любой момент времени для этих двух справочников.
5 апр 13, 11:16    [14139112]     Ответить | Цитировать Сообщить модератору
 Re: Распределенная транзакция, MSDTC  [new]
Crimean
Member

Откуда:
Сообщений: 13147
_serg_987
Полное соответствие данных между серверами на любой момент времени для этих двух справочников.


а что, минута расхождения туда / сюда играет рояль?
если да - только распределенная транзакция
если нет - обычный мерж, стандартный или самописный
5 апр 13, 11:48    [14139315]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить