Масштабирование веб-приложения с базой данных SQL Server 2008
У меня есть база данных, которая имеет 90% таблиц только для чтения. 10% таблиц имеют доступные для записи данные. Нам нужно масштабировать приложение ASP.NET. Нам нужно добавить больше пользователей, которые не будут писать в базу данных. Мы думаем о добавлении другого сервера и маршрутизации пользователей, которым нужен доступ только для чтения к этому серверу. Есть ли способ реплицировать только некоторые таблицы на другой сервер базы данных. Поскольку 90% данных не меняются, мы не хотим настраивать полную репликацию базы данных. Пожалуйста, порекомендуйте.
2 ответа
Я хотел бы возразить против "мы не хотим настраивать полную репликацию базы данных", поскольку в SQL Server 2012 есть довольно изящная функция: AlwaysOn.
При этом вы можете настроить подчиненные серверы только для чтения (синхронные или асинхронные) и использовать новый посредник соединений для автоматической маршрутизации запросов на чтение к одному или нескольким серверам. Он включает в себя некоторую работу в отношении запросов на подключение (в частности, добавление READ_ONLY в строку подключения, чтобы брокер мог правильно перенаправить).
Это чрезвычайно простой способ масштабирования до 4 серверов SQL (один основной, 3 только для чтения).
По какой причине вы пытаетесь масштабировать приложение? Вы уверены, что приложение нужно масштабировать? Вы полностью уверены, что индексы правильно настроены так, чтобы чтение было максимально быстрым? Вы просто ограничены в памяти? Вы ограничены процессором? Вы ограничены? Обычно увеличение размера одного сервера обходится дешевле, чем лицензии на SQL Server, необходимые для второго сервера.
Предполагая, что ваше приложение полностью настроено...
Если вашим пользователям нужен доступ для чтения к данным, им потребуется доступ на чтение ко всем данным. Если вы на 100% уверены, что им не нужен доступ на чтение ко всем данным, вы можете использовать репликацию SQL Server и фильтры для статей, чтобы вам нужно было только реплицировать некоторые данные.
Если вы собираетесь перейти на SQL Server 2012, вы можете взглянуть на AlwaysOn, но это функция Enterprise Edition, поэтому лицензии будут довольно дорогими.