Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Характеристика современных автоматизированных информационных систем

.pdf
Скачиваний:
53
Добавлен:
10.03.2016
Размер:
912 Кб
Скачать
☆

изменен каким-либо непредсказуемым образом в течение требуемого промежутка времени, она устанавливает блокировку этого объекта..

SQL Server 2000. Его компоненты.

В SQL Server 2000 существует два типа файлов базы данных:

1.Файлы данных. Предназначены для хранения информации, находящейся в таблицах базы данных.

2.Файлы журнала транзакций. В файлы этого типа SQL Server 2000 записывает информацию о ходе выполнения транзакций.

Файлы данных бывают двух типов:

-Primary File. Каждая база данных имеет один и только один главный файл.;

-Secondary File. В отличие от основного файла база данных может, содержать множество дополнительных файлов или не содержать их вовсе.

Компоненты SQL Server 2000

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

Server 2000.

Microsoft SQL Server 2000 реализован в виде набора служб операционной системы, каждая из которых запускается самостоятельно и отвечает за определенный круг задач. Приведем список служб SQL Server:

1.MSSQLServer;

2.SQLServerAgent;

3.Microsoft Search (MSSearch);

4.Microsoft Distributed Transaction Coordinator (MSDTC).

Реализация в виде служб позволяет SQL Server 2000 работать как части операционной системы, иметь собственные права доступа и не зависеть от пользователя, работающего на компьютере в данный момент. Операционная система Windows 95/98 не поддерживает служб, поэтому для работы SQL Server 2000 под управлением этой операционной системы автоматически выполняется эмуляция служб. Это связано с тем, что для работы в любой из поддерживаемых операционных систем SQL Server 2000 применяет единственный программный код. “Microsoft” не стала создавать отдельный продукт для работы в

операционной системе Windows 95/98, а просто выполнила эмуляцию служб Windows NT. Рассмотрим более подробно каждую из служб SQL Server 2000

Управление работой служб SQL Server 2000.

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

Запуск (Start) службы подразумевает загрузку в оперативную память соответствующего кода, который выполняет функции, специфичные для запущенной службы. Код выполняется как часть операционной системы в виде одного или нескольких потоков, а не как обычное приложение. Поэтому на панели задач список загруженных служб не отображается. Непосредственно после того как служба была запущена, она может приступить к выполнению своих задач. Например, применительно к службе MSSQLServer это означает, что пользователи могут подключаться к серверу и работать со всеми механизмами.

Останов (stop) службы подразумевает освобождение памяти, занимаемой кодом службы. При этом также закрываются все потоки, используемые службой. Как следствие другие службы, приложения и пользователи лишаются возможности использовать функции, предоставляемые службой. Например, при останове MSSQLServer обрывается выполнение пользовательских запросов, выполняется откат незавершенных транзакций, уничтожаются все временные объекты и т.д.

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

Конфигурирование служб SQL Server 2000 .

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

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

Система безопасности SQL Server 2000.

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

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

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

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

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

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

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

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

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

На первом уровне разрешается или отклоняется доступ пользователей к самому серверу. На втором – пользователи, имеющие доступ на уровне сервера, получают доступ к объектам базы данных. Такой подход позволяет более гибко управлять доступом пользователей к базам данных. На уровне сервера система безопасности оперирует понятиями: аутентификация (authentication); учетная запись (login); встроенные роли сервера (fixed server roles).

Административные задачи в SQLServer 2000.

Задачи администрирования можно условно разделить на две части:

1.Администрирование собственно SQL Server 2000, которая подразумевает выполнение задач, имеющих отношение к работе всего сервера. Например, управление объемом оперативной памяти, используемой сервером, управление работой и настройками служб SQL Server 2000, предоставление пользователям доступа к серверу, резервное копирование системных баз данных, создание пользовательских баз данных и т. д.

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

Администрирование сервера и баз данных имеет мало общих задач. Тем не менее некоторые из них могут решаться как на уровне сервера, так и на уровне базы данных. Например, изменение размера и создание резервных копий базы данных способен выполнять как администратор сервера, так и администратор базы данных.

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

Доступ к гетерогенным источникам данных в SQLServer 2000.

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

Большинство информационных систем реализовывается в виде звезды. В центре располагается мощная система управления базами данных, накапливающая и обрабатывающая основную массу информации. В качестве периферийных клиентских систем выступают настольные приложения (DB2, Paradox, MS Excel, dBase и т.д.).

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

Автоматизация администрирования SQL Server 2000.

Целью автоматизации администрирования любой системы в конечном счете является снижение ее стоимости владения (ТСО, Total Cost of Ownership). В

данную характеристику входит не только стоимость аппаратного и программного обеспечения, но и затраты на ее обслуживание. Следует заметить, что стоимость аппаратной части составляет всего около 10–15% общей стоимости системы. Сокращение стоимости владения происходит за счет того, что часть работы администраторов перекладывается на саму систему. В итоге организация может позволить себе сократить штат персонала или использовать его работу для решения более сложных и объемных задач.

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

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

При выборе конкретного продукта в качестве системы управления базами данных следует обращать внимание не только на цену, но и учитывать, в какую сумму обойдется владение конечной системой. Сэкономив при покупке СУБД, можно затем потратить в несколько раз больше на поддержку и сопровождение этой системы. Система управления базами данных SQL Server 2000 является продуктом, имеющим одно из лучших соотношение цена–производительность.

Основы автоматического администрирования были заложены еще в SQL Server 6.х, однако только начиная с SQL Server 7.0 стало возможным полномасштабное автоматическое управление сервером. Подсистема автоматизации может решать не только простые одношаговые задачи, но и сложные, реализующие разветвленные алгоритмы. Кроме того, если в сети имеется несколько серверов SQL Server 2000, то подсистема администрирования может быть настроена таким образом, что одно задание будет автоматически выполняться на всех серверах сети. Фундаментом подсистемы автоматического администрирования SQL Server 2000 является служба SQLServerAgent. Она представляет собой дополнение к SQL Server 2000, и ее запуск необязателен. Если в организации не используется автоматическое администрирование, то служба SQLServerAgent может быть остановлена для освобождения ресурсов операционной системы. Однако для работы подсистемы репликации необходим запуск указанной службы. Подсистема репликации автоматически создает набор

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

Как говорилось выше, в архитектуре подсистемы автоматизации SQL Server 2000 существуют следующие объекты: Jobs – задания; Alerts – оповещения;

Operators – операторы.

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

1. Wizards (мастера). Пользователи, не имеющие достаточного опыта в управлении подсистемой автоматизации, могут прибегнуть к помощи специальных мастеров. Мастера облегчают задачи администрирования с точки зрения требующегося объема знаний, так как они снабжены большим

количеством подсказок и работают в пошаговом режиме, что делает процесс управления интуитивно понятным. В SQL Server 2000 имеются следующие мастера:

Резервное копирование в SQLServer 2000.

Резервное копирование (back up) является одним из самых надежных способов защиты данных от потери. Технологии RAID обеспечивают функционирование системы при выходе из строя одного из жестких дисков или даже дискового контроллера. Но они бессильны в случае выхода из строя оперативной памяти центрального процессора или сетевой карты. В этом случае пользователи не смогут получить с сервера данные. Решением проблемы будет использование резервного сервера или кластера. Но предположим, что информация на всех серверах была уничтожена. Чтобы иметь возможность восстановить данные, необходимо иметь полную их копию. Такая копия данных

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

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

Часто архивирование используется для переноса баз данных между серверами SQL Server 2000. База данных архивируется на исходном сервере на какой-

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

Репликация данных в SQLServer 2000.

Репликация данных – это совокупность механизмов SQL Server 2000, обеспечивающих отображение изменений данных, сделанных на одном сервере, на другие серверы. Подсистема репликации реализована в виде специализированных агентов, выполняемых на сервере как самостоятельный процесс. Эти агенты подключаются к серверам-участникам репликации и выполняют создание копий данных и тиражирование их между другими серверами. В зависимости от используемого типа репликации и функции сервера набор агентов на конкретном SQL Server 2000 может сильно различаться. В состав SQL Server 2000 включены несколько мастеров, охватывающих все вопросы настройки репликации. Удобный графический интерфейс и наличие подсказок значительно облегчают процесс создания, удаления и конфигурирования издателя, дистрибьютора и подписчика. Репликация может быть реализована между базами данных одного и того же сервера или между различными серверами, которые объединены сетями LAN, WAN или Интернетом.

В список агентов подсистемы репликации SQL Server 2000 входят: Snapshot

Agent, Log Reader Agent, Queue Reader Agent, Distribution Agent, Merge Agent.

Каждый из указанных агентов реализован как утилита командной строки. Все агенты располагаются в каталоге \Program Files\Microsoft SQL Server\80\COM.

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

Список этих задач следующий:

-Agent History Clean Up: Distribution;

-Distribution Clean Up: Distribution;

-Reinitialize Subscriptions Having Data Validation Failures;

Мониторингиаудитв SQL Server 2000.

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

При выборе компьютера, который будет работать в качестве сервера баз данных предприятия, необходимо оценить объем нагрузки, который ожидается как для компьютера в целом, так и для каждой из подсистем в отдельности. Неудовлетворительная работа одной подсистемы может отрицательно сказаться на производительности всего сервера. Медленный процессор может свести на нет производительность дисковой системы, но при использовании медленного винчестера процессор будет простаивать, ожидая завершения дисковых операций ввода/вывода. Для того чтобы оценивать производительность аппаратных подсистем сервера, можно приобрести готовый сервер. Многие фирмы – производители компьютеров предлагают серверы, оптимизированные под выполнение определенных операций.

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

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

1.Мониторинг операционной системы и аппаратной части компьютера. В этом случае администратор получит количественную информацию о работе системы. Этот тип мониторинга операционной системы предполагает применение следующих инструментов: утилиты Performance Monitor; утилиты Task Manager;

утилиты Event Viewer; протокола Simple Network Management Protocol, SNMP.

2.Мониторинг работы SQL Server 2000 и его подсистем. Этот тип мониторинга позволяет проанализировать работу отдельных запросов и хранимых процедур. Для получения качественной информации о работе SQL Server 2000 могут применяться следующие инструменты: утилита SQL Server Profiler; утилита

Enterprise Manager; средства Transact-SQL

Архитектура баз данных в SQLServer 2000.

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

Логическая архитектура базы данных. Если на физическом уровне рассматриваются структуры, используемые для хранения различной информации, то на логическом уровне необходимо рассматривать объекты, которые можно создавать в базе данных, а также различные свойства, которые влияют на работу сервера с базой данных. Под объектами здесь понимается не только собственно объект, каким является таблица, представление, хранимая процедура, но также и пользователи, роли, полнотекстовые каталоги. К логическому уровню относятся и права доступа пользователей и ролей базы данных к созданным в ней объектам. В список собственно объектов базы данных, которые служат для хранения и обработки информации, входят:

-таблицы (tables). Это единственный объект базы данных, предназначенный для хранения пользовательских данных;

-представления (views). Являются виртуальными таблицами (virtual tables), которые отображают данные, хранящиеся в других таблицах. Для пользователя же представления во многом напоминают таблицы;

-индексы (indexes). Объекты этого типа предназначены для повышения производительности работы сервера при поиске нужных данных в таблицах и представлениях, что достигается путем хранения в упорядоченном состоянии данных одного или более столбцов таблицы или представления. Таким образом, индексы не могут существовать сами по себе;

-ключи (keys). Являются одним из типов ограничения целостности. Однако они играют достаточно важную роль в базе данных и поэтому рассматриваются как отдельные объекты. Тем не менее реализуются они так же, как и другие ограничения целостности, которые связываются с таблицами;итд

Транзакции и блокировки в SQLServer 2000.

Транзакция (transaction) представляет собой набор из одной или более команд, обрабатываемых как единое целое, т.е. будет выполнен либо весь набор команд, либо не выполнена ни одна из них. Одна транзакция может изменять как отдельную строку таблицы, так и миллионы строк в различных таблицах. Кроме того, с помощью распределенных транзакций (distributed transaction) можно изменять строки в разных базах данных. SQL Server 2000 гарантирует, что данные, к которым обращается транзакция, останутся неизменными на всем протяжении существования транзакции.