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

Откуда:
Сообщений: 263
Всем привет.
Есть 2 сервера ms sql 2008. На одном из них есть база данных DB1 , а на другом DB2 с таблицей table2. На сервере 1 настроен linked server на сервер 2. В table2 из DB2 есть одна запись id=1, data=1. На сервере 1 выполняется следующиая процедура:
BEGIN TRAN
UPDATE DB2....table2 SET data=2 WHERE id=1
UPDATE DB2....table2 SET data=3 WHERE id=1
COMMIT

В промежутке между двумя апдейтами делаем сервер 2 недоступным (шнур выдергиваем или вроде того)
Вопросы:
1) Что будет с транзакцией с точки зрения сервера 2 после того, когда вторая транзакция провалится по таймауту или еще по какой ошибке: транзакция будет считаться завершенной или нет? транзакция бедет откатана или нет?
2) что вернет запрос SELECT data FROM table2 WHERE id=1, будучи запущенный на сервере 2 после всего этого?
Заранее благодарен.
14 окт 11, 13:26    [11440663]     Ответить | Цитировать Сообщить модератору
 Re: вопрос про отказоустойчивость транзакции  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Что "обычная" транзакция, что распределенная обладает всеми четырьмя свойствами из ACID. Разница состоит в том, что во втором случае управлением распределенной транзакцией занимается DTC.
14 окт 11, 13:31    [11440709]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить