Мы настроили репликацию транзакций базы данных SQL Server 2012 для клиентского веб-приложения .NET, чтобы распределять транзакции SQL и отчеты на разных серверах SQL.
Мы реализовали репликацию транзакций на SQL-Node1, работающем как Master DB Server. Мы настроили репликацию Master DB на SQL-Node2, чтобы вытащить отчеты в наше веб-приложение, которое имеет много транзакций и загрузку данных из записей Excel. около 10 миллионов записей каждый день.
После настройки репликации на двух экземплярах SQL Server 2012 через несколько недель мы столкнулись с некоторыми проблемами производительности и обнаружили, что некоторые ресурсы заблокированы во время загрузки файлов в базу данных, поэтому приложение не может получить доступ к этим таблицам и данным. Также было обнаружено, что сервер работает слишком медленно в дневное время, когда пользователи обращаются к нашему веб-приложению.
Теперь мы стремимся распределить нагрузку на 3 различных узла SQL Server 2012. Если веб-приложение будет получать доступ и обрабатывать данные на SQL-Node1, запросы отчетов получают данные извлечения из SQL-Node2, а SQL-Node3 будет использоваться для загрузки таблицы Excel. данные в базу данных, которая будет реплицирована на все другие узлы SQL.
Текущая установка, все серверы имеют Windows Server 2008 Standard и SQL Server 2012 Enterprise Edition.
Примерный размер базы данных: 15 ГБ / Используемая репликация: роль транзакции / распространителя настроена на узле SQL 1 / роль подписчика настроена на узле SQL 2.
Мы ищем решение для решения вышеуказанных проблем, которое может распределять различные нагрузки (отчеты, загрузка данных, транзакции) и реплицировать данные между всеми узлами SQL.
Какая функция будет хорошо работать для вышеуказанного сценария среди SQL Server 2012 HA, репликации SQL Server или зеркалирования SQL Server?
Будем очень признательны за быстрый ответ ....