Прежде чем начать устанавливать операционную систему и 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 ), DSS, ) и ). Эти функции имеют различные требования и могут применять совершенно разные типы приложений.
Особенностью систем оперативной обработки транзакций (OLTP) является одновременный оперативный доступ многих пользователей к данным. И что более важно, эти пользователи ждут отклика от системы. Системы OLTP могут иметь множество форм, среди которых следующие:
Все системы OLTP обладают одной общей особенностью – пользователь должен ждать от них ответа. Ваша задача – спроектировать систему, которая будет адекватно обслуживать запросы пользователей за предусмотренное время ответа.
Системы для пакетной обработки обычно не имеют пользователей, ожидающих завершения заданий, но, как правило, они ограничены временными рамками, в пределах которых задачи должны быть завершены. Например, ночная загрузка данных не может захватывать время утренних входов в систему.
Как вы видите, прежде чем проектировать сервер базы данных, важно понять, какие типы приложений должны будут поддерживаться системой. Не зная требований к системе, вы не сможете эффективно проектировать систему. Из дальнейшего материала данной лекции и всей книги вы поймете, что каждая система имеет свои собственные требования, свои особенности. Эти требования могут подсказать те или иные проектировочные решения, например, вы можете решать, сколько компьютеров нужно использовать и нужна ли вам распределенная обработка транзакций.
К наиболее важным факторам, влияющим на проектирование вашей системы, относятся требования к уровню обслуживания. Эти требования к уровню обслуживания обычно формулируются в соглашении об уровне обслуживания (SLA, service level agreement). Соглашения об уровне обслуживания заключаются между поставщиками обслуживания (
Например, если вы заключили с другой фирмой контракт о предоставлении услуг доступа к базам данных, то, скорее всего, у вас будет иметься соглашение об уровне обслуживания. Фактически, чаще всего такие соглашения об уровне обслуживания являются контрактами, исполнение которых обязательно по закону. В любом случае, в соглашении об уровне обслуживания будет дано описание уровня обслуживания, гарантируемого потребителям. Там также могут быть определены санкции за несоответствие требованиям к уровню обслуживания. Более подробно про соглашения об уровне обслуживания будет рассказано в лекции 6.
Если имеются гарантии на уровень обслуживания, то вы должны спроектировать систему таким образом, чтобы обеспечивать этот уровень производительности. Мы обсудим здесь некоторые моменты, влияющие на проектирование системы: производительность, мощность и обеспечение работоспособности в течение суток.
Одним из наиболее важных условий, включаемых в соглашения об уровне обслуживания, является спецификация минимально допустимой производительности системы. Типичное соглашение об уровне обслуживания содержит схему различных транзакций, поддерживаемых приложением, значение допустимого наихудшего времени обслуживания для 100 процентов транзакций и, необязательно, более строгие требования к допустимому наихудшему времени обслуживания для 95 или 90 процентов транзакций. Например, в соглашении об уровне обслуживания может быть сказано, что 90 процентов транзакций "добавить нового потребителя" должно завершаться за время не более двух секунд, и что любые такие транзакции должны завершаться не более чем за три секунды.
Поставщик обслуживания должен поддерживать данный уровень обслуживания, а иначе к нему могут быть применены санкции. Как администратор баз данных вы отвечаете за такое администрирование системы, при котором будут соблюдаться данные уровни обслуживания. Кроме того, вы должны предвидеть проблемы, которые могут начать появляться и, при необходимости, увеличивать мощность системы. Чтобы соответствовать этой ответственности, вы должны постоянно следить за системой и периодически проводить работы по повышению мощности системы.
Кроме требований к производительности, соглашения об уровне обслуживания, могут содержать также требования к мощности. Мощность системы классифицируется по различным категориям, таким как мощность места на дисках, мощность пользователей, мощность сетевых соединений и т.д. К числу ваших обязанностей относится и поддержание системы в таком состоянии, чтобы она не выходила за установленные рамки требований к мощности.
Чтобы поддерживать мощность системы, вы должны непрерывно следить за ней и предпринимать действия, когда есть признаки, что мощность подходит к своему пределу. Как вы увидите в лекции 6, некоторый объем места на дисках должен оставаться всегда, чтобы обеспечить пиковые нагрузки при работе. Если этот резервный буфер начинает использоваться часто, то нужно добавить в систему дополнительные ресурсы. Это верно и в отношении использования центрального процессора.
Кроме спецификаций с требованиями к производительности и к мощности, в соглашения об уровне обслуживания обычно включаются также и спецификации с требованиями к обеспечению работоспособности системы. В спецификациях на обеспечение работоспособности системы утверждается, что система должна быть доступна для пользователей в некоторые заранее определенные периоды времени. В соглашении об уровне обслуживания может быть указано, что система должна быть работоспособной в течение 99,9% времени семь дней в неделю, 52 недели в году, либо может быть сказано, что система должна быть работоспособной восемь часов в день, пять дней в неделю, это зависит от потребностей вашей фирмы. Вы отвечаете за разработку плана регулярного резервного копирования и восстановления, а также за планы восстановления после аварий (чрезвычайные планы), чтобы обеспечить работоспособность системы во время, заданное спецификацией об уровне обслуживания.
Теперь, когда вы имеете краткое представление о типах доступных приложений и требований к уровню обслуживания, вы можете принять решение о том, какое программное обеспечение следует установить на вашей системе. Вы можете выбрать одну из четырех версий Windows 2000 и одну из трех версий SQL Server 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 для настольных компьютеров. Как правило, компьютер под управлением Windows 2000 Professional сможет воспользоваться возможностями лишь клиентских компонент SQL Server 2000. Однако если вам понадобится запустить на этом компьютере SQL Server, то вы сможете инсталлировать SQL Server 2000 Personal Edition. Версия Personal Edition позволяет только локальный доступ к базе данных. Доступ с других компьютеров не разрешается.
Windows 2000 Server спроектирована как серверная операционная система. Это значит, что инсталлировав на компьютер Windows 2000 Server, вы позволите другим компьютерам осуществлять доступ к ресурсам этого компьютера. Windows 2000 Server поддерживает SQL Server 2000 Standard Edition. Windows 2000 Server не поддерживает компьютеры с более чем четырьмя центральными процессорами и более чем с 4 Гб оперативной памяти. SQL Server 2000 также позволяет удаленным клиентам осуществлять доступ к базе данных.
Windows 2000 Advanced Server также является серверной операционной системой. Как и для компьютеров под управлением Windows 2000 Server, компьютеры под управлением Windows 2000 Advanced Server позволяют другим компьютерам осуществлять доступ к их системным ресурсам, а также к SQL Server. В дополнение к возможностям Windows 2000 Server, Windows 2000 Advanced Server поддерживает до восьми центральных процессоров и до 8 Гб оперативной памяти. Если вы хотите пользоваться службами
Windows 2000 Datacenter – это "флагман" семейства операционных систем Windows 2000. Данная версия Windows 2000 поддерживает все компоненты, что и другие версии, а также может поддерживать до 64 центральных процессоров и до 64 Гб памяти. Поставки Windows 2000 Datacenter осуществляются только через поставщиков оборудования. Поставщики оборудования не только встраивают (интегрируют) Windows 2000 Datacenter в свое оборудование, но и обеспечивают наивысший
Вы можете выбирать не только среди версий 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.
| 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 Гб памяти |
Возможности сервера. Кластеризация |
| Windows 2000 Datacenter | Ограниченные возможности | Возможности сервера. Поддержка до 4 центральных процессоров и до 2 Гб памяти |
Возможности сервера. Кластеризация |
Как видите, у вас есть из чего выбрать. Следует тщательно обдумать выбор приобретаемых продуктов. Если вы поменяете свое решение уже после того, как инсталлируете систему, то вам придется начинать всю работу с самого начала.
Кроме выбора версий SQL Server 2000 и Windows 2000 вы также можете воспользоваться еще некоторыми другими настройками. Эти настройки (опции) описаны ниже, они определяют применение кластеризации
MSCS
Сокращение
Репликация SQL Server
Репликация SQL Server позволяет копировать данные из одной базы данных SQL Server на другие системы баз данных. Имеются разные схемы репликации –моментальная (
Моментальная репликация
При моментальной репликации периодически создается "картинка", "снимок" (
Транзакционная репликация
Транзакционная репликация начинается с моментальной репликации, но после этого производится непрерывное считывание журнала транзакций компьютера-издателя, и транзакции, применявшиеся к издателю, будут применены и к подписчику (подписчикам). Благодаря этому информация на подписчиках будет поддерживаться до некоторой степени "свежей". Конечно, все равно будет некоторая задержка между временем, когда транзакции поступают на компьютер-издатель и временем, когда транзакции применяются к подписчикам.
Репликация слиянием
Репликация слиянием отличается от транзакционной репликации и моментальной репликации тем, что обновления происходят и на компьютере-издателе, и на компьютерах-подписчиках. SQL Server применяет триггеры и метки времени (timestamps) для координации изменений между разными компьютерами, участвующими в репликации. Репликация слиянием полезна, когда требуется многонаправленная репликация, но по сравнению с транзакционной или моментальной репликацией она вызывает гораздо большую нагрузку.
В SQL Server появились обновляемые распределенные представления (updatable distributed views). Благодаря этой возможности системы SQL Server могут разделять (использовать совместно) логическую базу данных, что повышает масштабируемость. Логическая база данных может стать большой, и вы можете разместить ее на многих компьютерах, это позволяет повысить ее мощность. (Об обновляемых распределенных представлениях см. лекцию 18.)
Важной частью проектирования системы SQL Server является проектирование размещения базы данных (database layout). Под этим надо понимать физическое размещение журналов транзакций, файлов данных и т.д. Эта задача – одна из самых важных при проектировании системы, потому что изменить принятые ранее решения, относящиеся к размещению, будет очень сложно. В лекциях 5 и 6 будут даны советы о физическом размещении журнала транзакций и файлов данных.
Журнал транзакций критически важен для работы, для стабильности и производительности сервера базы данных. У каждой базы данных имеется свой собственный журнал транзакций, поэтому каждый журнал транзакций должен быть правильно размещен. Журнал транзакций используется для записи изменений в базу данных, что позволяет восстановить систему в случае отказа. Так как восстановление опирается на журнал транзакций, важно, чтобы эта компонента базы данных была защищена от возможных сбоев при помощи RAID-устройств. Журнал транзакций должен оставаться доступным даже при выходе диска из строя.
В дополнение к защите журнала транзакций от отказов дисков вам следует обеспечить размещение журнала транзакций на высокоскоростном устройстве. Если журнал транзакций будет размещен на слишком медленном устройстве, то транзакциям придется ждать, что сильно повлияет на производительность системы. Журнал транзакций должен быть также сконфигурирован так, чтобы обеспечивалась отказоустойчивость. Требования к размещению журнала транзакций рассмотрены подробно в следующей лекции.
И наконец, нужно обеспечить достаточно места в журнале транзакций, чтобы система длительное время могла работать безостановочно. Когда журнал транзакций заполнится, обработка транзакций приостановится до тех пор, пока в журнале транзакций не появится свободное место. Место в журнале транзакций освобождается при резервном копировании журнала транзакций. Однако резервное копирование журнала транзакций может негативно повлиять на производительность. Некоторые администраторы баз данных предпочитают создавать достаточно большие журналы транзакций, чтобы было достаточно лишь одного резервного копирования в час или в день. Следует увеличивать размер журнала транзакций до такой степени, чтобы он мог применяться без резервного копирования не менее восьми часов.
Проектирование размещения файлов данных полностью отличается от проектирования размещения журнала транзакций. В зависимости от способа доступа к данным, вы должны разместить их на как можно большем количестве дисков, распределяя нагрузку ввода-вывода по всем этим дискам. Этот процесс описан более подробно в следующей лекции.
Вам следует увеличить размеры файлов данных так, чтобы было достаточно места, чтобы предусмотреть рост системы. Даже удивительно, насколько быстрым бывает иногда рост баз данных. При росте данных растут и индексы. Вам придется периодически проверять систему и выполнять работы по увеличению ее состава и планированию мощности.
Поэтому, чтобы вы смогли правильно спланировать размещение файлов данных, нужно оценить объем требуемого для них места и необходимую производительность и затем создать нужное количество дисков, применяя RAID-подсистему. В зависимости от ваших конкретных потребностей, можно применять либо не применять средства для отказоустойчивости. После того как решение о
Приложение является главной частью вашей системы, оно должно быть спроектировано так, чтобы работать хорошо не только в данный момент, но и в будущем. В этом разделе мы расскажем, как нужно проектировать приложение с учетом производительности, масштабируемости и возможностей для роста.
Основная архитектура приложения может принимать различные формы. Основные различия между архитектурами приложений состоят в количестве систем, участвующих в работе приложения. Эта классификация производится по количеству звеньев (tiers). Реклама многих наиболее популярных приложений основывается на количестве звеньев, которые могут в них содержаться.
Каждое приложение базы данных состоит из трех отдельных компонент:
Различие между однозвенной, двухзвенной и
(рис 4.1) Различия между однозвенной, двухзвенной и трехзвенной архитектурамиОднозвенная (one-
В наше время трудно встретить действительно однозвенную архитектуру, особенно на платформе 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. Кроме того, этот промежуточный уровень может выполнять значительный объем работы, связанной с реализацией специфики целевых задач (логики предметной области), освобождая базу данных для решения тех задач, которые она выполняет лучше всего, – для доставки требуемых данных.
На вопрос, к какой категории – с двухзвенной или с трехзвенной архитектурой – можно отнести веб-приложение, ответить сразу бывает трудно. Можно воспользоваться простой проверкой: если данные, отображаемые уровнем служб представления, могут с той же легкостью применять и терминал или веб-браузер, то данное приложение, скорее всего, является двухзвенным.
Как вы могли убедиться, благодаря разделению компонент вы можете применять много компьютеров. Фактически, обычно системы начинаются с одного сервера базы данных, соединенного с несколькими серверами приложений, которые, в свою очередь, обслуживают много компьютеров-клиентов. Решения, принимаемые при проектировании системы, зависят от количества ее пользователей и выбранного вами приложения.
Когда вы разрабатываете приложение и схему базы данных, вам следует помнить о производительности и масштабируемости. На стадии проектирования приложения вы делаете выбор среди многих настроек, что может впоследствии повлиять на производительность и масштабируемость. Среди этих настроек имеются следующие:
MIN( ), MAX( ) и AVG( ), сопоставимо с объемом используемых данных. Поэтому обратите внимание, чтобы ваш набор данных не стал со временем слишком громоздким.Теперь вам понятно, что для проектирования системы, которая будет работать хорошо в условиях роста нагрузки, следует помнить о нескольких факторах. Применив методы оптимизации производительности еще на стадии проектирования, вы сможете создать масштабируемую систему.
Как вы поняли из данной лекции, при проектировании системы 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 ), DSS, ) и ). Эти функции имеют различные требования и могут применять совершенно разные типы приложений.
Особенностью систем оперативной обработки транзакций (OLTP) является одновременный оперативный доступ многих пользователей к данным. И что более важно, эти пользователи ждут отклика от системы. Системы OLTP могут иметь множество форм, среди которых следующие:
Все системы OLTP обладают одной общей особенностью – пользователь должен ждать от них ответа. Ваша задача – спроектировать систему, которая будет адекватно обслуживать запросы пользователей за предусмотренное время ответа.
Системы для пакетной обработки обычно не имеют пользователей, ожидающих завершения заданий, но, как правило, они ограничены временными рамками, в пределах которых задачи должны быть завершены. Например, ночная загрузка данных не может захватывать время утренних входов в систему.
Как вы видите, прежде чем проектировать сервер базы данных, важно понять, какие типы приложений должны будут поддерживаться системой. Не зная требований к системе, вы не сможете эффективно проектировать систему. Из дальнейшего материала данной лекции и всей книги вы поймете, что каждая система имеет свои собственные требования, свои особенности. Эти требования могут подсказать те или иные проектировочные решения, например, вы можете решать, сколько компьютеров нужно использовать и нужна ли вам распределенная обработка транзакций.
К наиболее важным факторам, влияющим на проектирование вашей системы, относятся требования к уровню обслуживания. Эти требования к уровню обслуживания обычно формулируются в соглашении об уровне обслуживания (SLA, service level agreement). Соглашения об уровне обслуживания заключаются между поставщиками обслуживания (
Например, если вы заключили с другой фирмой контракт о предоставлении услуг доступа к базам данных, то, скорее всего, у вас будет иметься соглашение об уровне обслуживания. Фактически, чаще всего такие соглашения об уровне обслуживания являются контрактами, исполнение которых обязательно по закону. В любом случае, в соглашении об уровне обслуживания будет дано описание уровня обслуживания, гарантируемого потребителям. Там также могут быть определены санкции за несоответствие требованиям к уровню обслуживания. Более подробно про соглашения об уровне обслуживания будет рассказано в лекции 6.
Если имеются гарантии на уровень обслуживания, то вы должны спроектировать систему таким образом, чтобы обеспечивать этот уровень производительности. Мы обсудим здесь некоторые моменты, влияющие на проектирование системы: производительность, мощность и обеспечение работоспособности в течение суток.
Одним из наиболее важных условий, включаемых в соглашения об уровне обслуживания, является спецификация минимально допустимой производительности системы. Типичное соглашение об уровне обслуживания содержит схему различных транзакций, поддерживаемых приложением, значение допустимого наихудшего времени обслуживания для 100 процентов транзакций и, необязательно, более строгие требования к допустимому наихудшему времени обслуживания для 95 или 90 процентов транзакций. Например, в соглашении об уровне обслуживания может быть сказано, что 90 процентов транзакций "добавить нового потребителя" должно завершаться за время не более двух секунд, и что любые такие транзакции должны завершаться не более чем за три секунды.
Поставщик обслуживания должен поддерживать данный уровень обслуживания, а иначе к нему могут быть применены санкции. Как администратор баз данных вы отвечаете за такое администрирование системы, при котором будут соблюдаться данные уровни обслуживания. Кроме того, вы должны предвидеть проблемы, которые могут начать появляться и, при необходимости, увеличивать мощность системы. Чтобы соответствовать этой ответственности, вы должны постоянно следить за системой и периодически проводить работы по повышению мощности системы.
Кроме требований к производительности, соглашения об уровне обслуживания, могут содержать также требования к мощности. Мощность системы классифицируется по различным категориям, таким как мощность места на дисках, мощность пользователей, мощность сетевых соединений и т.д. К числу ваших обязанностей относится и поддержание системы в таком состоянии, чтобы она не выходила за установленные рамки требований к мощности.
Чтобы поддерживать мощность системы, вы должны непрерывно следить за ней и предпринимать действия, когда есть признаки, что мощность подходит к своему пределу. Как вы увидите в лекции 6, некоторый объем места на дисках должен оставаться всегда, чтобы обеспечить пиковые нагрузки при работе. Если этот резервный буфер начинает использоваться часто, то нужно добавить в систему дополнительные ресурсы. Это верно и в отношении использования центрального процессора.
Кроме спецификаций с требованиями к производительности и к мощности, в соглашения об уровне обслуживания обычно включаются также и спецификации с требованиями к обеспечению работоспособности системы. В спецификациях на обеспечение работоспособности системы утверждается, что система должна быть доступна для пользователей в некоторые заранее определенные периоды времени. В соглашении об уровне обслуживания может быть указано, что система должна быть работоспособной в течение 99,9% времени семь дней в неделю, 52 недели в году, либо может быть сказано, что система должна быть работоспособной восемь часов в день, пять дней в неделю, это зависит от потребностей вашей фирмы. Вы отвечаете за разработку плана регулярного резервного копирования и восстановления, а также за планы восстановления после аварий (чрезвычайные планы), чтобы обеспечить работоспособность системы во время, заданное спецификацией об уровне обслуживания.
Теперь, когда вы имеете краткое представление о типах доступных приложений и требований к уровню обслуживания, вы можете принять решение о том, какое программное обеспечение следует установить на вашей системе. Вы можете выбрать одну из четырех версий Windows 2000 и одну из трех версий SQL Server 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 для настольных компьютеров. Как правило, компьютер под управлением Windows 2000 Professional сможет воспользоваться возможностями лишь клиентских компонент SQL Server 2000. Однако если вам понадобится запустить на этом компьютере SQL Server, то вы сможете инсталлировать SQL Server 2000 Personal Edition. Версия Personal Edition позволяет только локальный доступ к базе данных. Доступ с других компьютеров не разрешается.
Windows 2000 Server спроектирована как серверная операционная система. Это значит, что инсталлировав на компьютер Windows 2000 Server, вы позволите другим компьютерам осуществлять доступ к ресурсам этого компьютера. Windows 2000 Server поддерживает SQL Server 2000 Standard Edition. Windows 2000 Server не поддерживает компьютеры с более чем четырьмя центральными процессорами и более чем с 4 Гб оперативной памяти. SQL Server 2000 также позволяет удаленным клиентам осуществлять доступ к базе данных.
Windows 2000 Advanced Server также является серверной операционной системой. Как и для компьютеров под управлением Windows 2000 Server, компьютеры под управлением Windows 2000 Advanced Server позволяют другим компьютерам осуществлять доступ к их системным ресурсам, а также к SQL Server. В дополнение к возможностям Windows 2000 Server, Windows 2000 Advanced Server поддерживает до восьми центральных процессоров и до 8 Гб оперативной памяти. Если вы хотите пользоваться службами
Windows 2000 Datacenter – это "флагман" семейства операционных систем Windows 2000. Данная версия Windows 2000 поддерживает все компоненты, что и другие версии, а также может поддерживать до 64 центральных процессоров и до 64 Гб памяти. Поставки Windows 2000 Datacenter осуществляются только через поставщиков оборудования. Поставщики оборудования не только встраивают (интегрируют) Windows 2000 Datacenter в свое оборудование, но и обеспечивают наивысший
Вы можете выбирать не только среди версий 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.
| 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 Гб памяти |
Возможности сервера. Кластеризация |
| Windows 2000 Datacenter | Ограниченные возможности | Возможности сервера. Поддержка до 4 центральных процессоров и до 2 Гб памяти |
Возможности сервера. Кластеризация |
Как видите, у вас есть из чего выбрать. Следует тщательно обдумать выбор приобретаемых продуктов. Если вы поменяете свое решение уже после того, как инсталлируете систему, то вам придется начинать всю работу с самого начала.
Кроме выбора версий SQL Server 2000 и Windows 2000 вы также можете воспользоваться еще некоторыми другими настройками. Эти настройки (опции) описаны ниже, они определяют применение кластеризации
MSCS
Сокращение
Репликация SQL Server
Репликация SQL Server позволяет копировать данные из одной базы данных SQL Server на другие системы баз данных. Имеются разные схемы репликации –моментальная (
Моментальная репликация
При моментальной репликации периодически создается "картинка", "снимок" (
Транзакционная репликация
Транзакционная репликация начинается с моментальной репликации, но после этого производится непрерывное считывание журнала транзакций компьютера-издателя, и транзакции, применявшиеся к издателю, будут применены и к подписчику (подписчикам). Благодаря этому информация на подписчиках будет поддерживаться до некоторой степени "свежей". Конечно, все равно будет некоторая задержка между временем, когда транзакции поступают на компьютер-издатель и временем, когда транзакции применяются к подписчикам.
Репликация слиянием
Репликация слиянием отличается от транзакционной репликации и моментальной репликации тем, что обновления происходят и на компьютере-издателе, и на компьютерах-подписчиках. SQL Server применяет триггеры и метки времени (timestamps) для координации изменений между разными компьютерами, участвующими в репликации. Репликация слиянием полезна, когда требуется многонаправленная репликация, но по сравнению с транзакционной или моментальной репликацией она вызывает гораздо большую нагрузку.
В SQL Server появились обновляемые распределенные представления (updatable distributed views). Благодаря этой возможности системы SQL Server могут разделять (использовать совместно) логическую базу данных, что повышает масштабируемость. Логическая база данных может стать большой, и вы можете разместить ее на многих компьютерах, это позволяет повысить ее мощность. (Об обновляемых распределенных представлениях см. лекцию 18.)
Важной частью проектирования системы SQL Server является проектирование размещения базы данных (database layout). Под этим надо понимать физическое размещение журналов транзакций, файлов данных и т.д. Эта задача – одна из самых важных при проектировании системы, потому что изменить принятые ранее решения, относящиеся к размещению, будет очень сложно. В лекциях 5 и 6 будут даны советы о физическом размещении журнала транзакций и файлов данных.
Журнал транзакций критически важен для работы, для стабильности и производительности сервера базы данных. У каждой базы данных имеется свой собственный журнал транзакций, поэтому каждый журнал транзакций должен быть правильно размещен. Журнал транзакций используется для записи изменений в базу данных, что позволяет восстановить систему в случае отказа. Так как восстановление опирается на журнал транзакций, важно, чтобы эта компонента базы данных была защищена от возможных сбоев при помощи RAID-устройств. Журнал транзакций должен оставаться доступным даже при выходе диска из строя.
В дополнение к защите журнала транзакций от отказов дисков вам следует обеспечить размещение журнала транзакций на высокоскоростном устройстве. Если журнал транзакций будет размещен на слишком медленном устройстве, то транзакциям придется ждать, что сильно повлияет на производительность системы. Журнал транзакций должен быть также сконфигурирован так, чтобы обеспечивалась отказоустойчивость. Требования к размещению журнала транзакций рассмотрены подробно в следующей лекции.
И наконец, нужно обеспечить достаточно места в журнале транзакций, чтобы система длительное время могла работать безостановочно. Когда журнал транзакций заполнится, обработка транзакций приостановится до тех пор, пока в журнале транзакций не появится свободное место. Место в журнале транзакций освобождается при резервном копировании журнала транзакций. Однако резервное копирование журнала транзакций может негативно повлиять на производительность. Некоторые администраторы баз данных предпочитают создавать достаточно большие журналы транзакций, чтобы было достаточно лишь одного резервного копирования в час или в день. Следует увеличивать размер журнала транзакций до такой степени, чтобы он мог применяться без резервного копирования не менее восьми часов.
Проектирование размещения файлов данных полностью отличается от проектирования размещения журнала транзакций. В зависимости от способа доступа к данным, вы должны разместить их на как можно большем количестве дисков, распределяя нагрузку ввода-вывода по всем этим дискам. Этот процесс описан более подробно в следующей лекции.
Вам следует увеличить размеры файлов данных так, чтобы было достаточно места, чтобы предусмотреть рост системы. Даже удивительно, насколько быстрым бывает иногда рост баз данных. При росте данных растут и индексы. Вам придется периодически проверять систему и выполнять работы по увеличению ее состава и планированию мощности.
Поэтому, чтобы вы смогли правильно спланировать размещение файлов данных, нужно оценить объем требуемого для них места и необходимую производительность и затем создать нужное количество дисков, применяя RAID-подсистему. В зависимости от ваших конкретных потребностей, можно применять либо не применять средства для отказоустойчивости. После того как решение о
Приложение является главной частью вашей системы, оно должно быть спроектировано так, чтобы работать хорошо не только в данный момент, но и в будущем. В этом разделе мы расскажем, как нужно проектировать приложение с учетом производительности, масштабируемости и возможностей для роста.
Основная архитектура приложения может принимать различные формы. Основные различия между архитектурами приложений состоят в количестве систем, участвующих в работе приложения. Эта классификация производится по количеству звеньев (tiers). Реклама многих наиболее популярных приложений основывается на количестве звеньев, которые могут в них содержаться.
Каждое приложение базы данных состоит из трех отдельных компонент:
Различие между однозвенной, двухзвенной и
(рис 4.1) Различия между однозвенной, двухзвенной и трехзвенной архитектурамиОднозвенная (one-
В наше время трудно встретить действительно однозвенную архитектуру, особенно на платформе 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. Кроме того, этот промежуточный уровень может выполнять значительный объем работы, связанной с реализацией специфики целевых задач (логики предметной области), освобождая базу данных для решения тех задач, которые она выполняет лучше всего, – для доставки требуемых данных.
На вопрос, к какой категории – с двухзвенной или с трехзвенной архитектурой – можно отнести веб-приложение, ответить сразу бывает трудно. Можно воспользоваться простой проверкой: если данные, отображаемые уровнем служб представления, могут с той же легкостью применять и терминал или веб-браузер, то данное приложение, скорее всего, является двухзвенным.
Как вы могли убедиться, благодаря разделению компонент вы можете применять много компьютеров. Фактически, обычно системы начинаются с одного сервера базы данных, соединенного с несколькими серверами приложений, которые, в свою очередь, обслуживают много компьютеров-клиентов. Решения, принимаемые при проектировании системы, зависят от количества ее пользователей и выбранного вами приложения.
Когда вы разрабатываете приложение и схему базы данных, вам следует помнить о производительности и масштабируемости. На стадии проектирования приложения вы делаете выбор среди многих настроек, что может впоследствии повлиять на производительность и масштабируемость. Среди этих настроек имеются следующие:
MIN( ), MAX( ) и AVG( ), сопоставимо с объемом используемых данных. Поэтому обратите внимание, чтобы ваш набор данных не стал со временем слишком громоздким.Теперь вам понятно, что для проектирования системы, которая будет работать хорошо в условиях роста нагрузки, следует помнить о нескольких факторах. Применив методы оптимизации производительности еще на стадии проектирования, вы сможете создать масштабируемую систему.
Как вы поняли из данной лекции, при проектировании системы SQL Server следует помнить о многих вещах. К сожалению, невозможно просто взять и рассказать о том, как следует проектировать системы баз данных. Даже если вы проектируете системы для многих фирм, результаты обычно получаются разными, потому что у каждой фирмы имеются свои нужды и требования.
В данной лекции мы показали несколько ключевых моментов. Вы должны узнать требования вашей фирмы относительно расписания периодов работоспособности системы. Может быть, ваша система будет состоять из многих вычислительных центров, будет применять кластеризацию, подсистемы ввода-вывода с RAID-массивами или репликацию. Кроме того, на всю конструкцию системы окажут влияние требования, относящиеся к масштабируемости и производительности. Как вы поняли из данной лекции, здесь имеется множество вариантов настроек. Наконец, вы должны проектировать приложение, постоянно помня о производительности. Если вы сможете предвидеть вопросы, касающиеся производительности, то система не затормозится при росте объема данных и увеличении числа пользователей.
В следующей лекции будут развиты многие темы, поднятые в данной главе. В лекции 5 вы также узнаете, как работает подсистема ввода-вывода, какие моменты, связанные с производительностью и отказоустойчивостью вы должны учитывать, и как оптимально спланировать и сконфигурировать подсистему ввода-вывода.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.