Зачем нужен microsoft sql server

зачем нужен microsoft sql server

О чем эта статья?

Данная статья посвящена созданию и администрированию приложений масштаба предприятия. Имеется в виду создание систем, в которых интегрированы в единое целое несколько серверов одного приложения, создание так называемых кластеров. Мы будем анализировать средства масштабирования Microsoft SQL Server 2000, на май 2001г по тестам TPC-C это самый быстрый кластер в мире. Мы будем рассматривать как с помощью кластерного механизма масштабируется реальное приложение, в данном случае Web-сервер проектов MS Project Central Server (описание назначения Project Central см. здесь ). Это Web-приложение предназначенное для проектного управления и учета реальных затрат рабочего времени. В нашем анализе рассмотрим реальные достоинства и недостатки кластерных решений на базе MS SQL Server 2000.

Пользователю: Зачем нужен кластер? Пример кластерного решения для Project Central Server

Под кластерами разные производители понимают несколько разные подходы, дадим "усредненное" определение кластера.

Кластер - это объединение нескольких серверов в единую систему.

Обычно кластерное решение применяют для следующих целей:

  • повышение производительности (несколько серверов обрабатывают данные одновременно)
  • интеграция всех баз данных в единую систему (получение консолидированной отчетности)
  • повышенная защита данных (отдельные сервера в кластере могут иметь изоляцию друг от друга)
  • повышение надежности (часть серверов в кластере играет роль дублирующих)

Рассмотрим пример. Имеется компания "Рога и Копыта", в него входят два подразделения "Рога" и "Копыта". Оба подразделения для проектного управления и учета рабочего времени используют свой MS Project Central Server. Все хорошо, но требуется получить консолидированную отчетность по работе обоих подразделений. Для этого создается специальный сервер отчетов, который включает в кластер сервера отделов. Причем сервера отделов имеют право закрыть доступ к части информации как серверу другого отдела, так и серверу консолидированной отчетности. Задача сокрытия данных для "Рога и Копыта" очень актуальна, т.к. компания быстро перерастает в подобие холдинга и утечки информации даже в соседнее подразделение крайне не желательны.

Прошло время "Рога и Копыта" значительно выросли. Возросли требования к производительности системы. Кроме того, появилось желание интегрировать весь документооборот управления между подразделениями, при этом оставить сокрытие проектной статистики в рамках отделов. Создается общий сервер документооборота Project Central, а сервера с проектами остаются в рамках отделов. Вся система объединяется в единое целое через кластер.

IT-Менеджеру: Чем хорош и плох кластер MS SQL 2000?

Мы описывали выше кластерное решение характерное для MS SQL 2000. Описание кластерных технологий Microsoft можно также посмотреть на специальной странице .

Какие достоинства есть у кластера в понимании Microsoft?

  • Очень высокая производительность, это MS SQL сейчас рыночный лидер на платформе Windows NT/2000 (лидер продаж на данной платформе и лидер по тестам TPC в сравнении со всеми платформами).
  • Кластер MS SQL можно создавать по мере необходимости интеграции отдельных серверов, нет необходимости сразу запускать дорогую кластерную систему. Это так называемая концепция "плачу по мере роста".
  • Монтирование кластеров MS SQL 2000, как правило, очень простое, эффективное и дешевое решение. По соотношению производительность/цена кластер MS SQL 2000 является лидером.
  • Кластеры MS SQL 2000 могут быть гетерогенными, т.е. объединять самые различные сервера. Это очень удачное решение для кластеров поднятых с целью получения консолидированный отчетности. Например, кластер MS SQL 2000 может включать сервера MS SQL 7.0 и Oracle. Однако гетерогенные кластеры медленнее работают гомогенных кластеров MS SQL 2000 и ограничены по возможностям обновления данных.
  • Кластеры MS SQL позволяют сделать защиту данных серверов в кластере друг от друга, это очень важно в решениях типа B2B (bussiness to bussiness)

Какие недостатки есть у кластера MS SQL 2000?

  • Чтобы приложение работало в кластере MS SQL 2000 оно должно быть специально спроектировано. Если упрощенно, приложение должно уметь хранить свои данные в разных серверах. Примером такого приложения является MS

    Project Central Server. В утешение можно сказать, что во многих случаях переделка под кластер достаточно проста, но можно встретить и серьезные проблемы (см. ниже).

  • Следствие из предыдущего пункта. Создание кластера MS SQL 2000 не является чисто административным усилием, т.е. недостаточно просто положить базу в кластер.
  • Приложение хорошо оптимизированное для кластеров MS SQL 2000 может не работать на других SQL-серверах, например на Oracle. Сервер Project Central спроектирован так, что он может без переделок функционировать под Oracle, но это и является источником некоторых сложностей создания кластера MS SQL 2000 (см. ниже).
  • Кластер MS SQL 2000 может организовать даже начинающий разработчик, однако, чтобы получить от него ожидаемую высокую производительность потребуется достаточно квалифицированный профессионал.
  • Кластер MS SQL 2000, который мы обсуждаем, не является аварийно-устойчивым сам по себе. Для аварийной устойчивости вам потребуется развернуть параллельно Failover Cluster (подробнее тут ). Это скорее замечание, чем недостаток.

Разработчику: Как масштабировать MS Project Central в кластер MS SQL 2000?

Мы опишем как организовать простое кластерное решение для Project Central за 3-5 человеко-дней. Данное решение имеет существенные ограничения по функциональности. Мы не будем рассматривать более сложные кластерные решения, такие как кластеризация базы workflow (см. ниже), такие решения дешевле заказать. Если вам нужны сложные кластерные решения пишите на ivanov-soft@inbox.ru

Прежде всего об архитектуре MS Project Central. Сервер спроектирован так, чтобы работать в кластере MS SQL 2000. В основном это заключается в том, что Central способен хранить данные по проектам в различных базах данных, существует только одна единая база данных в Central - это база проектного документооборота сервера. Рабочими местами пользователей является браузер, вся бизнес-логика реализована в виде ActiveX и COM компонент. MS Project Central продукт с открытой архитектурой, т.е. вы можете его модифицировать.

Естественно напрашивает решение, что Central построен на disributed view, но это не так. Дело в том, что Microsoft стремился, чтобы Central мог работать и под Oracle. Эта задача была даже перевыполнена. Фактически Central может работать на любом SQL сервере, но вам потребуется настроить индексы и сделать свои функции генерации ключей.

Делая ставку на многоплатформенность Microsoft решил не использовать решений "for MS SQL only", поэтому межбазовые манипуляции делаются самим Central Server, для штатных средств документооборота и отчетности это работает достаточно эффективно. Однако есть несколько причин по которым целесообразно запустить кластер MS SQL 2000:

1) Если вы хотите строить консолидированные отчеты используя OLAP и Data Mining, то создание кластера MS SQL 2000 весьма целесообразно, т.к. это упростит доступ к информации и повысит скорость формирования отчетов.

2) Другая причина поднятия кластера, возможно вы будете разрабатывать расширения Project Central, например автоматически выставлять отметки прохождения оплат в проекты менеджеров. В данном случае кластер позволит вам значительно упростить разработку и поднять производительность системы.

3) Возможно вы хотите повысить производительность Central запустив кластер, об этом имеет смысл подумать если у вас более 100 пользователей. Такое количество и даже больше набрать очень легко, если Central используется для сбора статистики о реальных затратах рабочего времени. В данном случае timesheet будет заполнять каждый сотрудник компании. Для многих корпораций сбор подобной статистики стандарт.

Что нужно сделать для организации кластера из проектных баз?

1) Создайте в таблицах начинающихся с MSP специальное поле, которое будет играть роль "partitioning column". Например, некое поле BaseId - идентификатор базы (можно еще использовать поля типа "департамент" и т.д.)

2) Установите полю значение по умолчанию соответствующее БД.

3) Создайте на MSP-таблицах ключ, включающий BaseId как часть.

4) Наложите на поле BaseId ограничение (check) соответствующее БД.

5) Создайте distributed view через все базы

Вот фрагменты скриптов в качестве иллюстрации:

CREATE TABLE [dbo].[MSP_ASSIGNMENTS] (

[ASSN_UID] [int] NOT NULL ,

Источник: ivn73.tripod.com

Категория: Веб-программирование

Похожие статьи: