SQL Server 2000

Проектирование системы Microsoft SQL Server

Разбить на страницы
Показывать лекцию целиком

Прежде чем начать устанавливать операционную систему и Microsoft SQL Server, вам нужно как следует продумать конструкцию своей системы SQL Server. Тщательное проектирование системы SQL Server позволит вам избежать дорогостоящих простоев, вызванных как реорганизацией системы, так и переинсталляцией SQL Server с другими настройками. Прочитав эту лекцию, вы узнаете, как производится проектирование системы SQL Server. В нашей книге термин система SQL Server обозначает аппаратуру и программное обеспечение, образующие компьютер, фактически осуществляющий работу с базой данных SQL Server. А под общим термином система мы будем иметь в виду аппаратуру и программное обеспечение, образующие все компьютеры, при помощи которых пользователи осуществляют доступ к данным, находящимся в одной или нескольких базах данных.

В этой лекции будет дана краткая вводная информация о версиях Microsoft Windows 2000 и SQL Server, которые вы можете выбрать для инсталляции. И наконец, вы получите сведения о типах внешних, интерфейсных (front-end) приложений для доступа к SQL Server, которые ваша фирма может приобрести или создать, а также о том, как архитектура приложений может влиять на перспективы масштабирования и производительности вашей системы.

Системные требования

Чтобы понять требования, предъявляемые ко всей системе, нужно выяснить функции системы. Когда вы имеете представление о назначении системы, то можно начать с поиска решения, как можно было бы добиться реализации системных требований при помощи одного или нескольких компьютеров. Вы можете решить, что одного компьютера будет достаточно, а можете посчитать, что для достижения ваших целей понадобится много компьютеров. В данной лекции мы дадим общий обзор этих вопросов. В лекциях 5 и 6 будут даны более подробные рекомендации по проектированию и конфигурированию аппаратуры.

А в данной лекции мы расскажем о функциональности системы и о том, какие решения о конфигурации можно принять на основе этой функциональности. Прежде чем рассматривать вопрос, как можно определить требования к уровню обслуживания, мы расскажем о типах приложений, которые могут работать в системе.

Системное приложение

Что хорошего в базе данных SQL Server без приложения? Если не рассматривать случай, когда каждый работник в вашей фирме является специалистом в SQL и наслаждается составлением сложных запросов и просмотром данных в табличной форме, то пользы от нее немного. Приложение облегчает применение SQL Server. Некоторые приложения явно показывают, что вы работаете с базой данных, а некоторые – полностью скрывают это. В любом случае, важно спроектировать приложение так, чтобы пользователи могли получать необходимое им обслуживание с комфортом и своевременно. Во многих случаях пользователи бывают разочарованы медленными, неэффективными приложениями. В конце концов, если приложение не будет удовлетворять требованиям потребителей, они могут найти себе другую фирму, обеспечивающую более качественное обслуживание.

Приложения могут быть весьма разнообразными по выполняемым функциям. Можно обобщенно считать, что имеются три основные функции приложений: системы оперативной обработки транзакций ( OLTP, on-line transaction processing ), системы поддержки принятия решений ( DSS, decision support system ) и системы пакетной обработки данных ( batch processing ). Эти функции имеют различные требования и могут применять совершенно разные типы приложений.

OLTP (системы оперативной обработки транзакций)

Особенностью систем оперативной обработки транзакций (OLTP) является одновременный оперативный доступ многих пользователей к данным. И что более важно, эти пользователи ждут отклика от системы. Системы OLTP могут иметь множество форм, среди которых следующие:

  • Онлайновые продажи. Этот вид систем OLTP получил широкое распространение из-за быстрого роста Интернет-коммерции. Покупая товары через Интернет, пользователям часто приходится терпеть задержки при передаче, доставке и обработке данных. Минимизируя длительность доступа к базе данных, вы уменьшаете общую длительность транзакций.
  • Продажи в обычных магазинах. Когда кассир в магазине пробивает вашу кредитную карточку, происходит доступ к базе данных. Прежде чем запрос достигнет базы данных, транзакция пройдет через множество компьютеров.
  • Системы для бизнеса. У каждой фирмы имеется какое-нибудь приложение для доступа к базам данных. Это может быть ваша платежная система, система для закупок, база данных кадровой службы, система для учета имущества или еще какая-нибудь другая система. Такие приложения могут быть созданы как приложения для внутренней сети, реализованы на языках программирования вроде C++ или Microsoft Visual Basic, или при помощи инструментального средства – языка четвертого поколения (4GL). В любом случае, в конечном итоге, данные поступают из базы данных.
  • Все системы OLTP обладают одной общей особенностью – пользователь должен ждать от них ответа. Ваша задача – спроектировать систему, которая будет адекватно обслуживать запросы пользователей за предусмотренное время ответа.

    DSS (системы поддержки принятия решений)

    Системы поддержки принятия решений (DSS) помогают пользователям принимать важные решения, касающиеся их бизнеса, они выдают специфические результаты, относящиеся к бизнесу. Вот некоторые примеры вопросов про бизнес, на которые могут отвечать системы поддержки принятия решений:

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

    Системы пакетной обработки данных

    Системы пакетной обработки данных обрабатывают неоперативные (offline) задания обработки данных, не имеющие никаких компонент для работы с конечными пользователями. Вот типичные примеры таких систем:

  • Ежедневное обновление данных. Для некоторых систем поддержки принятия решений требуется еженочная загрузка новых данных, и эта работа часто выполняется автоматически при помощи заданий пакетной обработки данных.
  • Преобразование данных. Эта задача похожа на обновление данных, но сопровождается преобразованием данных.
  • Очистка данных. При выполнении этой задачи происходит, например, удаление из базы данных дублирующихся записей.
  • Автономное выписывание счетов. Эта задача может заключаться в еженочном выписывании счетов потребителям.
  • Системы для пакетной обработки обычно не имеют пользователей, ожидающих завершения заданий, но, как правило, они ограничены временными рамками, в пределах которых задачи должны быть завершены. Например, ночная загрузка данных не может захватывать время утренних входов в систему.

    Требования

    Как вы видите, прежде чем проектировать сервер базы данных, важно понять, какие типы приложений должны будут поддерживаться системой. Не зная требований к системе, вы не сможете эффективно проектировать систему. Из дальнейшего материала данной лекции и всей книги вы поймете, что каждая система имеет свои собственные требования, свои особенности. Эти требования могут подсказать те или иные проектировочные решения, например, вы можете решать, сколько компьютеров нужно использовать и нужна ли вам распределенная обработка транзакций.

    Требования к уровню обслуживания

    К наиболее важным факторам, влияющим на проектирование вашей системы, относятся требования к уровню обслуживания. Эти требования к уровню обслуживания обычно формулируются в соглашении об уровне обслуживания (SLA, service level agreement). Соглашения об уровне обслуживания заключаются между поставщиками обслуживания (CIO, chief information officer, руководителями, отвечающими за информационные технологии) и потребителями (пользователями). Будет ли заключено формальное соглашение об уровне обслуживания или нет, зависит от того, кто является потребителем и каким образом осуществляется обслуживание.

    Например, если вы заключили с другой фирмой контракт о предоставлении услуг доступа к базам данных, то, скорее всего, у вас будет иметься соглашение об уровне обслуживания. Фактически, чаще всего такие соглашения об уровне обслуживания являются контрактами, исполнение которых обязательно по закону. В любом случае, в соглашении об уровне обслуживания будет дано описание уровня обслуживания, гарантируемого потребителям. Там также могут быть определены санкции за несоответствие требованиям к уровню обслуживания. Более подробно про соглашения об уровне обслуживания будет рассказано в лекции 6.

    Если имеются гарантии на уровень обслуживания, то вы должны спроектировать систему таким образом, чтобы обеспечивать этот уровень производительности. Мы обсудим здесь некоторые моменты, влияющие на проектирование системы: производительность, мощность и обеспечение работоспособности в течение суток.

    Производительность

    Одним из наиболее важных условий, включаемых в соглашения об уровне обслуживания, является спецификация минимально допустимой производительности системы. Типичное соглашение об уровне обслуживания содержит схему различных транзакций, поддерживаемых приложением, значение допустимого наихудшего времени обслуживания для 100 процентов транзакций и, необязательно, более строгие требования к допустимому наихудшему времени обслуживания для 95 или 90 процентов транзакций. Например, в соглашении об уровне обслуживания может быть сказано, что 90 процентов транзакций "добавить нового потребителя" должно завершаться за время не более двух секунд, и что любые такие транзакции должны завершаться не более чем за три секунды.

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

    Мощность

    Кроме требований к производительности, соглашения об уровне обслуживания, могут содержать также требования к мощности. Мощность системы классифицируется по различным категориям, таким как мощность места на дисках, мощность пользователей, мощность сетевых соединений и т.д. К числу ваших обязанностей относится и поддержание системы в таком состоянии, чтобы она не выходила за установленные рамки требований к мощности.

    Чтобы поддерживать мощность системы, вы должны непрерывно следить за ней и предпринимать действия, когда есть признаки, что мощность подходит к своему пределу. Как вы увидите в лекции 6, некоторый объем места на дисках должен оставаться всегда, чтобы обеспечить пиковые нагрузки при работе. Если этот резервный буфер начинает использоваться часто, то нужно добавить в систему дополнительные ресурсы. Это верно и в отношении использования центрального процессора.

    Обеспечение работоспособности

    Кроме спецификаций с требованиями к производительности и к мощности, в соглашения об уровне обслуживания обычно включаются также и спецификации с требованиями к обеспечению работоспособности системы. В спецификациях на обеспечение работоспособности системы утверждается, что система должна быть доступна для пользователей в некоторые заранее определенные периоды времени. В соглашении об уровне обслуживания может быть указано, что система должна быть работоспособной в течение 99,9% времени семь дней в неделю, 52 недели в году, либо может быть сказано, что система должна быть работоспособной восемь часов в день, пять дней в неделю, это зависит от потребностей вашей фирмы. Вы отвечаете за разработку плана регулярного резервного копирования и восстановления, а также за планы восстановления после аварий (чрезвычайные планы), чтобы обеспечить работоспособность системы во время, заданное спецификацией об уровне обслуживания.

    Системные компоненты и настройки

    Теперь, когда вы имеете краткое представление о типах доступных приложений и требований к уровню обслуживания, вы можете принять решение о том, какое программное обеспечение следует установить на вашей системе. Вы можете выбрать одну из четырех версий Windows 2000 и одну из трех версий SQL Server 2000. В данном разделе мы рассмотрим различия между этими версиями и причины, по которым вы можете предпочесть одни версии другим.

    Версии Windows 2000

    Для того чтобы вы могли выбрать программное обеспечение, соответствующее требующимся для вас приложениям, имеются четыре версии Windows 2000. Возможности операционных систем Windows 2000 растут при переходе от Windows 2000 Professional к Windows 2000 Server, затем к Windows 2000 Advanced Server и, наконец, к Windows 2000 Datacenter. Ниже будут даны описания возможностей каждой из версий Windows 2000. Следует выбирать ту версию Windows 2000, которая обеспечивает возможности, соответствующие вашим потребностям, а не просто покупать самую дорогую версию с наибольшими возможностями.

    Windows 2000 Professional

    Windows 2000 Professional является, по существу, версией Windows 2000 для настольных компьютеров. Как правило, компьютер под управлением Windows 2000 Professional сможет воспользоваться возможностями лишь клиентских компонент SQL Server 2000. Однако если вам понадобится запустить на этом компьютере SQL Server, то вы сможете инсталлировать SQL Server 2000 Personal Edition. Версия Personal Edition позволяет только локальный доступ к базе данных. Доступ с других компьютеров не разрешается.

    Примечание. В Windows 2000 Professional можно инсталлировать SQL Server Personal Edition и клиентские компоненты SQL Server.

    Windows 2000 Server

    Windows 2000 Server спроектирована как серверная операционная система. Это значит, что инсталлировав на компьютер Windows 2000 Server, вы позволите другим компьютерам осуществлять доступ к ресурсам этого компьютера. Windows 2000 Server поддерживает SQL Server 2000 Standard Edition. Windows 2000 Server не поддерживает компьютеры с более чем четырьмя центральными процессорами и более чем с 4 Гб оперативной памяти. SQL Server 2000 также позволяет удаленным клиентам осуществлять доступ к базе данных.

    Примечание. На компьютеры под управлением Windows 2000 Server можно инсталлировать только SQL Server Standard Edition, SQL Server Personal  Edition и клиентские компоненты SQL Server.

    Windows 2000 Advanced Server

    Windows 2000 Advanced Server также является серверной операционной системой. Как и для компьютеров под управлением Windows 2000 Server, компьютеры под управлением Windows 2000 Advanced Server позволяют другим компьютерам осуществлять доступ к их системным ресурсам, а также к SQL Server. В дополнение к возможностям Windows 2000 Server, Windows 2000 Advanced Server поддерживает до восьми центральных процессоров и до 8 Гб оперативной памяти. Если вы хотите пользоваться службами MSCS (Microsoft Cluster Services) для поддержки перехода к другому узлу кластера при отказах, то вам следует применять Windows 2000 Advanced Server. Кроме поддержки MSCS, Windows 2000 Advanced Server вместе с SQL Server 2000 поддерживает новую технологию кластеризации SQL Server – "обновляемые распределенные представления" (updatable distributed views).

    Примечание.Чтобы иметь возможность применять SQL Server 2000 с восемью центральными процессорами и 8 гигабайтами памяти, вы должны запускать SQL Server Enterprise Edition. Кроме того, на компьютерах под управлением Windows 2000 Advanced Server можно инсталлировать SQL Server Standard Edition, SQL Server Personal Edition и клиентские компоненты SQL Server.

    Windows 2000 Datacenter

    Windows 2000 Datacenter – это "флагман" семейства операционных систем Windows 2000. Данная версия Windows 2000 поддерживает все компоненты, что и другие версии, а также может поддерживать до 64 центральных процессоров и до 64 Гб памяти. Поставки Windows 2000 Datacenter осуществляются только через поставщиков оборудования. Поставщики оборудования не только встраивают (интегрируют) Windows 2000 Datacenter в свое оборудование, но и обеспечивают наивысший уровень поддержки, доступный для операционных систем Windows 2000. Благодаря такой интеграции программного обеспечения и аппаратуры вы можете обращаться с вопросами технической поддержки аппаратуры и Windows 2000 в единую службу.

    Примечание.Чтобы иметь возможность применять SQL Server 2000 с 64 центральными процессорами и 64 Гб памяти, вы должны запускать SQL Server Enterprise Edition. Кроме того, на компьютерах под управлением Windows 2000 Datacenter Server можно инсталлировать SQL Server Standard Edition, SQL Server Personal Edition и клиентские компоненты SQL Server.

    Версии SQL Server

    Вы можете выбирать не только среди версий Windows 2000, но и среди нескольких версий (редакций, editions) SQL Server. Выбор версии SQL Server очень прост и зависит от необходимого для вас объема оперативной памяти и количества центральных процессоров. Ниже даны описания версий SQL Server.

    Клиентское программное обеспечение

    Клиентские компоненты SQL Server 2000 состоят из сетевых библиотек и утилит, необходимых для доступа к удаленной или локальной системе SQL Server. Эти компоненты необходимы любой системе для доступа к SQL Server, и они одинаковые (не зависят от того, какая версия SQL Server инсталлирована).

    Версия Personal Edition

    Версия Personal Edition спроектирована для реализации небольших баз данных, доступных локально на компьютере-клиенте. SQL Server 2000 Personal Edition вполне может использоваться в качестве сервера для небольшой рабочей группы и допускает ограниченное (до 5) число клиентских подключений по сети.

    Версия Standard Edition

    Standard Edition является одной из двух серверных версий ("редакций") SQL Server 2000. Standard Edition обладает такими же функциональными возможностями, как и SQL Server Enterprise Edition, но не может работать более чем с четырьмя центральными процессорами и более чем с 4 Гб оперативной памяти.

    Версия Enterprise Edition

    Версия Enterprise Edition поддерживает все средства и функциональные возможности всех версий Windows 2000. Для работы SQL Server 2000 Enterprise Edition требуется Windows 2000 Advanced Server или Windows 2000 Datacenter. Кроме прочего, SQL Server 2000 Enterprise Edition поддерживает двухузловую кластеризацию с переходом к другому узлу кластера при отказах и обновляемые распределенные представления (updatable distributed views).

    Сравнительная таблица версий

    Возможности различных версий Windows 2000 и SQL Server 2000 перечислены в табл. 4.1.

    Сравнение различных версий Windows 2000 и SQL Server 2000
    SQL Server 2000 Personal Edition SQL Server 2000 Standard Edition SQL Server 2000 Enterprise Edition
    Windows 2000 Professional Ограниченные возможности Невозможное сочетание версий Невозможное сочетание версий
    Windows 2000 Server Ограниченные возможности Возможности сервера.

    Поддержка до 4 центральных процессоров и до 2 Гб памяти

    Возможности сервера.

    Поддержка до 4 центральных процессоров и до 4 Гб памяти

    Windows 2000 Advanced Server Ограниченные возможности Возможности сервера.

    Поддержка до 4 центральных процессоров и до 2 Гб памяти

    Возможности сервера.

    Кластеризация MSCS. Поддержка до 8 центральных процессоров и до 8 Гб памяти

    Windows 2000 Datacenter Ограниченные возможности Возможности сервера.

    Поддержка до 4 центральных процессоров и до 2 Гб памяти

    Возможности сервера.

    Кластеризация MSCS. Поддержка до 64 центральных процессоров и до 64 Гб памяти

    Как видите, у вас есть из чего выбрать. Следует тщательно обдумать выбор приобретаемых продуктов. Если вы поменяете свое решение уже после того, как инсталлируете систему, то вам придется начинать всю работу с самого начала.

    Системные настройки

    Кроме выбора версий SQL Server 2000 и Windows 2000 вы также можете воспользоваться еще некоторыми другими настройками. Эти настройки (опции) описаны ниже, они определяют применение кластеризации MSCS, репликацию SQL Server 2000 и обновляемые распределенные представления (эта новая возможность, появившаяся в SQL Server 2000 Enterprise Edition). Каждая из этих настроек имеет свои собственные возможности и требования и, следовательно, могут оказаться в вашей конфигурации полезными либо бесполезными. Мы расскажем об этом в нескольких абзацах ниже.

    MSCS

    Сокращение MSCS расшифровывается как Microsoft Cluster Services – "службы кластеризации Microsoft". Службы MSCS являются настройкой Windows 2000, работающей в сочетании с SQL Server. Благодаря MSCS компьютер может работать как резервный сервер (standby, failover server) для другого компьютера (сервер для перехода при отказе). Благодаря этому можно начинать процесс восстановления почти сразу же после случившегося аппаратного или даже программного отказа. Для MSCS требуется разделяемая дисковая подсистема, подключенная к обоим компьютерам кластера. Журнал транзакций SQL Server и файлы данных, а также исполняемые файлы должны размещаться на этой разделяемой дисковой подсистеме. В случае отказа, определяемого по отсутствию "сигнала пульса", резервный компьютер берет на себя функции SQL Server. Так как резервный компьютер захватывает себе IP-адрес и имя системы, то для внешнего мира он воспринимается просто как перезагрузившийся основной сервер базы данных.

    Примечание.При переходе на другой кластер в случае отказа, после того как случится отказ, потребуется восстановление системы, такое же, как и при внезапной перезагрузке любого компьютера. MSCS обеспечивает не отказоустойчивость, а лишь возможность для быстрого восстановления.

    Репликация SQL Server

    Репликация SQL Server позволяет копировать данные из одной базы данных SQL Server на другие системы баз данных. Имеются разные схемы репликации –моментальная (snapshot replication), транзакционная (transactional replication) и репликация слиянием (merge replication), они будут описаны в нескольких абзацах ниже. Какая из схем репликации лучше всего подойдет вам – зависит от ваших предпочтений и от ваших потребностей. Репликация SQL Server работает по модели "опубликовать-подписаться" (publish-and-subscribe model), в которой издатель (publisher) публикует данные, а один или несколько подписчиков (subscribers) получают копии этих данных.

    Моментальная репликация

    При моментальной репликации периодически создается "картинка", "снимок" (snapshot) данных и предоставление этих данных в пользование другим системам. Моментальная репликации выполняется только во время создания и применения "снимков", поэтому при обычной работе она не затруднит вас дополнительными заботами. Недостатком моментальной репликации является то, что "свежесть" данных определяется последним "снимком", а он может быть довольно старым.

    Транзакционная репликация

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

    Репликация слиянием

    Репликация слиянием отличается от транзакционной репликации и моментальной репликации тем, что обновления происходят и на компьютере-издателе, и на компьютерах-подписчиках. SQL Server применяет триггеры и метки времени (timestamps) для координации изменений между разными компьютерами, участвующими в репликации. Репликация слиянием полезна, когда требуется многонаправленная репликация, но по сравнению с транзакционной или моментальной репликацией она вызывает гораздо большую нагрузку.

    Обновляемые распределенные представления

    В SQL Server появились обновляемые распределенные представления (updatable distributed views). Благодаря этой возможности системы SQL Server могут разделять (использовать совместно) логическую базу данных, что повышает масштабируемость. Логическая база данных может стать большой, и вы можете разместить ее на многих компьютерах, это позволяет повысить ее мощность. (Об обновляемых распределенных представлениях см. лекцию 18.)

    Размещение базы данных

    Важной частью проектирования системы SQL Server является проектирование размещения базы данных (database layout). Под этим надо понимать физическое размещение журналов транзакций, файлов данных и т.д. Эта задача – одна из самых важных при проектировании системы, потому что изменить принятые ранее решения, относящиеся к размещению, будет очень сложно. В лекциях 5 и 6 будут даны советы о физическом размещении журнала транзакций и файлов данных.

    Журнал транзакций

    Журнал транзакций критически важен для работы, для стабильности и производительности сервера базы данных. У каждой базы данных имеется свой собственный журнал транзакций, поэтому каждый журнал транзакций должен быть правильно размещен. Журнал транзакций используется для записи изменений в базу данных, что позволяет восстановить систему в случае отказа. Так как восстановление опирается на журнал транзакций, важно, чтобы эта компонента базы данных была защищена от возможных сбоев при помощи RAID-устройств. Журнал транзакций должен оставаться доступным даже при выходе диска из строя.

    В дополнение к защите журнала транзакций от отказов дисков вам следует обеспечить размещение журнала транзакций на высокоскоростном устройстве. Если журнал транзакций будет размещен на слишком медленном устройстве, то транзакциям придется ждать, что сильно повлияет на производительность системы. Журнал транзакций должен быть также сконфигурирован так, чтобы обеспечивалась отказоустойчивость. Требования к размещению журнала транзакций рассмотрены подробно в следующей лекции.

    И наконец, нужно обеспечить достаточно места в журнале транзакций, чтобы система длительное время могла работать безостановочно. Когда журнал транзакций заполнится, обработка транзакций приостановится до тех пор, пока в журнале транзакций не появится свободное место. Место в журнале транзакций освобождается при резервном копировании журнала транзакций. Однако резервное копирование журнала транзакций может негативно повлиять на производительность. Некоторые администраторы баз данных предпочитают создавать достаточно большие журналы транзакций, чтобы было достаточно лишь одного резервного копирования в час или в день. Следует увеличивать размер журнала транзакций до такой степени, чтобы он мог применяться без резервного копирования не менее восьми часов.

    Файлы данных

    Проектирование размещения файлов данных полностью отличается от проектирования размещения журнала транзакций. В зависимости от способа доступа к данным, вы должны разместить их на как можно большем количестве дисков, распределяя нагрузку ввода-вывода по всем этим дискам. Этот процесс описан более подробно в следующей лекции.

    Вам следует увеличить размеры файлов данных так, чтобы было достаточно места, чтобы предусмотреть рост системы. Даже удивительно, насколько быстрым бывает иногда рост баз данных. При росте данных растут и индексы. Вам придется периодически проверять систему и выполнять работы по увеличению ее состава и планированию мощности.

    Поэтому, чтобы вы смогли правильно спланировать размещение файлов данных, нужно оценить объем требуемого для них места и необходимую производительность и затем создать нужное количество дисков, применяя RAID-подсистему. В зависимости от ваших конкретных потребностей, можно применять либо не применять средства для отказоустойчивости. После того как решение о подсистеме ввода-вывода будет принято, следует равномерно разместить файлы данных по контроллерам и дискам.

    Приложение

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

    Архитектура

    Основная архитектура приложения может принимать различные формы. Основные различия между архитектурами приложений состоят в количестве систем, участвующих в работе приложения. Эта классификация производится по количеству звеньев (tiers). Реклама многих наиболее популярных приложений основывается на количестве звеньев, которые могут в них содержаться.

    Сравнение архитектур

    Каждое приложение базы данных состоит из трех отдельных компонент:

  • Службы базы данных (database services). Это – конечный сервер базы данных и данные, которые размещены в этой базе данных.
  • Службы приложения (application services). Это – механизмы манипулирования данными, извлекаемыми из базы данных. Логика их работы определяется приложением или потребностями бизнеса.
  • Службы представления (presentation services). Это – пользовательский интерфейс. Службы представления должны быть способными манипулировать данными таким образом, чтобы это было понятно пользователям.
  • Различие между однозвенной, двухзвенной и трехзвенной архитектурами зависит от того, каким образом разделяются на части эти компоненты. В однозвенной архитектуре они все являются частями одной программы. В двухзвенной архитектуре эти компоненты разделены на две отдельные части. В трехзвенной архитектуре компоненты разделены на три отдельные части (см. рис. 4.1). В последующих разделах даны более подробные объяснения.

    (рис 4.1) Различия между однозвенной, двухзвенной и трехзвенной архитектурами

    Однозвенная архитектура

    Однозвенная (one-tier, single-tier) архитектура – это система, в которой все службы базы данных, приложения и представления (пользовательский интерфейс) размещены на одной системе. Системы такого типа не производят обработку вне тех компьютеров, на которых они исполняются. Примером однозвенной архитектуры может служить база данных Microsoft Аccess с локальными службами представления.

    В наше время трудно встретить действительно однозвенную архитектуру, особенно на платформе Windows 2000. Тем не менее многие небольшие однопользовательские приложения являются однозвенными. Примером этому могут служить Microsoft Money, Quicken и TurboTax. Такие приложения обычно размещаются на том же компьютере, на котором они и исполняются. Пример однозвенной архитектуры с SQL Server найти гораздо труднее. Фактически, даже если вы можете исполнять Enterprise Manager на той же системе, где размещена и база данных, но на самом деле такое приложение не является однозвенным, потому что данное приложение пользуется сетевыми компонентами SQL Server. Тот факт, что вы вот взяли и запустили его на той же системе, является несущественным.

    Двухзвенная архитектура

    В двухзвенных приложениях службы представления и база данных размещаются на разных системах (компьютерах). Уровень служб представления (пользовательский интерфейс) обычно включает в себя логику работы приложения. Хорошим примером двухуровневого приложения является приложение, использующее SQL Server Enterprise Manager. У таких приложений пользовательский интерфейс и логика работы приложения размещаются в Enterprise Manager, но все данные, необходимые для функционирования приложения, находятся в базе данных SQL Server на другом компьютере.

    Двухзвенные приложения встречаются чаще всего. Вы, наверное, уже работали со многими такими приложениями. Эти приложения обычно написаны на языках, поддерживающих API (интерфейсы прикладного программирования) для Windows, таких, как Microsoft Visual C++ или Visual Basic. При помощи двухзвенных приложений каждый пользователь может иметь одно или несколько соединений с базой данных SQL Server. Данная архитектура может стать неэффективной из-за того, что большинство этих соединений будут простаивать большую часть времени.

    Трехзвенная архитектура

    В трехзвенных приложениях уровень базы данных, уровень приложения и уровень служб представления выделены в три разные компоненты. В типичных трехзвенных приложениях используется промежуточный уровень для обслуживания многочисленных соединений от уровня служб представления, благодаря чему уменьшается количество соединений с SQL Server. Кроме того, этот промежуточный уровень может выполнять значительный объем работы, связанной с реализацией специфики целевых задач (логики предметной области), освобождая базу данных для решения тех задач, которые она выполняет лучше всего, – для доставки требуемых данных.

    На вопрос, к какой категории – с двухзвенной или с трехзвенной архитектурой – можно отнести веб-приложение, ответить сразу бывает трудно. Можно воспользоваться простой проверкой: если данные, отображаемые уровнем служб представления, могут с той же легкостью применять и терминал или веб-браузер, то данное приложение, скорее всего, является двухзвенным.

    Как вы могли убедиться, благодаря разделению компонент вы можете применять много компьютеров. Фактически, обычно системы начинаются с одного сервера базы данных, соединенного с несколькими серверами приложений, которые, в свою очередь, обслуживают много компьютеров-клиентов. Решения, принимаемые при проектировании системы, зависят от количества ее пользователей и выбранного вами приложения.

    Производительность и масштабируемость

    Когда вы разрабатываете приложение и схему базы данных, вам следует помнить о производительности и масштабируемости. На стадии проектирования приложения вы делаете выбор среди многих настроек, что может впоследствии повлиять на производительность и масштабируемость. Среди этих настроек имеются следующие:

  • Использование временных рабочих таблиц. Для небольших баз данных временные рабочие таблицы оказываются эффективными, но с увеличением размера базы данных они перестают работать правильно.
  • Использование агрегатных функций.Использование агрегатных функций (aggregate functions), таких как MIN( ), MAX( ) и AVG( ), сопоставимо с объемом используемых данных. Поэтому обратите внимание, чтобы ваш набор данных не стал со временем слишком громоздким.
  • Использование индексов. По мере роста объема данных, использование индексов становится более важным (см. лекцию 17).
  • Использование транзакций. Использование явных транзакций очень полезно, чтобы гарантировать атомарность операций. Однако, по мере роста числа одновременно работающих пользователей, важно ограничивать блокировки, насколько это окажется возможным.
  • Теперь вам понятно, что для проектирования системы, которая будет работать хорошо в условиях роста нагрузки, следует помнить о нескольких факторах. Применив методы оптимизации производительности еще на стадии проектирования, вы сможете создать масштабируемую систему.

    Заключение

    Как вы поняли из данной лекции, при проектировании системы SQL Server следует помнить о многих вещах. К сожалению, невозможно просто взять и рассказать о том, как следует проектировать системы баз данных. Даже если вы проектируете системы для многих фирм, результаты обычно получаются разными, потому что у каждой фирмы имеются свои нужды и требования.

    В данной лекции мы показали несколько ключевых моментов. Вы должны узнать требования вашей фирмы относительно расписания периодов работоспособности системы. Может быть, ваша система будет состоять из многих вычислительных центров, будет применять кластеризацию, подсистемы ввода-вывода с RAID-массивами или репликацию. Кроме того, на всю конструкцию системы окажут влияние требования, относящиеся к масштабируемости и производительности. Как вы поняли из данной лекции, здесь имеется множество вариантов настроек. Наконец, вы должны проектировать приложение, постоянно помня о производительности. Если вы сможете предвидеть вопросы, касающиеся производительности, то система не затормозится при росте объема данных и увеличении числа пользователей.

    В следующей лекции будут развиты многие темы, поднятые в данной главе. В лекции 5 вы также узнаете, как работает подсистема ввода-вывода, какие моменты, связанные с производительностью и отказоустойчивостью вы должны учитывать, и как оптимально спланировать и сконфигурировать подсистему ввода-вывода.

    Страницы:

    Прежде чем начать устанавливать операционную систему и Microsoft SQL Server, вам нужно как следует продумать конструкцию своей системы SQL Server. Тщательное проектирование системы SQL Server позволит вам избежать дорогостоящих простоев, вызванных как реорганизацией системы, так и переинсталляцией SQL Server с другими настройками. Прочитав эту лекцию, вы узнаете, как производится проектирование системы SQL Server. В нашей книге термин система SQL Server обозначает аппаратуру и программное обеспечение, образующие компьютер, фактически осуществляющий работу с базой данных SQL Server. А под общим термином система мы будем иметь в виду аппаратуру и программное обеспечение, образующие все компьютеры, при помощи которых пользователи осуществляют доступ к данным, находящимся в одной или нескольких базах данных.

    В этой лекции будет дана краткая вводная информация о версиях Microsoft Windows 2000 и SQL Server, которые вы можете выбрать для инсталляции. И наконец, вы получите сведения о типах внешних, интерфейсных (front-end) приложений для доступа к SQL Server, которые ваша фирма может приобрести или создать, а также о том, как архитектура приложений может влиять на перспективы масштабирования и производительности вашей системы.

    Системные требования

    Чтобы понять требования, предъявляемые ко всей системе, нужно выяснить функции системы. Когда вы имеете представление о назначении системы, то можно начать с поиска решения, как можно было бы добиться реализации системных требований при помощи одного или нескольких компьютеров. Вы можете решить, что одного компьютера будет достаточно, а можете посчитать, что для достижения ваших целей понадобится много компьютеров. В данной лекции мы дадим общий обзор этих вопросов. В лекциях 5 и 6 будут даны более подробные рекомендации по проектированию и конфигурированию аппаратуры.

    А в данной лекции мы расскажем о функциональности системы и о том, какие решения о конфигурации можно принять на основе этой функциональности. Прежде чем рассматривать вопрос, как можно определить требования к уровню обслуживания, мы расскажем о типах приложений, которые могут работать в системе.

    Системное приложение

    Что хорошего в базе данных SQL Server без приложения? Если не рассматривать случай, когда каждый работник в вашей фирме является специалистом в SQL и наслаждается составлением сложных запросов и просмотром данных в табличной форме, то пользы от нее немного. Приложение облегчает применение SQL Server. Некоторые приложения явно показывают, что вы работаете с базой данных, а некоторые – полностью скрывают это. В любом случае, важно спроектировать приложение так, чтобы пользователи могли получать необходимое им обслуживание с комфортом и своевременно. Во многих случаях пользователи бывают разочарованы медленными, неэффективными приложениями. В конце концов, если приложение не будет удовлетворять требованиям потребителей, они могут найти себе другую фирму, обеспечивающую более качественное обслуживание.

    Приложения могут быть весьма разнообразными по выполняемым функциям. Можно обобщенно считать, что имеются три основные функции приложений: системы оперативной обработки транзакций ( OLTP, on-line transaction processing ), системы поддержки принятия решений ( DSS, decision support system ) и системы пакетной обработки данных ( batch processing ). Эти функции имеют различные требования и могут применять совершенно разные типы приложений.

    OLTP (системы оперативной обработки транзакций)

    Особенностью систем оперативной обработки транзакций (OLTP) является одновременный оперативный доступ многих пользователей к данным. И что более важно, эти пользователи ждут отклика от системы. Системы OLTP могут иметь множество форм, среди которых следующие:

  • Онлайновые продажи. Этот вид систем OLTP получил широкое распространение из-за быстрого роста Интернет-коммерции. Покупая товары через Интернет, пользователям часто приходится терпеть задержки при передаче, доставке и обработке данных. Минимизируя длительность доступа к базе данных, вы уменьшаете общую длительность транзакций.
  • Продажи в обычных магазинах. Когда кассир в магазине пробивает вашу кредитную карточку, происходит доступ к базе данных. Прежде чем запрос достигнет базы данных, транзакция пройдет через множество компьютеров.
  • Системы для бизнеса. У каждой фирмы имеется какое-нибудь приложение для доступа к базам данных. Это может быть ваша платежная система, система для закупок, база данных кадровой службы, система для учета имущества или еще какая-нибудь другая система. Такие приложения могут быть созданы как приложения для внутренней сети, реализованы на языках программирования вроде C++ или Microsoft Visual Basic, или при помощи инструментального средства – языка четвертого поколения (4GL). В любом случае, в конечном итоге, данные поступают из базы данных.
  • Все системы OLTP обладают одной общей особенностью – пользователь должен ждать от них ответа. Ваша задача – спроектировать систему, которая будет адекватно обслуживать запросы пользователей за предусмотренное время ответа.

    DSS (системы поддержки принятия решений)

    Системы поддержки принятия решений (DSS) помогают пользователям принимать важные решения, касающиеся их бизнеса, они выдают специфические результаты, относящиеся к бизнесу. Вот некоторые примеры вопросов про бизнес, на которые могут отвечать системы поддержки принятия решений:

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

    Системы пакетной обработки данных

    Системы пакетной обработки данных обрабатывают неоперативные (offline) задания обработки данных, не имеющие никаких компонент для работы с конечными пользователями. Вот типичные примеры таких систем:

  • Ежедневное обновление данных. Для некоторых систем поддержки принятия решений требуется еженочная загрузка новых данных, и эта работа часто выполняется автоматически при помощи заданий пакетной обработки данных.
  • Преобразование данных. Эта задача похожа на обновление данных, но сопровождается преобразованием данных.
  • Очистка данных. При выполнении этой задачи происходит, например, удаление из базы данных дублирующихся записей.
  • Автономное выписывание счетов. Эта задача может заключаться в еженочном выписывании счетов потребителям.
  • Системы для пакетной обработки обычно не имеют пользователей, ожидающих завершения заданий, но, как правило, они ограничены временными рамками, в пределах которых задачи должны быть завершены. Например, ночная загрузка данных не может захватывать время утренних входов в систему.

    Требования

    Как вы видите, прежде чем проектировать сервер базы данных, важно понять, какие типы приложений должны будут поддерживаться системой. Не зная требований к системе, вы не сможете эффективно проектировать систему. Из дальнейшего материала данной лекции и всей книги вы поймете, что каждая система имеет свои собственные требования, свои особенности. Эти требования могут подсказать те или иные проектировочные решения, например, вы можете решать, сколько компьютеров нужно использовать и нужна ли вам распределенная обработка транзакций.

    Требования к уровню обслуживания

    К наиболее важным факторам, влияющим на проектирование вашей системы, относятся требования к уровню обслуживания. Эти требования к уровню обслуживания обычно формулируются в соглашении об уровне обслуживания (SLA, service level agreement). Соглашения об уровне обслуживания заключаются между поставщиками обслуживания (CIO, chief information officer, руководителями, отвечающими за информационные технологии) и потребителями (пользователями). Будет ли заключено формальное соглашение об уровне обслуживания или нет, зависит от того, кто является потребителем и каким образом осуществляется обслуживание.

    Например, если вы заключили с другой фирмой контракт о предоставлении услуг доступа к базам данных, то, скорее всего, у вас будет иметься соглашение об уровне обслуживания. Фактически, чаще всего такие соглашения об уровне обслуживания являются контрактами, исполнение которых обязательно по закону. В любом случае, в соглашении об уровне обслуживания будет дано описание уровня обслуживания, гарантируемого потребителям. Там также могут быть определены санкции за несоответствие требованиям к уровню обслуживания. Более подробно про соглашения об уровне обслуживания будет рассказано в лекции 6.

    Если имеются гарантии на уровень обслуживания, то вы должны спроектировать систему таким образом, чтобы обеспечивать этот уровень производительности. Мы обсудим здесь некоторые моменты, влияющие на проектирование системы: производительность, мощность и обеспечение работоспособности в течение суток.

    Производительность

    Одним из наиболее важных условий, включаемых в соглашения об уровне обслуживания, является спецификация минимально допустимой производительности системы. Типичное соглашение об уровне обслуживания содержит схему различных транзакций, поддерживаемых приложением, значение допустимого наихудшего времени обслуживания для 100 процентов транзакций и, необязательно, более строгие требования к допустимому наихудшему времени обслуживания для 95 или 90 процентов транзакций. Например, в соглашении об уровне обслуживания может быть сказано, что 90 процентов транзакций "добавить нового потребителя" должно завершаться за время не более двух секунд, и что любые такие транзакции должны завершаться не более чем за три секунды.

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

    Мощность

    Кроме требований к производительности, соглашения об уровне обслуживания, могут содержать также требования к мощности. Мощность системы классифицируется по различным категориям, таким как мощность места на дисках, мощность пользователей, мощность сетевых соединений и т.д. К числу ваших обязанностей относится и поддержание системы в таком состоянии, чтобы она не выходила за установленные рамки требований к мощности.

    Чтобы поддерживать мощность системы, вы должны непрерывно следить за ней и предпринимать действия, когда есть признаки, что мощность подходит к своему пределу. Как вы увидите в лекции 6, некоторый объем места на дисках должен оставаться всегда, чтобы обеспечить пиковые нагрузки при работе. Если этот резервный буфер начинает использоваться часто, то нужно добавить в систему дополнительные ресурсы. Это верно и в отношении использования центрального процессора.

    Обеспечение работоспособности

    Кроме спецификаций с требованиями к производительности и к мощности, в соглашения об уровне обслуживания обычно включаются также и спецификации с требованиями к обеспечению работоспособности системы. В спецификациях на обеспечение работоспособности системы утверждается, что система должна быть доступна для пользователей в некоторые заранее определенные периоды времени. В соглашении об уровне обслуживания может быть указано, что система должна быть работоспособной в течение 99,9% времени семь дней в неделю, 52 недели в году, либо может быть сказано, что система должна быть работоспособной восемь часов в день, пять дней в неделю, это зависит от потребностей вашей фирмы. Вы отвечаете за разработку плана регулярного резервного копирования и восстановления, а также за планы восстановления после аварий (чрезвычайные планы), чтобы обеспечить работоспособность системы во время, заданное спецификацией об уровне обслуживания.

    Системные компоненты и настройки

    Теперь, когда вы имеете краткое представление о типах доступных приложений и требований к уровню обслуживания, вы можете принять решение о том, какое программное обеспечение следует установить на вашей системе. Вы можете выбрать одну из четырех версий Windows 2000 и одну из трех версий SQL Server 2000. В данном разделе мы рассмотрим различия между этими версиями и причины, по которым вы можете предпочесть одни версии другим.

    Версии Windows 2000

    Для того чтобы вы могли выбрать программное обеспечение, соответствующее требующимся для вас приложениям, имеются четыре версии Windows 2000. Возможности операционных систем Windows 2000 растут при переходе от Windows 2000 Professional к Windows 2000 Server, затем к Windows 2000 Advanced Server и, наконец, к Windows 2000 Datacenter. Ниже будут даны описания возможностей каждой из версий Windows 2000. Следует выбирать ту версию Windows 2000, которая обеспечивает возможности, соответствующие вашим потребностям, а не просто покупать самую дорогую версию с наибольшими возможностями.

    Windows 2000 Professional

    Windows 2000 Professional является, по существу, версией Windows 2000 для настольных компьютеров. Как правило, компьютер под управлением Windows 2000 Professional сможет воспользоваться возможностями лишь клиентских компонент SQL Server 2000. Однако если вам понадобится запустить на этом компьютере SQL Server, то вы сможете инсталлировать SQL Server 2000 Personal Edition. Версия Personal Edition позволяет только локальный доступ к базе данных. Доступ с других компьютеров не разрешается.

    Примечание. В Windows 2000 Professional можно инсталлировать SQL Server Personal Edition и клиентские компоненты SQL Server.

    Windows 2000 Server

    Windows 2000 Server спроектирована как серверная операционная система. Это значит, что инсталлировав на компьютер Windows 2000 Server, вы позволите другим компьютерам осуществлять доступ к ресурсам этого компьютера. Windows 2000 Server поддерживает SQL Server 2000 Standard Edition. Windows 2000 Server не поддерживает компьютеры с более чем четырьмя центральными процессорами и более чем с 4 Гб оперативной памяти. SQL Server 2000 также позволяет удаленным клиентам осуществлять доступ к базе данных.

    Примечание. На компьютеры под управлением Windows 2000 Server можно инсталлировать только SQL Server Standard Edition, SQL Server Personal  Edition и клиентские компоненты SQL Server.

    Windows 2000 Advanced Server

    Windows 2000 Advanced Server также является серверной операционной системой. Как и для компьютеров под управлением Windows 2000 Server, компьютеры под управлением Windows 2000 Advanced Server позволяют другим компьютерам осуществлять доступ к их системным ресурсам, а также к SQL Server. В дополнение к возможностям Windows 2000 Server, Windows 2000 Advanced Server поддерживает до восьми центральных процессоров и до 8 Гб оперативной памяти. Если вы хотите пользоваться службами MSCS (Microsoft Cluster Services) для поддержки перехода к другому узлу кластера при отказах, то вам следует применять Windows 2000 Advanced Server. Кроме поддержки MSCS, Windows 2000 Advanced Server вместе с SQL Server 2000 поддерживает новую технологию кластеризации SQL Server – "обновляемые распределенные представления" (updatable distributed views).

    Примечание.Чтобы иметь возможность применять SQL Server 2000 с восемью центральными процессорами и 8 гигабайтами памяти, вы должны запускать SQL Server Enterprise Edition. Кроме того, на компьютерах под управлением Windows 2000 Advanced Server можно инсталлировать SQL Server Standard Edition, SQL Server Personal Edition и клиентские компоненты SQL Server.

    Windows 2000 Datacenter

    Windows 2000 Datacenter – это "флагман" семейства операционных систем Windows 2000. Данная версия Windows 2000 поддерживает все компоненты, что и другие версии, а также может поддерживать до 64 центральных процессоров и до 64 Гб памяти. Поставки Windows 2000 Datacenter осуществляются только через поставщиков оборудования. Поставщики оборудования не только встраивают (интегрируют) Windows 2000 Datacenter в свое оборудование, но и обеспечивают наивысший уровень поддержки, доступный для операционных систем Windows 2000. Благодаря такой интеграции программного обеспечения и аппаратуры вы можете обращаться с вопросами технической поддержки аппаратуры и Windows 2000 в единую службу.

    Примечание.Чтобы иметь возможность применять SQL Server 2000 с 64 центральными процессорами и 64 Гб памяти, вы должны запускать SQL Server Enterprise Edition. Кроме того, на компьютерах под управлением Windows 2000 Datacenter Server можно инсталлировать SQL Server Standard Edition, SQL Server Personal Edition и клиентские компоненты SQL Server.

    Версии SQL Server

    Вы можете выбирать не только среди версий Windows 2000, но и среди нескольких версий (редакций, editions) SQL Server. Выбор версии SQL Server очень прост и зависит от необходимого для вас объема оперативной памяти и количества центральных процессоров. Ниже даны описания версий SQL Server.

    Клиентское программное обеспечение

    Клиентские компоненты SQL Server 2000 состоят из сетевых библиотек и утилит, необходимых для доступа к удаленной или локальной системе SQL Server. Эти компоненты необходимы любой системе для доступа к SQL Server, и они одинаковые (не зависят от того, какая версия SQL Server инсталлирована).

    Версия Personal Edition

    Версия Personal Edition спроектирована для реализации небольших баз данных, доступных локально на компьютере-клиенте. SQL Server 2000 Personal Edition вполне может использоваться в качестве сервера для небольшой рабочей группы и допускает ограниченное (до 5) число клиентских подключений по сети.

    Версия Standard Edition

    Standard Edition является одной из двух серверных версий ("редакций") SQL Server 2000. Standard Edition обладает такими же функциональными возможностями, как и SQL Server Enterprise Edition, но не может работать более чем с четырьмя центральными процессорами и более чем с 4 Гб оперативной памяти.

    Версия Enterprise Edition

    Версия Enterprise Edition поддерживает все средства и функциональные возможности всех версий Windows 2000. Для работы SQL Server 2000 Enterprise Edition требуется Windows 2000 Advanced Server или Windows 2000 Datacenter. Кроме прочего, SQL Server 2000 Enterprise Edition поддерживает двухузловую кластеризацию с переходом к другому узлу кластера при отказах и обновляемые распределенные представления (updatable distributed views).

    Сравнительная таблица версий

    Возможности различных версий Windows 2000 и SQL Server 2000 перечислены в табл. 4.1.

    Сравнение различных версий Windows 2000 и SQL Server 2000
    SQL Server 2000 Personal Edition SQL Server 2000 Standard Edition SQL Server 2000 Enterprise Edition
    Windows 2000 Professional Ограниченные возможности Невозможное сочетание версий Невозможное сочетание версий
    Windows 2000 Server Ограниченные возможности Возможности сервера.

    Поддержка до 4 центральных процессоров и до 2 Гб памяти

    Возможности сервера.

    Поддержка до 4 центральных процессоров и до 4 Гб памяти

    Windows 2000 Advanced Server Ограниченные возможности Возможности сервера.

    Поддержка до 4 центральных процессоров и до 2 Гб памяти

    Возможности сервера.

    Кластеризация MSCS. Поддержка до 8 центральных процессоров и до 8 Гб памяти

    Windows 2000 Datacenter Ограниченные возможности Возможности сервера.

    Поддержка до 4 центральных процессоров и до 2 Гб памяти

    Возможности сервера.

    Кластеризация MSCS. Поддержка до 64 центральных процессоров и до 64 Гб памяти

    Как видите, у вас есть из чего выбрать. Следует тщательно обдумать выбор приобретаемых продуктов. Если вы поменяете свое решение уже после того, как инсталлируете систему, то вам придется начинать всю работу с самого начала.

    Системные настройки

    Кроме выбора версий SQL Server 2000 и Windows 2000 вы также можете воспользоваться еще некоторыми другими настройками. Эти настройки (опции) описаны ниже, они определяют применение кластеризации MSCS, репликацию SQL Server 2000 и обновляемые распределенные представления (эта новая возможность, появившаяся в SQL Server 2000 Enterprise Edition). Каждая из этих настроек имеет свои собственные возможности и требования и, следовательно, могут оказаться в вашей конфигурации полезными либо бесполезными. Мы расскажем об этом в нескольких абзацах ниже.

    MSCS

    Сокращение MSCS расшифровывается как Microsoft Cluster Services – "службы кластеризации Microsoft". Службы MSCS являются настройкой Windows 2000, работающей в сочетании с SQL Server. Благодаря MSCS компьютер может работать как резервный сервер (standby, failover server) для другого компьютера (сервер для перехода при отказе). Благодаря этому можно начинать процесс восстановления почти сразу же после случившегося аппаратного или даже программного отказа. Для MSCS требуется разделяемая дисковая подсистема, подключенная к обоим компьютерам кластера. Журнал транзакций SQL Server и файлы данных, а также исполняемые файлы должны размещаться на этой разделяемой дисковой подсистеме. В случае отказа, определяемого по отсутствию "сигнала пульса", резервный компьютер берет на себя функции SQL Server. Так как резервный компьютер захватывает себе IP-адрес и имя системы, то для внешнего мира он воспринимается просто как перезагрузившийся основной сервер базы данных.

    Примечание.При переходе на другой кластер в случае отказа, после того как случится отказ, потребуется восстановление системы, такое же, как и при внезапной перезагрузке любого компьютера. MSCS обеспечивает не отказоустойчивость, а лишь возможность для быстрого восстановления.

    Репликация SQL Server

    Репликация SQL Server позволяет копировать данные из одной базы данных SQL Server на другие системы баз данных. Имеются разные схемы репликации –моментальная (snapshot replication), транзакционная (transactional replication) и репликация слиянием (merge replication), они будут описаны в нескольких абзацах ниже. Какая из схем репликации лучше всего подойдет вам – зависит от ваших предпочтений и от ваших потребностей. Репликация SQL Server работает по модели "опубликовать-подписаться" (publish-and-subscribe model), в которой издатель (publisher) публикует данные, а один или несколько подписчиков (subscribers) получают копии этих данных.

    Моментальная репликация

    При моментальной репликации периодически создается "картинка", "снимок" (snapshot) данных и предоставление этих данных в пользование другим системам. Моментальная репликации выполняется только во время создания и применения "снимков", поэтому при обычной работе она не затруднит вас дополнительными заботами. Недостатком моментальной репликации является то, что "свежесть" данных определяется последним "снимком", а он может быть довольно старым.

    Транзакционная репликация

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

    Репликация слиянием

    Репликация слиянием отличается от транзакционной репликации и моментальной репликации тем, что обновления происходят и на компьютере-издателе, и на компьютерах-подписчиках. SQL Server применяет триггеры и метки времени (timestamps) для координации изменений между разными компьютерами, участвующими в репликации. Репликация слиянием полезна, когда требуется многонаправленная репликация, но по сравнению с транзакционной или моментальной репликацией она вызывает гораздо большую нагрузку.

    Обновляемые распределенные представления

    В SQL Server появились обновляемые распределенные представления (updatable distributed views). Благодаря этой возможности системы SQL Server могут разделять (использовать совместно) логическую базу данных, что повышает масштабируемость. Логическая база данных может стать большой, и вы можете разместить ее на многих компьютерах, это позволяет повысить ее мощность. (Об обновляемых распределенных представлениях см. лекцию 18.)

    Размещение базы данных

    Важной частью проектирования системы SQL Server является проектирование размещения базы данных (database layout). Под этим надо понимать физическое размещение журналов транзакций, файлов данных и т.д. Эта задача – одна из самых важных при проектировании системы, потому что изменить принятые ранее решения, относящиеся к размещению, будет очень сложно. В лекциях 5 и 6 будут даны советы о физическом размещении журнала транзакций и файлов данных.

    Журнал транзакций

    Журнал транзакций критически важен для работы, для стабильности и производительности сервера базы данных. У каждой базы данных имеется свой собственный журнал транзакций, поэтому каждый журнал транзакций должен быть правильно размещен. Журнал транзакций используется для записи изменений в базу данных, что позволяет восстановить систему в случае отказа. Так как восстановление опирается на журнал транзакций, важно, чтобы эта компонента базы данных была защищена от возможных сбоев при помощи RAID-устройств. Журнал транзакций должен оставаться доступным даже при выходе диска из строя.

    В дополнение к защите журнала транзакций от отказов дисков вам следует обеспечить размещение журнала транзакций на высокоскоростном устройстве. Если журнал транзакций будет размещен на слишком медленном устройстве, то транзакциям придется ждать, что сильно повлияет на производительность системы. Журнал транзакций должен быть также сконфигурирован так, чтобы обеспечивалась отказоустойчивость. Требования к размещению журнала транзакций рассмотрены подробно в следующей лекции.

    И наконец, нужно обеспечить достаточно места в журнале транзакций, чтобы система длительное время могла работать безостановочно. Когда журнал транзакций заполнится, обработка транзакций приостановится до тех пор, пока в журнале транзакций не появится свободное место. Место в журнале транзакций освобождается при резервном копировании журнала транзакций. Однако резервное копирование журнала транзакций может негативно повлиять на производительность. Некоторые администраторы баз данных предпочитают создавать достаточно большие журналы транзакций, чтобы было достаточно лишь одного резервного копирования в час или в день. Следует увеличивать размер журнала транзакций до такой степени, чтобы он мог применяться без резервного копирования не менее восьми часов.

    Файлы данных

    Проектирование размещения файлов данных полностью отличается от проектирования размещения журнала транзакций. В зависимости от способа доступа к данным, вы должны разместить их на как можно большем количестве дисков, распределяя нагрузку ввода-вывода по всем этим дискам. Этот процесс описан более подробно в следующей лекции.

    Вам следует увеличить размеры файлов данных так, чтобы было достаточно места, чтобы предусмотреть рост системы. Даже удивительно, насколько быстрым бывает иногда рост баз данных. При росте данных растут и индексы. Вам придется периодически проверять систему и выполнять работы по увеличению ее состава и планированию мощности.

    Поэтому, чтобы вы смогли правильно спланировать размещение файлов данных, нужно оценить объем требуемого для них места и необходимую производительность и затем создать нужное количество дисков, применяя RAID-подсистему. В зависимости от ваших конкретных потребностей, можно применять либо не применять средства для отказоустойчивости. После того как решение о подсистеме ввода-вывода будет принято, следует равномерно разместить файлы данных по контроллерам и дискам.

    Приложение

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

    Архитектура

    Основная архитектура приложения может принимать различные формы. Основные различия между архитектурами приложений состоят в количестве систем, участвующих в работе приложения. Эта классификация производится по количеству звеньев (tiers). Реклама многих наиболее популярных приложений основывается на количестве звеньев, которые могут в них содержаться.

    Сравнение архитектур

    Каждое приложение базы данных состоит из трех отдельных компонент:

  • Службы базы данных (database services). Это – конечный сервер базы данных и данные, которые размещены в этой базе данных.
  • Службы приложения (application services). Это – механизмы манипулирования данными, извлекаемыми из базы данных. Логика их работы определяется приложением или потребностями бизнеса.
  • Службы представления (presentation services). Это – пользовательский интерфейс. Службы представления должны быть способными манипулировать данными таким образом, чтобы это было понятно пользователям.
  • Различие между однозвенной, двухзвенной и трехзвенной архитектурами зависит от того, каким образом разделяются на части эти компоненты. В однозвенной архитектуре они все являются частями одной программы. В двухзвенной архитектуре эти компоненты разделены на две отдельные части. В трехзвенной архитектуре компоненты разделены на три отдельные части (см. рис. 4.1). В последующих разделах даны более подробные объяснения.

    (рис 4.1) Различия между однозвенной, двухзвенной и трехзвенной архитектурами

    Однозвенная архитектура

    Однозвенная (one-tier, single-tier) архитектура – это система, в которой все службы базы данных, приложения и представления (пользовательский интерфейс) размещены на одной системе. Системы такого типа не производят обработку вне тех компьютеров, на которых они исполняются. Примером однозвенной архитектуры может служить база данных Microsoft Аccess с локальными службами представления.

    В наше время трудно встретить действительно однозвенную архитектуру, особенно на платформе Windows 2000. Тем не менее многие небольшие однопользовательские приложения являются однозвенными. Примером этому могут служить Microsoft Money, Quicken и TurboTax. Такие приложения обычно размещаются на том же компьютере, на котором они и исполняются. Пример однозвенной архитектуры с SQL Server найти гораздо труднее. Фактически, даже если вы можете исполнять Enterprise Manager на той же системе, где размещена и база данных, но на самом деле такое приложение не является однозвенным, потому что данное приложение пользуется сетевыми компонентами SQL Server. Тот факт, что вы вот взяли и запустили его на той же системе, является несущественным.

    Двухзвенная архитектура

    В двухзвенных приложениях службы представления и база данных размещаются на разных системах (компьютерах). Уровень служб представления (пользовательский интерфейс) обычно включает в себя логику работы приложения. Хорошим примером двухуровневого приложения является приложение, использующее SQL Server Enterprise Manager. У таких приложений пользовательский интерфейс и логика работы приложения размещаются в Enterprise Manager, но все данные, необходимые для функционирования приложения, находятся в базе данных SQL Server на другом компьютере.

    Двухзвенные приложения встречаются чаще всего. Вы, наверное, уже работали со многими такими приложениями. Эти приложения обычно написаны на языках, поддерживающих API (интерфейсы прикладного программирования) для Windows, таких, как Microsoft Visual C++ или Visual Basic. При помощи двухзвенных приложений каждый пользователь может иметь одно или несколько соединений с базой данных SQL Server. Данная архитектура может стать неэффективной из-за того, что большинство этих соединений будут простаивать большую часть времени.

    Трехзвенная архитектура

    В трехзвенных приложениях уровень базы данных, уровень приложения и уровень служб представления выделены в три разные компоненты. В типичных трехзвенных приложениях используется промежуточный уровень для обслуживания многочисленных соединений от уровня служб представления, благодаря чему уменьшается количество соединений с SQL Server. Кроме того, этот промежуточный уровень может выполнять значительный объем работы, связанной с реализацией специфики целевых задач (логики предметной области), освобождая базу данных для решения тех задач, которые она выполняет лучше всего, – для доставки требуемых данных.

    На вопрос, к какой категории – с двухзвенной или с трехзвенной архитектурой – можно отнести веб-приложение, ответить сразу бывает трудно. Можно воспользоваться простой проверкой: если данные, отображаемые уровнем служб представления, могут с той же легкостью применять и терминал или веб-браузер, то данное приложение, скорее всего, является двухзвенным.

    Как вы могли убедиться, благодаря разделению компонент вы можете применять много компьютеров. Фактически, обычно системы начинаются с одного сервера базы данных, соединенного с несколькими серверами приложений, которые, в свою очередь, обслуживают много компьютеров-клиентов. Решения, принимаемые при проектировании системы, зависят от количества ее пользователей и выбранного вами приложения.

    Производительность и масштабируемость

    Когда вы разрабатываете приложение и схему базы данных, вам следует помнить о производительности и масштабируемости. На стадии проектирования приложения вы делаете выбор среди многих настроек, что может впоследствии повлиять на производительность и масштабируемость. Среди этих настроек имеются следующие:

  • Использование временных рабочих таблиц. Для небольших баз данных временные рабочие таблицы оказываются эффективными, но с увеличением размера базы данных они перестают работать правильно.
  • Использование агрегатных функций.Использование агрегатных функций (aggregate functions), таких как MIN( ), MAX( ) и AVG( ), сопоставимо с объемом используемых данных. Поэтому обратите внимание, чтобы ваш набор данных не стал со временем слишком громоздким.
  • Использование индексов. По мере роста объема данных, использование индексов становится более важным (см. лекцию 17).
  • Использование транзакций. Использование явных транзакций очень полезно, чтобы гарантировать атомарность операций. Однако, по мере роста числа одновременно работающих пользователей, важно ограничивать блокировки, насколько это окажется возможным.
  • Теперь вам понятно, что для проектирования системы, которая будет работать хорошо в условиях роста нагрузки, следует помнить о нескольких факторах. Применив методы оптимизации производительности еще на стадии проектирования, вы сможете создать масштабируемую систему.

    Заключение

    Как вы поняли из данной лекции, при проектировании системы SQL Server следует помнить о многих вещах. К сожалению, невозможно просто взять и рассказать о том, как следует проектировать системы баз данных. Даже если вы проектируете системы для многих фирм, результаты обычно получаются разными, потому что у каждой фирмы имеются свои нужды и требования.

    В данной лекции мы показали несколько ключевых моментов. Вы должны узнать требования вашей фирмы относительно расписания периодов работоспособности системы. Может быть, ваша система будет состоять из многих вычислительных центров, будет применять кластеризацию, подсистемы ввода-вывода с RAID-массивами или репликацию. Кроме того, на всю конструкцию системы окажут влияние требования, относящиеся к масштабируемости и производительности. Как вы поняли из данной лекции, здесь имеется множество вариантов настроек. Наконец, вы должны проектировать приложение, постоянно помня о производительности. Если вы сможете предвидеть вопросы, касающиеся производительности, то система не затормозится при росте объема данных и увеличении числа пользователей.

    В следующей лекции будут развиты многие темы, поднятые в данной главе. В лекции 5 вы также узнаете, как работает подсистема ввода-вывода, какие моменты, связанные с производительностью и отказоустойчивостью вы должны учитывать, и как оптимально спланировать и сконфигурировать подсистему ввода-вывода.

    Вернуться к учебному плану