Microsoft SQL Server
Д.Артемов, Microsoft
Подобно тому как Windows NT является базовой операционной системой, на которой работают
приложения BackOffice, Microsoft SQL Server для Windows NT является основным средством
обработки больших объемов информации в масштабе предприятия. Новая версия SQL Server
значительно расширена для повышения производительности СУБД, упрощения
администрирования, повышения надежности и скорости обработки данных.
Обзор продукта
Сейчас организации становятся все более динамичными. Это необходимо для быстрой реакции на
меняющиеся условия ведения бизнеса. Все более активно идет процесс децентрализации принятия
решений, а стремление повысить продуктивность принятия решений ведет к упрощению процедур
реализации различного рода идей. Для создания средств поддержки подобного рода изменений
организации обращаются к технологиям распределенной обработки информации. Эти технологии
позволяют размещать данные как можно ближе к пользователям, которым информация
необходима для принятия важных решений.
История развития SQL Server |
SQL Server 4.21a | | SQL Server 6.0 | | SQL Server следующие версии |
NT Server | NT Server | Cairo |
- Симметричная архитектура сервера (SMP)
- Графические средства администратора
- Унифицированная регистрация в сети
- Расширенные хранимые процедуры
- Интеграция с эл. почтой
- SQL Object Manager
- Service Manager
- RPC для доступа к БД
- Performance monitor
- ANSI89 Level 1
| |
- Тиражирование данных
- Параллельная обработка БД
- Сканирование, индексирование, создание и восстановление страховых копий, загрузка
- Поддержка очень больших БД
- Оптимизатор, опережающее чтение, управление блокировками
- Распределенное управление
- OLE automation
- ODBC курсоры
- Расширения языка
- ANSI92 (95.1)
- X/A (95.1)
| |
- Унифицированное хранение данных
- Параллельные запросы
- Distributed joins
- Доступ к данным OLE
- Проверка версий, блокировка на уровне записи
- Защита средствами Cairo, каталоги
- Пользовательские функции
- Интеграция с репозитарием объектов
|
Рис.1
Microsoft SQL Server 6.0 -специально разработана для удовлетворения требований, предъявляемых
системами распределенной обработки данных (таких как тиражирование данных, параллельная
обработка, поддержка больших баз данных (БД) на относительно недорогих аппаратных
платформах, сохраняющая простоту управления и использования). Сервер имеет средства
удаленного администрирования и управления операциями, организованные на базе объектно-
ориентированной распределенной среды управления. Новые возможности, такие как OLE
Automation и средства программирования административных задач на языке Visual Basic for
Applications, обеспечивают интеграцию с приложениями, работающими на ПК. По-прежнему
Microsoft уделяет очень большое внимание соответствию своих продуктов существующим
промышленным стандартам, что отразилось в расширенной поддержке ANSI SQL и ODBC.
Microsoft SQL Server 6.0 входит в состав семейства Microsoft BackOffice, объединяющего пять
серверных приложений, разработанных для совместного функционирования в качестве
интегрированной системы. Она позволяет пользователям повысить производительность процесса
принятия решений средствами систем, базирующихся на архитектуре клиент-сервер. Кроме того,
Microsoft SQL Server 6.0 завершает линию средств разработки, включающих Microsoft Access,
Visual FoxPro®, Visual Basic и Visual C++.
Активное администрирование и объектный интерфейс SQL
Server
Централизованное управление распределенными
серверами
Центральная административная консоль SQL Server 6.0 заменила собой набор утилит, которые
существовали в предыдущей версии сервера. Из этой консоли, называемой Microsoft SQL
Enterprise Manager, администратор способен выполнять любые действия по администрированию
системы, как бы велика она ни была. На рис. 2 хорошо видны
несколько групп серверов.
Рис. 2. Административная консоль SQL Server
Администратор может создавать новые группы, группировать серверы удобным с
административной точки зрения образом, выполнять манипуляции над объектами (базами данных,
таблицами, хранимыми процедурами, триггерами и т.д.).
К сожалению, когда принимается решение о выборе мощной СУБД масштаба предприятия, из
внимания специалистов, принимающих это решение, часто ускользает то обстоятельство, что ПО
подобного класса обязательно должно включать развитые средства администрирования. В
крупных информационных системах СУБД выполняет не только функции "мясорубки" по
перемалыванию колоссальных объемов информации, но и сложные функции
администрирования.
Microsoft SQL Server 6.0 предлагает "активную" модель администрирования системы. В отличие от
предыдущей версии продукта, администратор получил в свое распоряжение средства,
позволяющие предупреждать неблагоприятное развитие событий вместо того, чтобы, сломя
голову, кидаться исправлять последствия сбоя системы, когда пользователи уже не имеют доступа
к хранящейся в ней информации. SQL Server 6.0 позволяет определять так называемые
предупреждения (alert), которые являются реакцией системы на возникновение того или иного
события.
Как видно из рис.3 , предупреждение срабатывает при возникновении
ошибки с кодом 018 в базе данных master.
Рис.3. Диалог описания предупреждения
Привязка предупреждения к конкретной базе данных дает возможность назначать различную
реакцию системы на события в различных базах данных. Помимо встроенных кодов ошибок
предупреждение может реагировать на пользовательские ошибки, определяемые в коде хранимых
процедур и триггеров. При необходимости может быть вызвана на исполнение описанная
предварительно задача и послано сообщение администратору по электронной почте или на
пейджер.
Конечно, неплохо на каждый "чих" вызывать администратора, но как быть организациям с
разветвленной структурой, не имеющим возможности закрепить за каждым сервером специалиста
высокой квалификации? Что делать, если проблема возникла вечером, в выходные? К счастью,
активная модель администрирования SQL Server очень хорошо проявляет себя именно в таких
сложных ситуациях.
Мы уже упоминали, что к предупреждению можно привязать ту или иную задачу. Задача может
представлять собой:
- команду операционной системы, .CMD или .EXE файл;
- команду процесса тиражирования;
- команду чтения журнала;
- команду процесса синхронизации процесса тиражирования;
- выражение языка Transact-SQL (в том числе имя хранимой процедуры).
В результате, прежде чем выдергивать администратора среди ночи из теплой постели, система в
состоянии сделать попытку самостоятельно решить возникшую проблему (конечно, если
администратор заранее подготовил ее к этому). И только в том случае, если задача после
выполнения сообщает о невозможности решения возникшей проблемы, имеет смысл прибегать к
помощи человека. Каждой задаче можно назначить вызов администратора по электронной почте
или пейджеру при успешном завершении или провале.(Рис.4)
Рис.4. Диалог описания задачи
Теперь давайте рассмотрим сценарий, по которому могут развиваться события. Ночью произошел
сбой в электросети. Источник бесперебойного питания выработал свой ресурс, потом выполнил
ShutDown сервера, и система прекратила работу. Со временем электропитание было
восстановлено, и компьютер снова включился. Не секрет, что Windows NT способна выполнять
автоматическую, без участия человека, регистрацию в сети. В силу того, что SQL Server и SQL
Executive представляют собой сервисы операционной системы, им можно назначить атрибут
"стартовать автоматически". SQL Server стартовал, и на исполнение была запущена хранимая
процедура, которая также имеет атрибут "автостарт". Такая процедура может, например,
выполнить проверку целостности базы данных. Если проверка прошла успешно, система
продолжает работу в штатном режиме. Если проверка показала, что система неработоспособна,
можно пойти как минимум двумя путями: хранимая процедура генерирует ошибку, вызывающую
предупреждение, которое, в свою очередь, вызывает на выполнение задачу. Можно сразу поднять
тревогу и вызвать администратора.
Но электронная почта пригодна не только для того, чтобы поднимать тревогу, она может
использоваться и для штатной работы. SQL Server 6.0 умеет читать почту и отвечать на письма. В
том случае, когда задержки на прохождение электронного письма не критичны для работы,
пользователь или администратор могут использовать почту для посылки запросов серверу и
получения от него ответа. Это позволяет обращаться к серверу в режиме Off-line практически с
любого компьютера (как известно, клиентское приложение одной из наиболее популярных в
России коммуникационных сетей - Релком - прекрасно работает даже на машинах с процессором
286).
Использование электронной почты для доступа к
ресурсам сервера
Набор расширенных хранимых процедур SQL Server включает процедуры работы с почтовыми
ящиками. Сервер может получить указание прочесть текущую почту и обработать ее (лучше всего
это задание оформить как периодически выполняемую задачу). В сообщении размещается вызов
хранимой процедуры или набор команд T-SQL. Сервер читает текст сообщения и выполняет
размещенные в нем команды. Результат исполнения присоединяется к письму, посылаемому в
ответ, в виде текстового файла или файла в формате CSV (поля, разделенные запятыми), который
можно непосредственно "взять" в электронную таблицу или импортировать в базу данных.
Естественно, возникает вопрос о предохранении данных от несанкционированного доступа.
Ограничение числа лиц, которые могут получать таким образом информацию, может быть
организовано различным образом, и тут необходимо позаботиться о защите доступа как со
стороны SQL Server, так и со стороны ПО, занимающегося отправкой почты. Для каждого
пользователя, который посылает запросы на сервер, можно завести соответствующий набор прав,
которые смогут эффективно ограничить диапазон действий, позволительных для него.
Как видно из рисунка, каждому пользователю, зарегистрированному на сервере, можно назначать
самые разнообразные права - от права делать выборки из тех или иных таблиц и исполнения
хранимых процедур до права на модификации или выборки из конкретного поля конкретной
таблицы.
SQL Server способен "понять", кто пишет письмо. Можно также ограничить обрабатываемую
почту только письмами, которые имеют определенный текст в разделе Subject. Все это вместе
взятое позволяет утверждать, что если в организации четко соблюдается дисциплина хранения и
назначения паролей, то риск несанкционированного доступа к конфиденциальной информации
может быть сведен до минимума. Кроме того, на электронную почту можно возложить
обязанности по получению/передаче только безобидной информации, доступ к которой не
нуждается в серьезной защите.
Microsoft SQL Server Distributed Management Framework (SQL-
DMF)
С появлением SQL Server 6.0 Microsoft предложил на рынке сервер с масштабируемой
архитектурой управления, наиболее оптимальным образом подходящей к быстро меняющимся
задачам, которые встают перед системами архитектуры клиент-сервер. Microsoft SQL Server
Distributed Management Framework (SQL-DMF) имеет трехуровневую объектно- ориентированную
архитектуру, которая предоставляет компоненты, сервисы и инструментарий, необходимые для
управления распределенными серверами в масштабе предприятия.(Рис.5)
Рис.5. Диалог определения прав доступа
Уровень
| Компоненты SQL Server 6.0 DMF |
Уровень 1
Представление/Манипуляция
| Средство администрирования SQL Enterprise Manager,
программирование на Visual Basic или Visual FoxPro |
Уровень 2 Объекты управления
| OLE интерфейс для доступа ко всем средствам
администрирования и управления SQL Server |
Уровень 3
Реализация/Обработка
| Процессор данных SQL Server, сервисы SQL Executive |
Архитектура SQL-DMF изначально предназначена для работы в распределенных средах и
предоставляет необходимую гибкость и масштабируемость за счет разделения процесса
администрирования на три четко определенных уровня:
Преимущества SQL-DMF
- упрощает процесс управления распределенными серверами за счет
предоставления современного пользовательского интерфейса
административной консоли для всех задач управления и интеграции
компонентов управления и инструментов администратора, а также сервисов
внутри основного продукта;
- предоставляет масштабируемую среду управления, которая может быть
адаптирована к конкретным потребностям малых и крупных заказчиков.
Разработчики могут расширить набор стандартных инструментов за счет
встроенных OLE объектов управления и поддержки средств визуальной
разработки;
- делает удаленные серверы более самостоятельными с точки зрения
управления средствами сервисов, взаимодействующих с процессором данных
сервера (диспетчирование, события/предупреждения, тиражирование). Они
могут быть запрограммированы для выполнения административных задач без
участия человека;
- предоставляет администраторам баз данных инструментарий,
позволяющий перейти от защитной к активной модели администрирования с
использованием развитой модели обработки событий/предупреждений для
назначения корректирующих действий при возникновении определенного рода
проблем или условий (например, переполнение журнала), вызываемых через
триггеры или предупреждения.
SQL Executive
Основой SQL-DMF является SQL Executive, исполняемый как сервис операционной системы и
управляющий тиражированием, обработкой событий, предупреждений и диспетчированием
работы компонентов внутри SQL-DMF. SQL Executive работает как "скрытый" оператор или
"интеллектуальный агент", автоматически и постоянно отслеживающий состояние окружения
сервера и любых распределенных служб SQL Server. Разработчики сервера убеждены, что
критические службы, такие как тиражирование, должны быть частью основного продукта, а не
просто "утилитами".
SQL Enterprize Manager | OLE Automation |
| |
SQL Server Distributed Manadgement Object (SQL-DMO) |
| |
SQL Executive | SQL Server |
- Тиражирование
- Менеджер задач
- Менеджер событий
- Менеджер уведомлений
|
Рис.6. Компоненты SQL-DMF
Ранее существовавшие подходы к системному администрированию приводили к запоздалой
реакции на сбой системы, а администратору отводилась роль "пожарного". С другой стороны,
обработчик событий SQL Executive изначально проектировался для поддержки активной модели
администрирования, позволяющей администратору определять предупреждения и проводить
корректирующие операции до возникновения проблемы. Кроме того, администратор может
заранее определить уведомления, которые будут рассылаться по электронной почте или на
пейджер.
SQL Executive работает как сервис операционной системы и при необходимости может быть
запущен автоматически для загрузки списка задач, хранящегося в таблице SQL Server.
SQL Server Distributed Management Objects (DMO)
Другим исключительно важным компонентом являются SQL Server Distributed Management Objects
(SQL-DMO). SQL-DMO - OLE Automation интерфейс SQL Server 6.0 открывает объекты, свойства
и методы для всех аспектов деятельности SQL Server по управлению и администрированию SQL
Server. Объектная модель SQL Server включает более 70 индивидуальных объектов и свыше 1500
свойств и методов. Организация объектов значительно упрощает изучение и продуктивное
использование компонентов административного интерфейса SQL Server.
OLE интерфейс поддерживает использование таких средств разработчика, как Visual C++, Visual
Basic и Visual FoxPro для создания специализированных административных сценариев, исполнение
которых организуется средствами диспетчирования SQL Executive. Справа приведены некоторые
из объектов и методов SQL-DMO.
Все функции SQL Server открыты для доступа извне как объекты, свойства и методы. Подобная
модель значительно упрощает работу с административным "слоем" за счет организации функций
управления в терминах объектной модели SQL Server. Основной объект - "SQL Server" - включает
коллекцию объектов "Databases". Объект "Database" включает коллекции объектов "Table",
"View" и "StoredProcedure". Объекты имеют свойства (например, SQLServer.Name =
"SABERTOOTH") и методы (SQLServer.Start или SQLServer.Stop). Свойства и методы
используются для управления SQL Server.
Метод объекта
| Действие |
SQLServer.Stop
| Останавливает SQL Server |
SQLServer.Start
| Запускает SQL Server |
Database.Backup
| Выполняет создание страховочной копии |
Index.UpdateStatistics
| Обновляет информацию оптимизатора по индексам |
Database.Table.Add | Добавляет таблицу к базе данных |
OLE Automation: написание сценариев на Visual Basic/Visual
FoxPro
Мощь административного OLE интерфейса SQL Server становится очевидной, если учитывать
возможность использования языка программирования средств разработчика Microsoft (таких как
Visual Basic или Visual FoxPro) для написания сценариев выполнения административных задач.
Ниже приведен пример кода, используемого для получения служебной информации с SQL
Server.
SQL Enterprise Manager
Как уже говорилось ранее, SQL Server имеет развитый графический административный интерфейс
- SQL Enterprise Manager, - способный обеспечить потребности администратора в
централизованном управлении многими серверами в организации. Административная консоль
использует объекты SQL-DMO для управления всеми аспектами функционирования SQL Server. В
задачи администратора входит администрирование топологии, защиты, событий/предупреждений,
диспетчирование, создание страховочных копий баз данных, конфигурирование и настройка
серверов и тиражирования. SQL Enterprise Manager может также использоваться для создания,
модификации и копирования схем баз данных и таких объектов, как образы и триггеры. Этот
инструмент позволяет охватить всю топологию системы из любого места в сети.
Архитектура SQL-DMF предлагает множество "точек входа" для поддержания конкретных
потребностей администратора. В результате серверы могут управляться посредством доступа к
объектам SQL-DMO или непосредственно. Мы полагаем, что подобная архитектура создает
гибкую среду администрирования, удовлетворяющую требованиям администраторов как мелких,
так и крупных систем, без необходимости принесения в жертву простоты или
мощности.
Рис.7. Структура объектной модели SQL Server
Системы архитектуры клиент-сервер предлагают много новых задач, требующих нового подхода.
Мощные серверы баз данных должны адаптироваться к растущим требованиям динамичной и все
более усложняющейся работы в распределенных средах. SQL Server 6.0, снабженный развитой
средой администрирования распределенных систем, удовлетворяет этим требованиям.
Расширенные возможности масштабирования и высокая
производительность
Особое внимание, которое было уделено повышению производительности СУБД, позволило
повысить скорость выполнения некоторых операций почти на 400% на многопроцессорных
компьютерах. Это достигается активным использованием многопроцеcсорной архитектуры
компьютера и многопоточной архитектуры операционной системы. Среди операций,
выполняющихся параллельно, можно назвать сканирование таблиц, загрузку,
создание/восстановление страховочной копии. Все это позволяет обеспечить
высокопроизводительную работу с большими и очень большими базами данных.
Поддержка очень больших баз данных и съемных
носителей
Для версии 4.21а очень большой считалась база данных размером 10-15 Гб (хотя некоторые
организации, например, Sprint, работали с базами данных размером 60 Гб и более).
Высокоскоростная параллельная обработка делает возможной поддержку работы с базами данных
размером 100 Гб и более на соответствующим образом конфигурированных системах. Не только
процесс создания страховочных копий выполняется быстрее, но и такие операции, как проверка
целостности базы данных (выполняется командой DBCC), сильно выигрывают от использования
параллельного сканирования и увеличенных блоков ввода/вывода. Возможность сохранения в
страховочной копии (восстановления из копии) индивидуальных таблиц позволяет сократить
время, необходимое на сохранение (восстановление) отдельных таблиц базы данных. Поддержка
распространения баз данных на съемных носителях (таких как CD-ROM) позволяет выпускать
различного рода справочники или информационные материалы. Интересно отметить, что
гибкость SQL Server проявляется и при работе с очень маленькими объемами информации. Так,
для того чтобы базу данных можно было сохранить на дискете, ее минимальный размер снижен до
1 Мб.
Расширение возможностей языка и программного
доступа
Существующая версия SQL Server снабжена мощным языком программирования -Transact-SQL,
позволяющим создавать сложную логику триггеров и хранимых процедур. В новой версии язык
значительно расширен, теперь он соответствует стандарту ANSI-92, и программисты получили
новые возможности (такие как новые, соответствующие ANSI-стандарту, типы данных и
соответствующая стандарту ANSI поддержка декларативной целостности данных). Помимо
перечисленных возможностей, программист может воспользоваться генератором, автоматически
создающим уникальные значения для ключевых полей таблицы, возможностью передавать
идентификаторы и данные типа TEXT и IMAGE как параметры хранимым процедурам и многое
другое. Использование хранимых процедур, которые запускаются автоматически при каждом
старте SQL Server, позволяет создавать системы, способные выполнять различного рода задания
без участия администратора. Наиболее же интересным нововведением являются скроллируемые,
двунаправленные курсоры. Курсоры SQL Server поддерживают все режимы, определенные
расширенными требованиями ANSI, а также и ODBC семантику; они совместимы с
существующими курсорами, поддерживаемыми API в DB-Library.
Производительность и масштабируемость
Microsoft SQL Server 6.0 имеет параллельную архитектуру, интенсивно использующую
многопоточность операционной системы для обеспечения высокой производительности и
масштабируемости на многопроцессорных системах. Все управление задачами SQL Server
организовано вытесняющим для повышения надежности и изолирования возможных сбоев. За счет
динамического распределения нагрузки на процессоры SQL Server достигает автоматической
балансировки загрузки всех ЦП компьютера. Microsoft называет это "симметричной архитектурой
сервера".
Преимущества симметричной архитектуры Microsoft SQL Server
6.0
Симметричная архитектура Microsoft SQL Server предоставляет следующие преимущества:
- снижает сложность системы
SQL Server не дублирует службы операционной системы (такие как диспетчирование,
распределение памяти, управление очередями), что делает архитектуру системы более эффективной
и стабильной;
- повышает производительность
SQL Server способен обеспечить высокую скорость выполнения транзакций и обладает высокой
пропускной способностью на микропроцессорных системах, даже при одновременной работе сотен
пользователей;
- адаптируется к росту нагрузки
Нагрузка на SQL Server динамически распределяется по нескольким ЦП, что повышает
масштабируемость на симметричных многопроцессорных системах.
Задачи пользователя исполняются в самостоятельных потоках, и при необходимости одна задача
принудительно завершается, не оказывая влияния на выполнение остальных. Например, SQL
Server способен прервать "спящий" процесс без того, чтобы это оказало влияние на работу всей
системы. Ни одна задача не может "выйти из-под контроля".
Усовершенствования, связанные с параллельной обработкой
данных в SQL Server 6.0
У SQL Server 6.0 Microsoft еще более расширила возможности параллельной обработки
симметричной архитектуры сервера. За счет параллельного выполнения широкого диапазона
внутренних функций СУБД с использованием множественных потоков операционной системы при
работе на многопроцесорных системах резко возрастает производительность и масштабируемость
многих операций (таких как определенные типы запросов, сканирование таблиц, создание
индексов, создание/восстановление страховочных копий, проверка целостности базы данных и
т.д.).
Высокоскоростное создание/восстановление
страховочных копий
Создание/восстановление страховочных
копий теперь может выполняться почти на порядок быстрее за счет использования одновременно
до 32 устройств (диски или стриммеры), на которых создается страховочная копия базы данных.
Специалистами Microsoft была достигнута производительность копирования более 20 Гб/час. Это
означает, что при работе с большими и очень большими БД страховочная копия может быть
создана в нерабочие часы. Теперь же использование новых возможностей SQL Server позволяет
работать с базами данных 100 Гб и выше на соответствующим образом конфигурированных
компьютерных системах. Это отвечает требованиям организаций, устанавливающих большие базы
данных на относительно дешевых компьютерных системах.
Параллельное сканирование и асинхронное опережающее
чтение
Параллельное сканирование и асинхронное опережающее чтение повышает на 40 - 400% скорость
выполнения некоторых типов запросов и других операций над базой данных в многопроцессорных
системах. Повышение производительности достигается за счет использования SQL Server 6.0
множественных потоков операционной системы и алгоритмов определения следующего блока
данных, необходимых для вывода в кэш. На приводимом графике показано, как растет время,
необходимое для считывания с диска более 10000 страниц из базы данных (меньшие числа
показывают более высокую производительность). Эта операция типична для длительного запроса
с вычислениями или операции создания отчета. Как видно из графика, по мере роста числа
клиентов, SQL Server 6.0 выполняет операцию не менее чем в 4 раза быстрее за счет использования
параллельного сканирования таблиц и асинхронного опережающего чтения.
Подобная технология обеспечивает резкое повышение производительности для любой операции,
требующей просмотра таблиц, например, SELECT, UPDATE и DELETE с необходимостью
поиска, CREATE INDEX, DBCC, DUMP/LOAD и т.п.
Параллельная загрузка
При работе с новой версией SQL Server можно запускать несколько параллельно работающих
копий BCP или SQL Enterprise Manager и выполнять параллельные перекрывающиеся операции
загрузки данных в SQL Server. Подобные возможности оказываются особенно полезными при
необходимости массивного копирования данных в ограниченные сроки.
Тиражирование данных
Одной из наиболее интересных новых возможностей SQL Server 6.0 является тиражирование
данных.
В силу того, что продукт изначально создавался для работы с распределенными данными, СУБД
снабжена надежной и открытой архитектурой, хорошо интегрированной, гибкой и
управляемой.(Рис.8)
Рис.8. Организация тиражирования данных
Организация тиражирования данных в SQL Server
6.0:
- Система тиражирования данных построена на метафоре подписки. В
процессе тиражирования участвуют следующие серверы сервер публикаций;
- сервер репликаций;
- сервер подписки.
Под публикацией понимается совокупность данных, которые могут подвергаться
тиражированию.
Статья - наименьший возможный элемент публикации. Статья может представлять собой таблицу
или любую ее часть. Публикация может включать одну или более статей.
Наиболее важным требованием к тиражированию данных является устойчивость к сбоям,
гарантирующая постоянное, надежное поступление данных и способная противостоять
возможным сбоям сети и оборудования. Система тиражирования должна обеспечивать высокое
быстродействие операций сохранения и переноса данных с минимальным воздействием на
центральный сервер и гарантией надежного и защищенного поступления информации. Она должна
быть достаточно гибкой, чтобы позволять организациям применять различные подходы и схемы
организации процесса тиражирования. Кроме того, поскольку организации не всегда могут себе
позволить иметь высококвалифицированного администратора в каждом подразделении, где
размещен конкретный сервер, система тиражирования должна быть хорошо интегрирована с
самой СУБД для получения возможности удаленного конфигурирования, мониторинга и
управления.
Microsoft создавала SQL Server 6.0 с учетом всех перечисленных требований. Подсистема
тиражирования данных, являющаяся составной частью SQL Server, позволяет осуществлять
автоматическое тиражирование транзакций и объектов базы данных с единого сервера на один
или более серверов, расположенных в географически разделенных подразделениях компании. SQL
Server 6.0 обладает следующими основными характеристиками:
- Высокая производительность.
Архитектура системы тиражирования
данных SQL Server обеспечивает высокую производительность с
минимальными задержками на сервере публикаций;
- Надежная, защищенная передача информации.
SQL Server 6.0
гарантирует целостность транзакций тиражируемых данных средствами
автоматической ресинхронизации и восстановления после сбоев. SQL Server
поддерживает новые расширения ANSI SQL Server, позволяющие описывать
принципы отбора/приема информации на уровне языка определения данных.
Кроме того, дополнительное шифрование данных при передаче по сети
гарантирует высокую защищенность тиражируемых данных от
несанкционированного доступа;
- Гибкая реализация.
SQL Server поддерживает несколько различных
моделей асинхронной репликации как с диспетчированием процесса, так и
непрерывных: тиражирование по журналу, тиражирование статических данных
(snapshot) и перемещение объектов. Богатство моделей тиражирования
позволяет организациям реализовывать различные подходы, стратегии
тиражирования и конфигурации сети. Помимо тиражирования транзакций и
пользовательских данных, SQL Server позволяет автоматизировать
тиражирование объектов баз данных (таких как хранимые процедуры), что
облегчает сопровождение систем, функционирующих в распределенных
средах;
- Простота сопровождения и установки.
Так, Microsoft реализовала в
SQL Server встроенные средства тиражирования данных, что снижает
сложность управления и позволяет использовать технологию Drag and Drop
для удаленного конфигурирования, управления и мониторинга. Система
тиражирования реализована на интуитивно понятной метафоре "издатель -
подписчик";
- Расширяемость.
Пользователи создают базы данных самого
разного типа, и Microsoft построила тиражирование данных вокруг стандартных
интерфейсов взаимодействия (таких как ODBC), что в будущем позволит
поддерживать тиражирование в неоднородных базах данных, включая и базы
данных, созданные средствами приложений для ПК.
Графические средства конфигурирования и
администрирования
Конфигурирование и управление процессом тиражирования данных на уровне предприятия
обычно представляет собой сложную и требующую больших затрат времени задачу. В SQL Server
6.0 эта задача выполняется с помощью развитых графических инструментов административного
управления и, таким образом, резко упрощается. Администраторы могут определить все аспекты
процесса создания тиражируемых данных, диспетчирования процессов, установки подписки и
полностью контролировать защищенность тиражируемых данных. Для каждой публикации можно
определить записи или столбцы, входящие в публикацию, и то, какие подписчики имеют право
обращения к каким публикациям. В каждой публикации администратор имеет полный контроль
над доступом к ее данным.
Управление публикациями и статьями в них
После того как база данных открывается для публикации (это видно по соответствующей
пиктограмме в диалоговом окне среды администрирования), администратор определяет, какие
таблицы или/и части таблиц подлежат тиражированию. Организация
тиражирования данных SQL Server обеспечивает высокую гибкость и позволяет точно
указать, какие элементы базы данных получает тот или иной подписчик.(Рис.9,10)
Рис.9. Диалог настройки тиражирования
Рис.10. Схема тиражирования
- Выборочная подписка.
Сервер подписки может не подписываться
вообще, подписаться на некоторые или на все публикации, предлагаемые
сервером публикаций вашего предприятия.
- Выборочная подписка на статьи публикаций.
Сервер подписки
может подписаться на все или некоторые статьи внутри публикации.
- Защита публикаций.
Каждая публикация имеет статус защищенной
или незащищенной (по умолчанию принимается отсутствие защиты). Если
публикация помечена как незащищенная, то она видна любому и на нее может
подписаться любой зарегистрированный сервер. В том случае если публикация
помечена как защищенная, она видна только тем серверам подписки, которым
дано такое право, и только они могут на нее подписаться.
- Публикация вертикальных элементов таблицы.
При
необходимости статья публикации может быть определена как набор столбцов
той или иной таблицы. При этом необходимо учесть, что среди этих столбцов
обязательно должны присутствовать те, что определяют первичный индекс.
- Публикация горизонтальных элементов таблицы.
Статья также
может включать только некоторые записи таблицы. В этом случае сервер
подписки получает только набор записей. (Кроме того, статья может включать
"прямоугольную вырезку", ограниченную набором столбцов и набором
записей.)
- SQL Server 6.0 предоставляет исключительную гибкость в организации
топологии системы тиражирования данных. Базовые структуры тиражирования
включают следующие схемы:
- один сервер публикаций, несколько серверов подписки
(самая
простая схема). Один сервер определен как сервер публикаций. Эта схема
принимается по умолчанию и лучше всего подходит для создания
информационных систем, централизованного распространения информации,
снижения нагрузки основного сервера при создании различного рода отчетов и
т.п.;
- один сервер публикаций с использованием промежуточного
сервера репликаций.
Эта схема похожа на предыдущую, только с той
разницей, что заботу по рассылке информации всем подписчикам берет на
себя дополнительный сервер. Это снижает нагрузку на основной сервер в том
случае, когда происходит интенсивная работа с большой базой данных.
Основной сервер (сервер публикаций) выполняет только обработку транзакций;
- множество серверов публикаций, один сервер подписки.
При
использовании такой схемы несколько серверов публикаций тиражируют
данные на единственный сервер подписки. Этот сценарий позволяет
консолидировать данные в едином центре. Подобная модель может
использоваться для локальной обработки данных у клиентов в удаленных
подразделениях;
- несколько серверов подписки, несколько серверов публикаций.
При использовании такой схемы несколько серверов могут играть двойную
роль (выступать одновременно и как серверы подписки, и как серверы
публикаций). Эта схема подходит для использования в децентрализованных
организациях, системах резервирования, региональных отделениях. Подобная
конфигурация должна быть создана вручную.
Что можно ожидать от следующей версии SQL Server
В настоящее время проходит бета-тестирование SQL Server 6.5 - следующая версия сервера баз
данных Microsoft. Несмотря на то что обсуждение бета-версий дело неблагодарное, давайте
посмотрим на некоторые основные нововведения, которые планируется включить в продукт,
запланированный к выходу во втором квартале текущего года.
Следуя линии поддержки работы с большими объемами данных в SQL Server 6.5 планируется
включить поддержку "хранилищ данных".
Будут добавлены следующие возможности: аналитическая обработка данных в реальном времени
(online analytical processing - OLAP) при запросах, тиражирование в базы данных, производимые
другими компаниями, и поддержка программируемых устойчивых представлений и операций по
группировке данных на нескольких серверах.
Основные нововведения в Microsoft SQL Server 6.5
Ключевые возможности по организации хранилищ данных, которые были добавлены в Microsoft
SQL Server 6.5, включают:
- Новые возможности CUBE и ROLLUP, добавленные в процессор запросов
Microsoft SQL Server, задача которых - облегчить для поставщиков
инструментальных средств и для пользователей создание мощных решений
для анализа данных, хранящихся в базах Microsoft SQL Server. Эти новые
утилиты позволяют создавать в прикладных программах сложные запросы,
которые за один шаг осуществляют многомерную группировку данных. При
использовании только ANSI SQL это осуществить весьма не просто.
- Тиражирование данных в разнородных средах при помощи интерфейса
ODBC, который облегчит обмен данными в рамках предприятия.
Первоначально эта возможность будет реализована для платформ DB2, Oracle
и Sybase. Microsoft SQL Server 6.5 также будет поддерживать репликацию в
базы данных Microsoft Access, используемые на ПК.
- Ряд новых возможностей по поддержке программируемых устойчивых
представлений данных, хранящихся на различных серверах. Разработчики
смогут поддерживать на настольном компьютере суммированные и
сгруппированные представления данных, которые хранятся на удаленных
серверах Microsoft SQL Server. Эти новые утилиты включают возможность
"перекачивания" данных с сервера на сервер посредством дистанционного
вызова процедур.
Требования к системе
| Windows NT Server 3.51 или выше, Intel® 386 или выше
(рекомендуется 486 или Pentium), MIPS® R4xxx или системы на базе DEC
Alpha AXP, минимум 16 Mб RAM (минимум 32 Мб RAM, если сервер
конфигурируется как сервер публикаций), 35 Mб на жестком диске, CD-
ROM Кроме того, Microsoft SQL Workstation может работать на Windows NT
Workstation версии 3.51 или более поздней |
Поддерживаемые сети и протоколы
| В комплект поставки Microsoft SQL Server входит поддержка
практически всех сетевых сред, включая: Novell® NetWare® IPX/SPX,
Microsoft Named Pipes (включая Windows NT, Windows® for Workgroups, Windows
95, LAN Manager), TCP/IP sockets, Banyan® VINES®, DECNet,
AppleTalk®, сети с мультипротоколами |
Емкость системы
| SQL Server адресует до 2 Гб памяти, до 8 терабайт дискового
пространства, поддерживает до 32767 баз данных на один сервер. До 32767
одновременных пользовательских соединений на сервер. Неограниченное число
таблиц и пользовательских объектов. Базы данных могут размещаться на нескольких
физических дисках |
Число пользовательских соединений
| 32767 15 (один пользователь)
| SQL Server SQL Workstation |
Поддерживаемые клиентские платформы
| DOS, Windows, Windows NT, UNIX®, OS/2, Macintosh®
|
[Назад]
[Содержание]
[Вперед]
|
|