Как SQL Server обрабатывает отказоустойчивость сети в середине оператора вставки - PullRequest
0 голосов
/ 16 ноября 2010

Я пишу приложение, которое выполняет SQL-запросы к базе данных в режиме реального времени.

Если я настрою зеркальное отображение SQL Server и настрою FailoverPartner в строке подключения, и если первичная база данных выйдет из строя, будет ли добавляться вторичная защита автоматически, и поэтому мне не нужно повторно открывать соединение или что-либо очищать?

Кроме того, как он обрабатывает ситуации, когда выполняется оператор INSERT и база данных отключается? Поднимает ли секодарь его или он потерян навсегда? Было бы безопаснее делать транзакционные операторы вставки?

1 Ответ

3 голосов
/ 16 ноября 2010

Каждая форма высокой доступности (зеркальное отображение, кластеризация) будет иметь границу транзакции: каждая транзакция в полете в момент отработки отказа будет откатываться. Это не ограничение, это функция . Было бы невозможно написать правильные приложения, если бы это не было правдой.

При возникновении сбоя каждое соединение, использующее базу данных, прерывается. Клиенты должны восстановить новые соединения с новым принципалом, снова прочитать текущее состояние из базы данных и начать применять новые операции в текущем состоянии. Правильно написанные приложения (т. Е. транзакция ) не будут иметь никаких проблем с этим. Только плохо закодированные приложения могут потерять данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...