Настройка резервного сервера БД в файле ASP.NET web.config - PullRequest
3 голосов
/ 27 октября 2008

В настоящее время у меня есть веб-сайт asp.net, размещенный на двух веб-серверах, которые работают за балансировщиком нагрузки Cisco. Два веб-сервера ссылаются на один сервер базы данных MSSQL.

Поскольку этот сервер баз данных является единственной точкой отказа, я добавляю дополнительный сервер MSSQL для резервного копирования. Я хотел бы настроить файлы web.config для записи всего на оба сервера MSSQL, но только для чтения с «основного» сервера базы данных, если только по какой-то причине он недоступен, и в этот момент будет использоваться резервный сервер MSSQL.

Возможно ли это через настройку файла web.config или это должно быть сделано в коде? Заранее спасибо за любую помощь.

Новая информация: Я просто хотел добавить дополнительную информацию по этой теме после того, как изучал ее в течение последних нескольких дней - у Microsoft TechNet есть хорошее название статьи «Реализация восстановления после сбоя приложения с зеркальным отображением базы данных» (http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/implappfailover.mspx#EMD).

В частности, это относится к функции зеркального отображения базы данных в Microsoft SQL Server 2005 и новому новому ключевому слову строки подключения «Failover Partner», которое позволяет указывать два экземпляра server / db в одной строке подключения.

Статья стоит того, чтобы ее прочитать, если вы заинтересованы в реализации этого типа функций.

Ответы [ 4 ]

3 голосов
/ 27 октября 2008

То, что вы хотите, называется «отработкой отказа», когда при сбое одной базы данных ваши запросы автоматически перенаправляются на другую. Это достигается на уровне базы данных, а не приложения. Существует множество пошаговых инструкций и т. Д. Для настройки отказоустойчивых кластеров: вот один для SQL 2000 , а другой для SQL 2005 . Как правило, после настройки первичная база данных передает все действия вторичной базе данных. Если первичный отказывает, вторичный (почти) обновлен и вступает во владение.

Серверы образуют кластер и выглядят как единое целое - подобно тому, как веб-серверы с балансировкой нагрузки смотрят на внешний мир. Резервная копия контролирует основной сервер, и если основной сервер перестает отвечать на запросы, резервный сервер принимает запросы. Если вы ищете Google, попробуйте добавить ключевые слова «зеркальное отображение базы данных» и «кворум».

0 голосов
/ 31 октября 2008

Хороший ответ от "Рика", но я просто хотел добавить свои 2 цента информации. Обычно для установки с отработкой отказа без большого количества дорогостоящего оборудования я бы настроил его так:

У вас может быть ваш 2 SQL Server, ожидающий запроса, и третья система младшего класса с SQL Server 2005 Express в качестве «мониторинга работоспособности». Это сэкономит вам 10K $ за коробку и одну лицензию на SQL Server. SQL Server Express (как в бесплатной версии) может выполнять мониторинг работоспособности между двумя серверами баз данных без проблем.

Это моя установка:)

0 голосов
/ 28 октября 2008

Я написал запись в блоге, в которой показано, как настроить зеркальное отображение базы данных MSSQL, а также как его использовать с точки зрения управляемого кода: http://www.improve.dk/blog/2008/03/23/sql-server-mirroring-a-practical-approach

0 голосов
/ 27 октября 2008

Это немного сложнее, чем это. Ваша веб-страница пишет в базы данных? Или просто читать?

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

Но то, о чем вы (по сути) говорите, это настройка кластера SQL.

...