Содержание
Введение
1
ЧАСТЬ I. АРХИТЕКТУРА SQL SERVER 2000
3
Глава 1. Обзор SQL Server 2000
5
Улучшения в ядре Поддержка множества инсталляций Сопоставления Определяемые пользователем функции Расширение возможностей триггеров Улучшения в индексах.... Каскадные изменения Интеграция в Web Надежность Репликация Новые типы данных Индексирование представлений Масштабируемость Глава 2. Компоненты SQL Server 2000
5 5 6 7 8 8 9 9 11 12 13 14 15
,
.'
16
Службы SQL Server 2000 Служба MSSQLServer Служба SQLServerAgent Объекты Jobs Объекты Operators Объекты Alerts Служба Microsoft Search Служба MSDTC Системные базы данных SQL Server 2000 База данных Master База данных Model База данных Tempdb База данных Msdb
16 16 17 18 18 19 20 20 21 22 24 25 26
Глава 3. Использование SQL Server 2000
28
Системы оперативной аналитической обработки Системы оперативной обработки транзакций Инструменты SQL Server 2000 Enterprise Manager
28 31 32 32
IV
Содержание SQL Server Service Manager SQL Server Profiler Query Analyzer Upgrade Wizard Import and Export Data Client Network Utility и Server Network Utility Утилиты командной строки Мастера
33 34 35 37 37 38 38 41
ЧАСТЬ П. УСТАНОВКА SQL SERVER 2000
43
Глава 4. Подготовка к установке SQL Server 2000
45
Выбор редакции Требования к системе Требования к аппаратному обеспечению Требования к программному обеспечению Подготовка учетных записей Создание учетных записей в Windows NT Создание учетных записей в Windows 2000 Выбор конфигурации сервера Порядок сортировки Кодовая страница Данные Unicode Сопоставление SQL Server 2000 Сетевые компоненты Установка сетевых библиотек и протоколов Установка сетевых протоколов в Windows NT 4.0 Установка сетевых протоколов в Windows 2000 Конфигурирование сетевых библиотек Выбор способа установки Локальная установка Автоматическая установка Удаленная установка Глава 5. Переход на SQL Server 2000 с предыдущих версий Обновление серверов SQL Server 6.x Предварительная подготовка Выбор способа передачи данных Одно- и двухкомпьютерное обновление Процесс обновления Обновление серверов SQL Server 7.0 Использование различных версий SQL Server Глава 6. Установка SQL Server 2000 Мастер установки Настройка системы после установки Управление работой служб SQL Server 2000
,
46 50 50 51 52 55 57 63 64 65 66 66 68 69 69 70 73 74 74 75 78 81 82 84 85 87 88 90 90 92 94 113 113
Содержание Изменение параметров конфигурации сервера Конфигурирование сетевых библиотек Установка и конфигурирование клиентов
V_ 120 121 125
ЧАСТЫИ. АДМИНИСТРИРОВАНИЕ
131
Глава 7. Управление работой служб SQL Server 2000
133
Старт, останов и приостанов служб Утилита SQL Server Service Manager Утилита Enterprise Manager Утилита Services Использование командной строки Останов средствами Transact-SQL Запуск SQL Server 2000 как приложения Управление учетной записью службы Утилита Enterprise Manager Утилита Services Режимы запуска SQL Server 2000 Однопользовательский режим Режим с минимальными требованиями Глава 8. Конфигурирование служб SQL Server 2000 Конфигурирование службы MSSQLServer Вкладка General Вкладка Memory Вкладка Processor Вкладка Security Вкладка Connections Вкладка Server Settings Вкладка Database Settings Вкладка Replication Конфигурирование службы SQLServerAgent Вкладка General Вкладка Advanced Вкладка Alert System Вкладка Job System Вкладка Connections Использование процедуры sp_configure Глава 9. Система безопасности SQL Server 2000 Архитектура системы безопасности Проверка подлинности пользователя Аутентификация Windows NT Аутентификация SQL Server Создание учетной записи Средства Transact-SQL
134 135 137 140 146 147 147 149 150 153 155 157 159 161 161 163 167 169 174 175 178 181 185 185 186 187 189 191 192 193 198 199 200 202 205 205 206
VI
Содержание Создание учетных записей SQL Server Создание учетных записей Windows NT Использование Enterprise Manager Специальные учетные записи Роли сервера Система безопасности базы данных Пользователи Создание пользователя Специальные пользователи Управление пользователями средствами Transact-SQL Роли базы данных Фиксированные роли базы данных Управление фиксированными ролями средствами Transact-SQL Пользовательские роли базы данных Управление пользовательскими ролями средствами Transact-SQL Роли приложения Управление ролями приложения средствами Transact-SQL Права доступа Права доступа к данным Права на выполнение хранимых процедур и функций..... Права на выполнение команд Transact-SQL Управление правами доступа Предоставление доступа Запрещение доступа Неявное отклонение доступа Просмотр прав доступа Иерархия прав доступа
Глава 10. Административные задачи Обязанности администратора Управление серверами и группами Регистрация сервера Управление группами Связанные серверы Использование Transact-SQL Регистрация связанного сервера Просмотр информации о связанных серверах Определение отображения Просмотр отображений Удаление отображения Конфигурирование связанного сервера Удаление связанного сервера Использование Enterprise Manager Регистрация связанного сервера Конфигурирование поставщика Управление отображениями Управление параметрами связанного сервера
208 212 213 221 221 224 224 225 227 227 233 233 235 238 239 242 244 247 247 248 250 250 254 257 258 260 262 264 265 268 269 279 280 283 283 288 289 292 293 295 298 298 300 303 304 306
Содержание
Vll_
Удаленные серверы Использование Transact-SQL Регистрация удаленного сервера Определение отображения на локальном сервере Определение отображения на удаленном сервере Просмотр отображений Свойства отображения Удаление отображения Удаление удаленного сервера Использование Enterprise Manager
307 308 308 311 312 315 317 318 319 319
Глава 11. Доступ к гетерогенным источникам данных
323
Экспорт и импорт данных Выбор метода переноса данных Перенос данных в текстовый файл Службы Data Transformation Service Архитектура DTS Мастера DTS Export и Import Wizard Запуск мастера Конфигурирование источника данных Конфигурирование получателя данных Выбор режима копирования данных Копирование данных из таблиц и представлений Вкладка Column Mappings Вкладка Transformations Вкладка Constraints Использование запроса для подготовки данных Выбор столбцов Управление порядком сортировки Определение условий выборки Указание таблицы получателя Перенос объектов базы данных Выбор объектов для копирования Управление копированием данных Конфигурирование дополнительных свойств Сохранение и выполнение пакета Управление временем запуска Конфигурирование хранения пакета Завершение работы мастера Инструмент DTS Designer Источники данных Задачи Задача File Transfer Protocol Task Задача ActiveX Script Task Задача Transform Data Task Задача Execute Process Task
324 325 328 328 330 335 336 338 341 342 344 346 350 352 355 356 ...357 359 361 362 363 365 366 370 372 374 375 376 .378 379 381 384 387 417
VIII
Содержание Задача Execute SQL Task Задача Data Driven Query Task Задача Copy SQL Server Objects Task Задача Send Mail Task.. Задача Bulk Insert Task Задача Execute Package Task Задача Message Queue Task Задача Transfer Error Messages Task Задача Transfer Databases Task Задача Transfer Master Stored Procedures Task Задача Transfer Jobs Task Задача Transfer Logins Task Задача Dynamic Properties Task Отношения предшествования Сохранение пакета
Глава 12. Автоматизация администрирования SQL Server 2000 Архитектура системы автоматизации Задания Оповещения Операторы..... Управление подсистемой автоматизации Управление заданиями Мастер Create Job Wizard , Утилита Enterprise Manager Общие сведения о задании Управление шагами задания Управление запуском задания Извещение операторов о завершении задания Средства Transact-SQL Копирование заданий Управление оповещениями Мастер Create Alert Wizard Утилита Enterprise Manager Средства Transact-SQL Копирование оповещений Управление операторами Утилита Enterprise Manager Средства Transact-SQL Оператор последней надежды Копирование операторов Управление множеством серверов Главный сервер Сервер назначения Многосерверные задания Мастер Database Maintenance Plan Wizard
419 423 427 429 430 436 440 446 448 453 453 454 456 463 465 468 469 470 471 475 476 477 477 481 481 484 488 491 492 494 495 495 498 .....501 502 502 502 505 505 507 507 508 512 513 515
Содержание
IX
Глава 13. Резервное копирование Введение в резервное копирование Полная копия Разностная копия Копия журнала транзакций Резервное копирование файлов и групп файлов Планирование стратегии резервного копирования Выбор носителя Резервное копирование системных баз данных. Восстановление системных баз данных Присоединение баз данных Ограничения при выполнении архивирования Архивирование с использованием Transact-SQL Создание полной и разностной копий.... Создание копий файлов и групп файлов Создание копии журнала транзакций Архивирование средствами Enterprise Manager Архивирование с помощью мастера Восстановление архива с использованием Transact-SQL Восстановление полной и разностной копий Восстановление файлов или групп файлов Восстановление журнала транзакций Восстановление архива средствами Enterprise Manager Глава 14. Репликация данных Введение в репликацию данных Издатель Подписчик Дистрибьютор Механизмы репликации Агент Snapshot Agent Агент Log Reader Agent Агент Queue Reader Agent Агент Distribution Agent Агент Merge Agent Запуск агентов Типы репликации Репликация моментальных снимков Репликация транзакций Репликация хранимых процедур Репликация сведением Обновление подписчиков \ Безотлагательное обновление Требования безотлагательного обновления Отложенное обновление Выбор топологии репликации
525
,
526 527 529 530 532 534 535 538 539 541 542 543 544 549 550 551 558 563 563 565 566 567 572 574 576 ...576 579 580 582 583 584 585 586 588 596 597 601 605 608 614 615 619 . 620 625
X
Управление издателем и дистрибьютором Инициализация издателя и дистрибьютора Конфигурирование издателя и дистрибьютора Деактивизация дистрибьютора и издателя Управление публикацией Создание публикации Создание динамического моментального снимка Конфигурирование публикации Общие сведения Управление статьями Вертикальные фильтры Горизонтальные фильтры Управление подписками Управление свойствами подписок Управление моментальным снимком Размещение моментального снимка Доступ к публикации Выбор партнеров для синхронизации Просмотр статуса Удаление публикации Управление подпиской Создание принудительной подписки Создание подписки по требованию Конфигурирование подписки Удаление подписки
Глава 15. Мониторинг и аудит Выбор инструмента мониторинга Утилита Performance Monitor Утилита Task Manager Утилита Event Viewer Утилита SQL Server Profiler Основы мониторинга Категория Sessions Категория Objects Категория Scans Категория TSQL Категория Cursors Категория Stored Procedures Категория Error and Warning Категория Transactions Категория Locks Категория Databases Категория Performance Категория Server Категория Security Audit Категория User Configurable
Содержание 626 628 638 645 646 647 662 669 669 670 681 682 683 685 686 687 689 690 691 692 693 693 703 710 718 719 720 722 ...732 735 736 737 742 743 744 745 746 747 748 750 751 752 753 754 754 760
Содержание Осуществление мониторинга Анализ полученной информации Использование Transact-SQL Глава 16. Создание отказоустойчивой системы Резервный сервер Технология кластеризации Типы конфигурации кластеров Технология RAID Зеркальное отображение и дублирование дисков Чередование дисков
XI 761 767 770 771 772 775 777 778 780 781
ЧАСТЬ IV. РАЗРАБОТКА И СОПРОВОЖДЕНИЕ БАЗ ДАННЫХ
783
Глава 17. Введение в проектирование баз данных
785
Классификации баз данных Структурные элементы базы данных Модели данных Реляционная модель данных Проектирование реляционных баз данных Основы реляционных баз данных Нормализация данных Связывание таблиц Первичный и внешний ключи Типы связей между таблицами Глава 18. Архитектура баз данных Физическая архитектура базы данных Файлы и группы файлов Страницы и группы страниц Логическая архитектура базы данных Именование объектов Доступ к объектам Умолчания Правила Определяемые пользователем типы данных Глава 19. Транзакции и блокировки Основы транзакций Основы блокировок Использование транзакций Автоматическое определение транзакции Явное определение транзакции Неявное определение транзакции Команды, запрещенные в транзакциях
785 787 788 789 794 795 797 801 801 804 806 807 807 811 820 821 825 827 835 839 845 845 848 851 852 853 855 856
XII
Содержание
Распределенные транзакции Завершение распределенных транзакций , Создание распределенных транзакций Вложенные транзакции . Использование блокировок Уровни блокирования Уровни изолированности транзакций Управление блокировками на уровне команд Типы блокировок Основные типы блокировок , Специальные типы блокировок Конфликты блокировок Мертвые блокировки Глава 20. Работа с базой данных Планирование конфигурации базы данных Планирование размещения файлов Использование групп файлов Возможность автоматического роста файлов.. Использование неформатированных разделов Выбор сопоставления Создание базы данных Использование Transact-SQL Описание файлов Описание группы файлов Пример создания базы данных Использование Enterprise Manager Использование мастера Create Database Wizard Управление свойствами базы данных Transact-SQL Процедура spdboption Изменение имени базы данных Передача прав владения базой данных Получение информации о базе данных Уменьшение размера базы данных Enterprise Manager Внесение изменений в базу данных Отсоединение и присоединение базы данных Удаление базы данных Глава 21. Работа с таблицами Проектирование таблиц Ограничения целостности Ограничение целостности Check Ограничение целостности Null Ограничение целостности Default
858 859 860 861 864 867* 869 870 872 872 874 877 878 881 881 881 883 884 885 885 891 892 894 897 898 900 906 911 912 912 917 918 920 926 931 938 942 945 946 947 947 948 949 950
Содержание Ограничение целостности Unique Ограничение целостности Primary Key Ограничение целостности Foreign Key Ограничение целостности No Action и Cascade Выбор сопоставления Выбор типа данных Использование автонумерации Управление таблицами средствами Transact-SQL Создание таблиц Определение столбцов Ограничения целостности на уровне столбцов Ограничения целостности на уровне таблицы Примеры создания таблиц Изменение таблиц Получение информации о таблице Зависимые объекты Связь через ключи Удаление таблиц Управление таблицами средствами Enterprise Manager Создание таблицы Общие свойства таблицы Определение внешнего ключа Управление индексами Контроль значений Изменение таблицы Удаление таблицы Глава 22. Использование представлений Создание представления Использование Transact-SQL Использование Enterprise Manager Использование мастера Create View Wizard Модификация данных в представлении Права доступа к представлениям Переименование представлений Изменение представлений Просмотр параметров представления Просмотр зависимостей Удаление представления Глава 23. Индексы Использование индексов Некластерный индекс Кластерный индекс Уникальный индекс Фактор заполнения Индексирование представлений
XIII 951 952 953 953 954 955 956 958 958 961 963 966 967 968 973 977 979 980 980 982 985 987 989 991 992 993 995 996 996 999 1005 1009 1009 1010 1011 1012 1014 1015 1017 1019 1020 1022 1024 1025 1027
XIV
Содержание
Управление индексами Создание индексов Использование Transact-SQL Использование Enterprise Manager Использование мастера Create Index Wizard Перестроение индексов Переименование индекса Удаление индекса Просмотр информации о фрагментации Глава 24. Статистика Создание статистики Управление статистикой Просмотр статистики Удаление статистики
1029 1030 1030 1035 1038 1042 1043 1044 1044 1048 ...1048 1049 1052 1053
ЧАСТЬ V. ПРОГРАММИРОВАНИЕ
1055
Глава 25. Основы Transact-SQL
1057
Временные таблицы и переменные Выражения Операнды Функция CASE Функция COALESCE Функция ISNULL Операторы Простейшие операторы Оператор присваивания Арифметические операторы Оператор конкатенации строк Операторы сравнения Битовые операторы Логические операторы Управляющие конструкции и команды BEGIN...END IE..ELSE WHILE...CONTINUE GOTO USE WAIT..FOR GO
1058 1062 1062 1066 1069 1070 1072 1072 1073 1074 1075 1075 1077 1078 1082 1083 1083 1084 1085 1086 1086 1087
Глава 26. Типы данных SQL Server 2000
1088
Целочисленные типы данных Нецелочисленные типы данных Денежные типы данных
1088 1089 1091
Содержание
XV
Типы данных "дата и время" Двоичные типы данных Строковые типы данных Текстовые типы данных Специальные типы данных Преобразование типов данных
1092 1093 1095 1096 1097 1099
Глава 27. Функции SQL Server 2000
1100
Встроенные функции Функции просмотра конфигурации Функции работы с курсорами Функции работы с датой и временем Математические функции Функции метаданных Функции подсистемы безопасности Строковые функции Системные функции Статистические функции Функции, определяемые пользователем Функции Scalar Функции Inline Функции Multi-statement Изменение функций Удаление функций
1100 1101 1103 1104 1105 1107 1108 1109 1110 1112 ..1113 1115 1117 1118 1119 1120
Глава 28. Вставка, удаление и изменение данных
1121
Добавление строк Команда INSERT Команда SELECT...INTO Изменение данных Удаление данных Механизмы массивного копирования Область применения утилиты bcp.exe Импорт и экспорт данных утилитой bcp.exe Формат файлов утилиты bcp.exe Файл форматирования Использование команды BULK INSERT
1121 1122 1127 ИЗО 1134 1135 1136 1137 1145 1146 1153
Глава 29. Выборка данных Раздел Раздел Раздел Раздел Раздел Раздел Раздел
SELECT INTO FROM. WHERE. GROUP BY. HAVING UNION
1158
.
1159 1165 1165 1173 1177 1185 1186
XVI Раздел Раздел Раздел Раздел
Содержание ORDER BY. COMPUTE FOR OPTION.
Глава 30. Хранимые процедуры Системные хранимые процедуры Расширенные хранимые процедуры Создание хранимой процедуры Использование номера процедуры Использование параметров Возвращение значений из процедуры Работа с курсорами Использование кода завершения Изменение хранимых процедур Удаление хранимых процедур Глава 31. Использование курсоров Виды курсоров Курсоры Transact-SQL Статические курсоры Ключевые курсоры Последовательные курсоры Динамические курсоры Работа с курсорами Объявление курсора Открытие курсора Выборка данных Изменение данных Удаление данных Закрытие курсора Освобождение курсора Дополнительные средства Глава 32. Триггеры Использование триггеров Ограничения использования триггеров Создание триггера Модификация триггера Удаление триггера Программирование триггеров Пример создания триггера Предметный указатель
1190 1192 1197 1198 1200 1201 1202 1204 1207 1208 1209 1210 1213 1214 1216 1217 1218 1220 1220 1221 1222 1223 1223 1224 1228 1229 1232 1234 1236 1237 1237 1239 1239 1241 1242 1246 1247 1247 1249 1253
S
o
f
t
L
i
n
e
КАТАЛОГ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 9 Если вы хотите быть l4 SoftLine Si в курсе всех последних событий на рынке программного обеспечения,
119991 г. Москва, ул.Губкина, 8 (095)232-0023
[email protected] www.softline.ru
-> Если вы хотите получать наиболее полную информацию о программных продуктах из первых рук от самих производителей, Q
Если вы ведете честный бизнес и покупаете лицензионное ПО
ШЫТОЩ! Подпишитесь на новый полноцветный каталог, издаваемый одним из крупнейших поставщиков программного обеспечения в России, и вы будете регулярно получать его по почте. Кроме того, по вашему желанию на ваш электронный адрес будут регулярно приходить еженедельные новости рынка программного обеспечения от компании SoftLine.
Подписка БЕСПЛАТНО для руководителей и специалистов в области информационных технологий, представляющих организации, имеющие более 10 компьютеров!
что объединяет более 80 000 itСП-
'ШСТОг'
И
КОМП |НИЙ?
Информация, которая необходима, Правильно построенная ГТ-инфраструктура компании залог успешного и конкурентоспособного бизнеса. В каталоге представлена детальная информация о последних новинках в мире программного обеспечения, приведены обзорные статьи, примеры успешного внедрения и разнообразные типовые решения. Эта информация поможет Вам сделать правильный выбор. Выберите каталог, который Вам нужен, В настоящее время выпускается несколько версий каталогов SoitLine*-dircct и ряд спецвыпусков (Microsoft, Linux, Novell, Apple). Основной каталог SoftIJne*s-direct представлен и 3 редакциях,SoftLine*-direct Standard Edition предназначен дою компаний с числом компьютеров от 10 до 50. Ориентировал па специалистов ГГ'-отдело», системных администраторов, разработчиков ПО. SoftLine*-dfrect Professional. Edition предназначен для компаний с числом компьютеров более 50. Ориентирован на руководителей бизнеса, руководителей ГГ-подразделенпй. специалистов ГГ-отделов, системных администраторов, разработчиков ПО. Большое внимание уделено описанию правильной методолога и лицензирования ПО в организации. SoftLine*-direct Enterprise Edition -каталогтиповых решений. Среди них, в частности: методология построения сетевой инфраструктуры, безопасность, резервное копирование, удаленный доступ к приложениям, консолидация серверов, ip-телефония, беспроводные сети, мобильные пользователи и др. Каталог' предназначен для руководителей бизнеса, руководителей ['['-подразделений компаний с числом компьютеров более 50. Для бесплатной подписки на каталог SoftLtne -Direct позвоните по тел, (095)232-0023 н.т< посетите сайг wvvw.softiine.ru
Введение Предлагаемая вашему вниманию книга посвящена новой версии системы управления базами данных корпорации Microsoft — SQL Server 2000. Возможности новой версии этой популярной СУБД были существенно расширены по сравнению с предыдущими версиями. Наиболее заметным нововведением является тесная интеграция баз данных SQL Server 2000 в Web. Используя язык XML, пользователи могут легко опубликовать данные в Интернете в виде таблиц или графиков, обеспечив при этом и возможность изменения данных с помощью обычного браузера. Как и прежде, SQL Server 2000 является хорошо масштабируемым сервером баз данных, который могут использовать как индивидуальные пользователи, так и транснациональные корпорации, имеющие тысячи пользователей и терабайтные базы данных. В архитектуру сервера также были внесены изменения, позволившие полностью интегрировать SQL Server 2000 со службами Active Directory операционной системы Windows 2000. Представленная книга хорошо структурирована и разделена на несколько частей, которые могут читаться отдельно друг от друга. Первая часть посвящена рассмотрению общих концепций, на которых базируется SQL Server 2000, а также рассмотрению архитектуры сервера. Вторая часть посвящена подробному рассмотрению установки SQL Server 2000, в т. ч. и обновлению предыдущих версий. Детально обсуждается назначение всех опций, которые необходимо сконфигурировать в процессе инсталляции. После прочтения этой части читатель сможет профессионально установить SQL Server 2000 в соответствии со своими требованиями. Третья же часть книги посвящена администрированию сервера. В ней подробно описано конфигурирование и управление работой служб SQL Server 2000, система безопасности как на уровне базы данных, так и на уровне сервера, управление удаленными и связанными серверами, подсистема репликации и резервного копирования, а также выполнение различных административных задач. Детально рассмотрена интеграция SQL Server 2000 с гетерогенными источниками информации с использованием служб трансформации данных, механизмов массивного копирования, распределенных и удаленных запросов, а также некоторые другие средства. В части также обсуждаются средства автоматизации администрирования SQL Server 2000 и доступ к распределенным гетерогенным источникам данных. В завершение рассматривается построение отказоустойчивой системы и средства мониторинга. В четвертой части основное внимание уделено разработке и сопровождению баз данных. В одной из глав даны теоретические аспекты разработки баз данных, рассмотрены модели данных, нормализация и основные термины теории реляционных баз данных. Другие главы посвящены рассмотрению архитектуры баз данных SQL Server 2000, а также созданию и управлению ими. Немало внима-
2
Введение
ния уделено созданию и работе с таблицами и представлениями. Также подробно описывается повышение эффективности работы с данными — использование индексов и статистики. Отдельная глава полностью посвящена рассмотрению типов транзакций и блокировок, а также объясняется работа подсистемы блокирования сервера. Последняя часть книги посвящена программированию в среде SQL Server 2000. После прочтения глав этой части читатель получит всю информацию о типах данных SQL Server 2000, а также об их использовании, информацию о работе с курсорами, хранимыми процедурами, пользовательскими и встроенными функциями и триггерами. Немалая часть отведена описанию операций вставки, удаления, изменения и выборки данных с помощью средств Transact-SQL. В целом о книге можно сказать, что материал сопровождается множеством примеров, советов и замечаний, которые будут весьма полезны при практической работе. Книга написана простым и понятным языком, что значительно облегчает восприятие материала. Помимо описания использования стандартных средств управления сервером также нередко рассматривается управление соответствующими параметрами путем прямого доступа к системным таблицам. Книга написана специалистом в области разработки и сопровождения баз данных, являющимся автором нескольких книг по SQL Server, сдавшим более десятка сертификационных экзаменов Microsoft и имеющим статусы MCSE+I, MCDBA и MCSD.
ЧАСТЬ I. АРХИТЕКТУРА SQL SERVER 2000 Глава 1. Обзор SQL Server 2000 Глава 2. Компоненты SQL Server 2000 Глава 3. Использование SQL Server 2000
Глава 1
Обзор SQL Server 2000 Данная глава будет посвящена поверхностному знакомству с SQL Server 2000, рассмотрению его возможностей, а также некоторых отличий от предыдущих версий SQL Server. Можно с уверенностью сказать, что SQL Server 2000 является одной из наиболее привлекательных современных систем управления базами данных. SQL Server 2000 предлагает пользователям пожалуй самое оптимальное соотношение цены и качества. Системы, построенные с использованием этой СУБД, традиционно характеризуются невысокой суммарной стоимостью владения (ТСО, total cost of owner), что для специалистов вкупе с возможностями системы является одним из самых важных критериев при выборе программного продукта, который будет использован при построении баз данных предприятия. Отметим, что в стоимость владения входит не только стоимость самой СУБД, но также и стоимость операционной системы, клиентских лицензий, стоимость сопровождения системы, в которую входит оплата труда администраторов и операторов, а также некоторые другие показатели. Таким образом, даже если стоимость собственно СУБД может показаться немалой, с течением времени расходы на ее приобретение окажутся оправданными. Далее будут рассмотрены некоторые возможности SQL Server 2000, которые могут оказаться решающими при принятии решения о внедрении этой СУБД на предприятии.
Улучшения в ядре В большей степени ядро SQL Server 2000 осталось таким же, каким оно было в SQL Server 7.0. Тем не менее, некоторые изменения были все же внесены. В данном разделе, а также в некоторых из следующих разделов, будет рассказано об этих изменениях.
Поддержка множества инсталляций Одним из самых заметных изменений, с которыми сталкивается пользователь уже при установке, — это поддержка множества инсталляций SQL Server 2000 на одном сервере. При работе с SQL Server 7.0 имелась возможность существования на одном сервере SQL Server 7.0 и SQL Server 6.x. Однако в каждый момент времени активной могла являться только какая-то из версий. Одновременная работа двух серверов SQL Server была невозможна. SQL Server 2000 позволяет устанавливать на одном сервере множества копий (инсталляций) серверов баз данных SQL Server 2000, каждый из которых имеет
Часть I. Архитектура SQL Server 2000 свой набор служб операционной системы (MSSQLServer и SQLServerAgent), собственный набор пользовательских и системных баз данных и в целом является независимым от других инсталляций. Каждая из инсталляций может запускаться и останавливаться отдельно от других. В предыдущих версиях серверы SQL Server различались по сетевому имени компьютера, на котором они были установлены. Поддержка же множества инсталляций требует дополнительной идентификации. Для этого инсталляциям при установке присваиваются имена, уникальные в пределах компьютера. Одна из инсталляций может не иметь имени, и обращение к ней будет осуществляться только по имени компьютера. Такая инсталляция называется инсталляцией по умолчанию (default instance). Инсталляции, которым присвоены определенные имена, называются именованными инсталляциями (named instance), и для обращения к ним помимо имени компьютера следует через слэш указать имя нужной инсталляции. Например, для ссылка на инсталляцию TRELON сервера STORAGE следует указать STORAGE\TRELON. Замечание В качестве инсталляции по умолчанию можно использовать SQL Server 7.0 или SQL Server 6.x. При этом ничто не мешает установить именованную инсталляцию SQL Server 2000. Таким образом, на одном компьютере могут успешно работать как SQL Server 2000, так и, например, SQL Server 7.0.
Сопоставления В процессе установки SQL Server 2000 пользователь также столкнется с еще одним изменением. В SQL Server 2000 не существует отдельно понятий кодовой страницы, порядка сортировки и сопоставления Unicode. Теперь вместо этих трех параметров пользователь должен выбрать сопоставление (collation), которое и определит поведение сервера при сравнении и сортировке данных. Существенным изменением SQL Server 2000 по сравнению с SQL Server 7.0 стала возможность работы в пределах одной инсталляции с объектами, использующими различные сопоставления. Например, каждый из столбцов одной и той же таблицы может иметь свое собственное сопоставление. Напомним, что в SQL Server 7.0 аналогичные параметры конфигурировались на уровне сервера и были одинаковы для всех столбцов всех таблиц баз данных, имеющихся на сервере. Изменение порядка сортировки, набора символов или сопоставления Unicode было связано с серьезными проблемами. Теперь сопоставление, конфигурируемое на уровне сервера, рассматривается как сопоставление по умолчанию, которое автоматически применяется в тех случаях, когда при создании базы данных явно не указывается какое-либо сопоставление. Определяемое на уровне сервера сопоставление также используется для всех баз данных, создаваемых в процессе инсталляции SQL Server 2000 — системных баз ДаННЫХ, а Также баз Данных pubs И Northwind. Тем не менее, при создании базы данных можно указать иное сопоставление, чем было выбрано при установке SQL Server 2000 на уровне сервера. Сопоставление, указываемое на уровне базы данных при ее создании, предназначено для
Глава 1. Обзор SQL Server 2000 всех системных таблиц. Это напрямую отражается на правилах именования объектов базы данных и выборе имен пользователей. Например, при выборе сопоставления, нечувствительного к регистру (case insensitive), сервер не будет делать различия между символами, набранными в верхнем и нижнем регистре. То есть имена AUTHORS и Authors будут считаться именем одного и того же объекта. Так же нельзя будет создавать в таблицах столбцы с одинаковыми именами, но набранными в разных регистрах. Если же для базы данных используется сопоставление, чувствительное к регистру (case insensitive), то сервер станет проверять уникальность имен объектов с учетом регистра. Установленное на уровне базы данных сопоставление не является обязательным для таблиц, создаваемых в базе данных, а также столбцов этих таблиц. Пользователь может при организации таблицы явно определить сопоставление, которое должно использоваться для этой таблицы. Более того, SQL Server 2000 позволяет указывать сопоставление и на уровне отдельного столбца таблицы.
Определяемые пользователем функции В SQL Server 7.0 и более ранних версиях в распоряжении пользователя имелся набор встроенных функций, которые писались программистами Microsoft и набор которых был фиксирован. Пользователь не мог создавать свои собственные функции. Конечно, в распоряжении пользователя имелись хранимые процедуры, в качестве которых и можно было реализовывать часто используемые алгоритмы. Однако очевидным недостатком хранимых процедур является невозможность их вызова в выражениях. Таким образом, при выполнении сложных обновлений или выборки данных, требующих сложных алгоритмов, не реализуемых в пределах запроса, нужно было использовать курсоры или другие механизмы, позволяющие обращаться к хранимым процедурам. Конечно, было бы гораздо удобнее обращаться в нужным алгоритмам непосредственно в теле запроса, как это происходит при работе со встроенными функциями. Например, можно непосредственно в теле запроса выполнить преобразование типов данных, выделить подстроку из строки, возвести число в степень, проверить вхождение подстроки в строку и т. д. В SQL Server 2000 появилась возможность создания определяемых пользователем функций. Таким образом, пользователь может создавать свои собственные функции, на которые можно будет ссылаться непосредственно в теле запроса. Как и хранимые процедуры, определяемые пользователем функции могут иметь параметры. Интересным сочетанием является применение в качестве возвращаемого функцией значения величины типа данных t a b l e . Это дает возможность вызова запросов, обращающихся непосредственно к функции. Например, если имеется функция GetPeopie, возвращающая список всех людей с фамилией, указанной с помощью единственного параметра, то просмотр возвращаемого функцией набора данных можно осуществить с помощью следующей команды: SELECT * FROM GetPeopie('Иванов')
Подробно работа как с пользовательскими, так и со встроенными функциями будет рассмотрена в главе 27.
Часть I. Архитектура SQL Server 2000
Расширение возможностей триггеров Интересные изменения были внесены и в триггеры. Теперь разрешается создание триггеров не только для таблиц, но и для представлений, что заметно расширяет функциональность SQL Server 2000. Помимо этого, в SQL Server 2000 появился принципиально новый тип триггеров, называемый INSTEAD OF. В предыдущих версиях SQL Server триггеры работали таким образом, что сначала выполнялись требуемые пользователем изменения, и информация о них отображалась в специальных таблицах, а уже после этого запускался триггер, который анализировал осуществляемые пользователем изменения и выполнял соответствующие действия. При необходимости триггер мог отменить сделанные пользователем изменения, организовав для этого откат транзакции, в контексте которой осуществлялось изменение данных. Этот тип триггеров в SQL Server 2000 используется по умолчанию и называется AFTER. Триггеры же INSTEAD OF работают взамен (instead) команды пользователя, приведшей к запуску триггера. Таким образом, команда пользователя не выполняется, а вместо нее будет обработан набор команд, представляющий тело триггера INSTEAD OF. Одним из важнейших направлений использования этих триггеров является осуществление изменений одной командой данных представления, расположенных в различных таблицах. Вообще SQL Server 2000 разрешает только изменение данных представления, принадлежащих одной таблице. Если же необходимо модифицировать данные, принадлежащие двум и более таблицам, то вся операция изменения должна быть разбита на соответствующее число отдельных команд. Этот же подход должен применяться и в триггерах INSTEAD OF. Однако разбиение изменения на множество отдельных команд будет скрыто от пользователя.
Улучшения в индексах Улучшения были внесены и в работу сервера с индексами. Самыми заметными улучшениями являются индексирование представлений и вычисляемых столбцов (computed columns), что было невозможно в более ранних версиях SQL Server. Подробнее о индексировании представлений будет рассказано в одном из следующих разделов. Сейчас же расскажем о некоторых других улучшениях. В SQL Server 2000 было оптимизировано использование сервером системных ресурсов при построении и перестроении индексов. В частности, при построении индекса теперь учитываются преимущества многопроцессорной архитектуры при сканировании таблиц и сортировке данных. Более того, теперь можно явно указать, каким образом (по убыванию или по возрастанию) следует расположить индексируемые данные. Также разрешается размещение промежуточных данных, используемых при построении и перестроении индексов, в базе данных Tempdb. Это позволяет еще больше повысить производительность создания индекса еслл пользовательская база данных и база данных Tempdb находятся на разных физических дисках. Подробно о индексах будет рассказано в главе 23.
Глава 1. Обзор SQL Server 2000
Каскадные изменения В предыдущих версиях SQL Server при работе с внешними ключами пользователи должны были сами отслеживать изменения в главной таблице. Если нужно было изменить значение первичного ключа или просто удалить одну из строк главной таблицы, требовалось предварительно соответствующим образом изменить данные во всех зависимых таблицах. В противном случае сервер просто-напросто не разрешал выполнение изменений в главной таблице, выдавая сообщение об ошибке. Однако довольно часто требовалось автоматическое выполнение соответствующих изменений в зависимых таблицах при изменении данных в главной таблице. При работе с SQL Server 7.0 и более ранними версиями это реализовывалось путем написания специализированных триггеров, которые и отображали изменения данных в главной таблице на все зависимые таблицы. В SQL Server 2000 больше не требуется написание подобных триггеров, т. к. теперь на уровне ядра SQL Server 2000 реализована возможность выполнения каскадных изменений данных в зависимой таблице при удалении или изменении данных в главной таблице.
Интеграция в Web С масштабным развитием глобальной компьютерной сети Интернет и связанных с ней технологий все больше задач, решаемых с помощью SQL Server 2000, оказываются так или иначе зависимыми от этой сети. При этом одной из важнейших задач является предоставление пользователям Интернета информации, хранящейся в базах данных SQL Server 2000. Конечно, к настоящему времени разработано множество технологий, с помощью которых можно успешно реализовывать интерфейс между пользователем Интернета и различными источниками информации, в том числе и SQL Server 2000. Однако все важнее становится скорость создания конечных систем и при этом требуется, чтобы стоимость создания такой системы была невысока. Таким образом, к современной системе управления базами данных предъявляется требование предоставить простой и эффективный механизм публикации информации в Интернете. Еще в предыдущих версиях SQL Server существовали механизмы публикации хранящейся в базах данных информации в глобальной сети. Однако возможности той технологии были достаточно ограничены. В распоряжении пользователя имелся только мастер Web Assistant Wizard и сопутствующие системные хранимые процедуры, с помощью которых на основе таблицы или результата выборки, возвращаемого запросом или хранимой процедурой, можно было сгенерировать статическую HTML-страницу. Именно к ней и обращались пользователи Интернета. Конечно, запуская подсистему автоматизации, можно было периодически обновлять страницу путем повторного ее генерирования. Однако пользователи при этом должны были удовлетворяться формой представления и набором данных, которые им предлагал администратор. Они не могли осуществлять произвольную выборку данных в соответствии с нужными им критериями и управлять формой представления данных.
10_
Часть I. Архитектура SQL Server 2000
В SQL Server 2000 был сделан существенный рывок в сторону интеграции этой СУБД в Интернете. Помимо мастера Web Assistant Wizard теперь в распоряжении пользователя имеется технология XML, с помощью которой посетители сети могут непосредственно обращаться к информации, хранящейся в базах данных SQL Server 2000. Можно непосредственно в окне браузера Интернета указать запрос, являющийся основой набора данных, которые SQL Server 2000 автоматически преобразует в формат документа. ХМL. Конечно, часто пользователи создают однотипные запросы. Поэтому для удобства пользователей SQL Server 2000 позволяет указывать готовые запросы. Кроме того, можно применять различные шаблоны представления информации. Для работы с технологией XML в SQL Server 2000 были внесены некоторые изменения в запрос SELECT, точнее в раздел FOR. Указывая в запросе значение FOR XML, пользователь тем самым предписывает серверу выполнить преобразование данных в формат документа XML. При этом поддерживается три режима преобразования, позволяющие представлять данные в виде плоского текста (режим RAW), простого дерева (режим AUTO) ИЛИ СЛОЖНОГО многоуровнего дерева с явным указанием зависимостей между элементами (режим EXPLICIT). В качестве примера попытаемся получить три первых фамилии авторов из таблицы authors базы данных pubs: SELECT TOP 3 au_lname FROM authors FOR XML RAW
Будет возвращен следующий результат: XML_F52E2B61-18Al-lldl-Bl05-00805F49916B row au_lname="Carson"/> (3 row(s)
affected)
Предполагается, что указанный запрос будет выполнен в Query Analyzer. Это позволяет увидеть, какие преобразования осуществляет сервер для представления данных в формате XML. Однако, на деле полученные данные должны просматриваться в Интернет-браузере. Попробуем это сделать. Для чего в поле Address окна Internet Explorer введем следующую строку: http://storage/matrix?sql=select+'';select+top+3+au_lname+from+authors +for+xml+raw;select+''
Замечание Чтобы иметь возможность выполнить приведенный запрос, необходимо предварительно установить Internet Information Server (IIS) и сконфигурировать поддержку XML для SQL Server 2000, что предполагает создание так называемых виртуальных каталогов (virtual directory). Отметим, что для генерации страниц HTML с помощью Web Assistant Wizard установки IIS не требуется. Однако, чтобы сгенерированные страницы могли просматривать пользователи Интернета или intranet, все же придется установить какой-нибудь Web-сервер, частным случаем которого является Internet Information Server, предлагаемый фирмой Microsoft и поставляемый в составе операционных систем семейства Windows 2000.
Глава 1. Обзор SQL Server 2000
11
Результат выполнения этого запроса приведен на рис. 1.1. Помимо представления в Интернет-браузере текстовых данных, технология XML позволяет демонстрировать и графические файлы, сохраненные в таблице базы данных, строить различные векторные изображения на основе данных таблиц, а также выполнять другие различные операции. «http://storage/matriK?sql=seIect+' File Edit View Favorites Tools Help ч-1 Back - •' ^ _Q ^ • '^Search ие]Favorites ^History I Address [is] T>';select+top+3+auJname+from+authors+for+xml+raw;select+'' J j ^Go ii Links **!
Done
^ Local intranet
Рис. 1.1. Просмотр данных таблицы через браузер Интернета
Надежность В любые времена от системы управления базами данных требовалось обеспечение устойчивости к различным сбоям и возможность дальнейшего функционирования системы в случае выхода из строя некоторых аппаратных частей сервера или даже всего сервера. Уже в предыдущих версиях SQL Server в распоряжении администраторов имелись технологии кластеризации (fail-over support) и резервного сервера (standby server). Последняя технология предполагает установку в сети дополнительных серверов SQL Server 2000, на которых будут периодически дублироваться данные основного сервера. В случае выхода из строя основного сервера резервный сервер конфигурируется как основной, и пользователи продолжают работать с этим сервером. Когда же поврежденный сервер будет восстановлен, то он снова будет основным, тогда как второй сервер — резервным. Недостатком этой технологии является то, что серверы должны иметь различные имена и сетевые адреса. Вследствие чего в случае выхода из строя основного сервера клиенты должны будут переключиться на новый сервер, что требует определенных усилий и затрат времени. Кроме этого, администратор должен вручную обеспечивать согласованность данных на основном и резервном сервере. Гораздо более мощной по сравнению с резервным сервером является технология кластеризации. Для пользователей кластер выглядит как единственный сервер сети. Однако на самом деле такой кластер состоит из двух компьютеров, которые дублируют друг друга в реальном времени. Компьютеры, из которых состоит кластер, называются узлами (node). При выходе из строя одного из узлов все задачи автоматически переносятся на оставшийся узел и решаются на
V2_
Часть I. Архитектура SQL Server 2000
нем. При этом пользователям не нужно изменять никаких своих настроек. Для работы кластера обычно применяется внешний дисковый массив, на котором хранятся общие данные, используемые собственно кластером, а не индивидуально каждым узлом. Базы данных, с которыми работают пользователи, как раз и являются примером таких общих данных. Таким образом, даже полный выход из строя одного из узлов не приведет к невозможности доступа к данным. Замечание Для работы кластеров обычно используются дисковые массивы RAID, обеспечивающие устойчивость к физическому повреждению дисковых носителей. Таким образом, можно обеспечить высокую защищенность собственно данных. Однако стоимость дисковых массивов RAID довольно высока. Вкупе с необходимостью применения дополнительных компьютеров использование кластеров является довольно дорогостоящим удовольствием. Подробно дисковые массивы RAID будут рассмотрены в главе 16. В предыдущих версиях SQL Server кластер мог быть создан только с использованием двух узлов. В SQL Server 2000 администратор может создавать кластеры, состоящие из четырех узлов. Управление кластерами в SQL Server 2000 существенно упростилось по сравнению с предыдущими версиями. Теперь создание кластера выполняется как часть процесса установки SQL Server 2000. Помимо этого, с помощью мастера установки также можно включить (или исключить) в кластер дополнительный узел. Администратор может безболезненно переустанавливать один из узлов кластера, не влияя при этом на другие узлы. В утилиты и административные утилиты SQL Server 2000 были внесены изменения, позволяющие им работать с виртуальным сервером (кластером). Так что теперь администрирование кластера стало гораздо проще, чем в предыдущих версиях. Подробно работа с кластерами будет рассмотрена в главе 16.
Репликация Подсистема репликации SQL Server 2000 также была расширена по сравнению с предыдущими версиями. Конечно, эти изменения менее заметны, чем сделанные в SQL Server 7.0 по сравнению с более ранними версиями, однако все же их стоит рассмотреть. Самым заметным изменением является расширение набора механизмов разрешения конфликтов изменения, используемых репликацией сведением, а также появление дополнительной технологии, позволяющей выполнять изменения данных на подписчиках при работе с репликацией транзакций и моментальных снимков. В SQL Server 7.0 система репликации была существенно расширена по сравнению с SQL Server 6.x. В распоряжении пользователей появилась репликация сведением (merge replication), а также технология подписчиков незамедлительного обновления (immediately update subscriber). Обе технологии позволяли вносить изменения в опубликованные данные со стороны подписчиков, что было невозможно в предыдущих версиях. Репликация сведением, являющаяся самостоятельным типом репликации, к тому же самым сложным, позволяет пользователям изменять данные даже при отсутствии соединения между дистрибьютором
Глава 1. Обзор SQL Server 2000
13_
(издателем) и подписчиком. Технология же подписчиков незамедлительного обновления позволяет подписчикам изменять данные при работе с репликацией транзакций и моментальных снимков. Однако применение этой технологии требовало наличия постоянного соединения между подписчиком и издателем. В противном случае выполнить изменение опубликованных данных на подписчике не удастся. Пользователь должен будет отложить выполнение изменений до установления соединения. В.SQL Server 2000 появилась технология отложенного обновления (Queue updating), которая, как и технология подписчиков незамедлительного обновления, используется при работе с репликацией моментальных снимков и репликацией транзакций, но позволяет выполнять изменения опубликованных данных на подписчике и в случае отсутствия соединения между подписчиком и издателем (дистрибьютором). Выполненные на подписчиках изменения сохраняются в очереди (queue), а не применяются сразу же, как это происходит при работе с подписчиками незамедлительного обновления. Поэтому наличие соединения не требуется. Когда же соединение между подписчиком и дистрибьютором устанавливается, то механизмы репликации SQL Server 2000 считывают информацию об осуществленных изменениях и соответствующим образом обрабатывают их. В результате выполненные подписчиком изменения либо копируются всем другим участникам репликации, либо отменяются. Говоря же об улучшениях в репликации сведением, можно сказать, что теперь в распоряжении администраторов имеется более полутора десятков различных механизмов разрешения конфликтов изменения, выбирающих победителя не на основе шкалы приоритетов, а на основе выполненных изменений. При этом в результате разрешения конфликта может быть выбрано не только одно из конфликтующих изменений (а другие потеряны), но также результатом разрешения конфликта будет являться значение, учитывающее все изменения. При работе с символьными значениями, это может быть конкатенация строк, а при работе с численными — среднее арифметическое или сумма. Также как и в SQL Server 7.0, пользователи могут создавать свои собственные механизмы разрешения конфликтов, добиваясь нужной функциональности. Подробно подсистемы репликации, в том числе технология отложенного обновления и репликация сведением, будут рассмотрена в главе 14.
Новые типы данных Хотя в большей степени набор типов данных SQL Server 2000 соответствует типам данных SQL Server 7.0, тем не менее, в распоряжении пользователей появилось три новых типа данных: О b i g i n t — это "большой" integer, использующий для представления числа 8 байт. Для сравнения, в SQL Server 7.0 и более ранних версиях максимальным являлся тип данных i n t , использующий 4 байта. Казалось бы, что возможностей этого типа данных вполне достаточно. Однако если тип данных i n t используется для столбцов-счетчиков, то при работе с большими базами данных вполне вероятна ситуация, когда значения счетчика приблизятся к
U_
Часть I. Архитектура SQL Server 2000 предельному значению этого типа данных. Применение же типа данных b i g i n t отодвигает эту проблему далеко в будущее.
П s q i v a r i a n t — это принципиально новый тип данных, который может использоваться как при работе с переменными, так и со столбцами таблиц. Тип данных s q i _ v a r i a n t позволяет хранить значения большинства типов данных, предлагаемых SQL Server 2000. Таким образом, в одном столбце таблицы можно хранить числовые данные (как дробные, так и целые), данные о дате и времени, денежную информацию, символьные и т. д. •
table — это также совершенно новый тип данных, предназначенный только для работы с локальными переменными. Переменную типа данных table можно сравнить с локальной временной таблицей, т. к. такая переменная позволяет хранить сложные наборы данных наподобие таблиц. Как и таблица, переменная типа t a b l e имеет столбцы и строки, и в нее можно вставлять новые строки, удалять существующие и т. д. — в общем, работать как с обычной таблицей. То есть при работе с переменной типа данных t a b l e используются те же команды INSERT, DELETE, UPDATE И SELECT, ЧТО И при работе с обычными
таблицами. Вкупе с возможностью применения типа данных t a b l e в качестве возвращаемого значения определяемой пользователем функции (user-defined function) это открывает широкие возможности для разработчиков. Подробно описание и работа с типами данных SQL Server 2000, в том числе и с указанными, будет рассмотрена в главе 26. Работа же с пользовательскими функциями будет описана в главе 27.
Индексирование представлений Представления являются весьма удобным механизмом работы с данными, физически расположенными в нескольких таблицах. Однако при каждом обращении к представлению сервер должен выполнить запрос SELECT, на основе которого было создано представление. Полученные в результате выполнения запроса данные и отображаются пользователю. Этот процесс называется материализацией представления. Даже неопытный пользователь может отметить, что процесс материализации представления может быть весьма ресурсоемким и длительным, особенно если представление работает со множеством таблиц. При этом в предыдущих версиях SQL Server для представления не разрешалось создание индексов, что не позволяло повысить производительность работы с ними. В SQL Server 2000 был сделан заметный шаг вперед в отношении представлений — теперь они могут быть индексированы. Первый индекс, создаваемый для представления, должен быть кластерным. Отметим, что кластерный индекс предполагает физическое перестроение порядка строк в соответствии с условиями индексирования. Однако представление не содержит собственных данных, а лишь демонстрирует данные таблиц базы данных. Поэтому при создании для представления кластерного индекса сервер сохраняет в базе данных все строки, которые были выбраны для представления на момент создания индекса. Таким образом, представление становится материализованным. Отдельно отметим, что сохраняются не данные индексируемых столбцов, а все столбцы,
Глава 1. Обзор SQL Server 2000
15_
имеющиеся в представлении. Тем не менее, порядок строк будет соответствовать условиям создания кластерного индекса. Сохранение данных всех столбцов делает возможным создание для представления некластерных индексов, которые будут связаны с данными кластерного индекса представления. Естественно, при индексировании представлений неизменно встает вопрос об отображении в кластерном и некластерных индексах изменений, выполненных в таблицах, на основе которых построено представление. Однако все эти вопросы SQL Server 2000 решает автоматически без вмешательства пользователя. Таким образом, можно быть уверенным, что индексированное представление всегда содержит корректные данные. Индексирование представления является довольно тонкой операцией, требующей соблюдения множества условий. Подробно все эти условия будут предсталены в главе 23. Тем не менее, индексирование представлений может весьма заметно увеличить скорость работы с представлениями.
Масштабируемость Как и предыдущая версия, SQL Server 2000 обеспечивает высокий уровень масштабируемости. В зависимости от используемой редакции пользователи могут применять SQL Server 2000 как на домашних компьютерах, устанавливая его для операционной системы Windows 98, так и на многопроцессорных корпоративных серверах. Помимо этого, имеется возможность использования только ядра SQL Server 2000, что широко практикуется при создании независимыми разработчиками различных систем, требующих механизмов (engine) хранения и обработки данных. Встроенный таким образом в приложение SQL Server 2000 может инсталлироваться в операционной системе как часть процесса установки приложения. Таким образом, пользователи могут и не подозревать, что на компьютер будет установлен SQL Server 2000. Тем не менее, основным направлением все же является традиционная работа SQL Server 2000 в качестве сетевого сервера баз данных, доступного для любого авторизованного пользователя или приложения. В зависимости от масштаба предприятия, количества пользователей и ожидаемой нагрузки можно применять различные редакции SQL Server 2000 — от персональной редакции (Personal Edition), работающей под управлением операционной системы Windows 98 и оптимизированной для небольшого количества пользователей (до пяти), до Enterprise Edition, позволяющей использовать системы с количеством процессоров до 32 и объемом оперативной памяти до 64 Гбайт, а также поддерживающей создание кластеров. Помимо всего сказанного, можно отметить, что SQL Server 2000 является составной частью многофункциональной интегрированной платформы Windows DNA 2000, ориентированной на разработку и эксплуатацию современных распределенных Web-приложений, и предоставляющей заказчикам эффективный доступ к возможностям, открываемым новой волной Интернет-коммерции — Business Internet. 2 Зак. 83
Глава 2
Компоненты SQL Server 2000 Для профессиональной работы с SQL Server 2000 необходимо понимать принципы его функционирования, знать, какой из компонентов необходимо использовать в том или ином случае. После прочтения этой главы вы будете иметь четкое представление о принципах работы Microsoft SQL Server 2000, его компонентах и их взаимосвязях. В главе рассмотрены службы SQL Server 2000, приведена информация об их назначении и методах использования. В главе также рассматриваются системные базы данных SQL Server 2000, дано их описание и назначение.
Службы SQL Server 2000 Как и многие серверные продукты, работающие под управлением операционной системы Windows NT или под управлением операционной системы Windows 2000, Microsoft SQL Server 2000 реализован в виде набора служб операционной системы, каждая из которых запускается самостоятельно и отвечает за определенный круг задач. Приведем список служб SQL Server: •
MSSQLServer;
П
SQLServerAgent;
•
Microsoft Search (MSSearch);
•
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.
Служба MSSQLServer Служба MSSQLServer является ядром SQL Server 2000 и выполняет все основные операции. В задачи службы MSSQLServer входит регистрация пользовате-
Глава 2. Компоненты SQL Server 2000
17_
лей, контроль их прав доступа, установление соединения, обслуживание обращений пользователей к базам данных, выполнение хранимых процедур, работу с файлами баз данных и журнала транзакций и многое другое. В функции службы MSSQLServer также входит контроль за использованием SQL Server 2000 системных ресурсов. Служба MSSQLServer периодически опрашивает систему о количестве свободных ресурсов и при достаточном их наличии автоматически выделяет SQL Server дополнительную память или процессорное время. Полученные ресурсы наиболее эффективным образом распределяются между всеми подключенными пользователями, и тем самым достигается максимальная производительность обработки запросов. При использование многопроцессорной системы служба MSSQLServer выполняет распараллеливание "тяжелых" запросов пользователей между всеми доступными процессорами для повышения производительности. Все остальные службы можно рассматривать как расширения службы MSSQLServer, добавляющие гибкость и функциональность SQL Server 2000. Служба MSSQLServer всегда запускается первой и уже после ее успешного старта другие службы, например SQLServerAgent, могут быть запущены и начать свою работу.
Служба SQLServerAgent Служба SQLServerAgent, прежде всего, предназначена для автоматизации администрирования и использования SQL Server 2000. В задачи этой службы входит автоматический запуск заданий и извещение операторов о сбоях в работе сервера. С помощью службы SQLServerAgent можно выполнять запуск различных задач в определенное время, что при грамотном использовании может избавить администратора от большей части рутинной работы. Например, администратор может спланировать автоматическое выполнение операций резервного копирования и проверки целостности информации в базе данных во время наименьшей активности пользователей. При этом администратору не нужно будет находиться рядом и контролировать ход выполнения операций. Служба SQLServerAgent является зависимой по отношению к службе MSSQLServer. Последняя может успешно работать и без службы SQLServerAgent, в то время как для запуска службы SQLServerAgent необходимо предварительно запустить службу MSSQLServer. Служба SQLServerAgent устанавливает соединение с ядром SQL Server 2000 наподобие обычного клиента, но имеет при этом широкие права. Большая часть операций, выполняемых службой SQLServerAgent, реализована в виде системных хранимых процедур, которые, как говорилось ранее, выполняются службой MSSQLServer. Для успешного взаимодействия служб SQLServerAgent и MSSQLServer необходимо правильно настроить учетные записи, под которыми они будут запускаться. В работе службы SQLServerAgent применяются объекты трех типов: •
Jobs (задания);
•
Operators (операторы);
П Alerts (события).
18
Часть I. Архитектура SQL Server 2000
Информация обо всех этих объектах, включая расписание автоматического запуска задач, хранится в системной базе данных Msdb. При каждом старте SQLServerAgent анализирует содержание этой базы данных. Если к моменту запуска службы накопились "просроченные" задания или произошло сконфигурированное событие, то служба SQLServerAgent выполняет соответствующие действия. Для управления заданиями, операторами и событиями можно использовать различные методы. Наиболее удобным и наглядным из них является использование графического интерфейса утилиты Enterprise Manager. Другой способ заключается в вызове системных хранимых процедур и команд Transact-SQL. Третий способ предполагает обращение к интерфейсу SQL-DMO. В последнем случае возможно написание своих собственных приложений, обеспечивающих интерфейс работы с заданиями, операторами и событиями. Описание методов SQLDMO достойно отдельной книги и рассмотрено не будет. Квалифицированный подход к работе службы SQLServerAgent может снизить расходы на сопровождение баз данных, в частности за счет уменьшения количества операторов и администраторов. Польза от применения службы SQLServerAgent пропорциональна размеру предприятия. Чем больше предприятие, тем больше пользы оно получит от всех возможностей SQL Sei-ver 2000. Подробно подсистема автоматизации администрирования SQL Sei-ver 2000 будет рассмотрена в главе 12. Ниже обсуждается использование каждого из объектов службы SQLServerAgent.
Объекты Jobs Объекты этого типа описывают задачи, которые должны быть выполнены автоматически. Для каждого задания указывается одно или более расписаний (schedule) его запуска. Кроме того, задание может быть выполнено по требованию (on demand), т. е. вручную. Каждое задание состоит из одного или более шагов (step). В качестве шага может выступать команда или запрос Transact-SQL, команды управления подсистемой репликации, запуск утилиты командной строки или приложения Windows, выполнение скрипта VBScript или JavaScript и другие. Служба SQLServerAgent обладает большими возможностями контроля правильности выполнения заданий, позволяя создавать многошаговые задания. Шаги могут быть связаны между собой по определенным правилам. Например, если проверка целостности базы данных завершилась успешно, то служба SQLServerAgent создаст резервную копию данных, в противном же случае сервер может отправить соответствующее извещение администратору по электронной почте или на пейджер. Служба SQLServerAgent позволяет гибко управлять временем запуска задач, обеспечивая их выполнение как в определенное время, так и в моменты наименьшей загруженности сервера.
Объекты Operators Объекты этого типа описывают операторов. Оператор — это служащий, отвечающий за поддержание сервера в рабочем состоянии. В небольших организациях роли оператора и администратора обычно совмещает один человек. На
Глава 2. Компоненты SQL Server 2000 больших предприятиях и в корпорациях роли администратора и оператора чаще всего разделены между несколькими людьми. Администратор выполняет только ответственную работу, например планирование, создание и изменение баз данных. Оператор же чаще занимается рутинной работой, такой как выполнение резервного копирования базы данных, добавление пользователей, контроль за целостностью данных и т. д. Если организация большая, то можно использовать специализированных операторов. Например, один из операторов будет ответственен за выполнение операций резервного копирования, другой станет следить за целостностью данных и т. д. Соответственно, каждый из операторов должен получать сообщения, относящиеся к его виду деятельности. Нежелательно, чтобы оператор резервного копирования начал разрешать проблемы мертвых блокировок. SQL Server 2000 отслеживает параметры своей работы и при обнаружении неполадок, например, при недостатке свободного пространства на диске, может известить оператора о неприятностях. Для этого используется служба SQLServerAgent. Необходимо предварительно сконфигурировать операторов и указать события, при наступлении которых будет отправляться извещение операторам. Служба SQLServerAgent для извещения операторов может рассылать определенные сообщения по электронной почте или отправлять сообщение непосредственно на пейджер оператора. Кроме того, для извещения оператора допускается вызов команды NET SEND, с помощью которой можно отправить сообщение в локальной сети. Можно настроить запуск NET SEND команды таким образом, что сообщение получат все пользователи сети, в надежде, что кто-нибудь их них сообщит оператору о проблемах в работе сервера. Но чаще всего команда NET SEND служит для посылки сообщения конкретному пользователю.
Объекты Alerts Объекты типа Alerts описывают события, на которые должен реагировать SQL Server 2000. При наступлении описанного события сервер с помощью службы SQLServerAgent отправляет одному или нескольким операторам извещение об обнаружении неполадок в работе сервера. События SQL Server 2000 охватывают почти все аспекты работы сервера, что позволяет эффективно контролировать работу SQL Server 2000. Операторам не обязательно постоянно находиться рядом с сервером, чтобы знать о параметрах его работы. Оператор может даже не присутствовать в здании при обнаружении сбоя, но он может получить извещение на пейджер и предпринять необходимые действия, в том числе и удаленно. Описанный подход позволяет снизить затраты на сопровождение баз данных в больших организациях. Отпадает необходимость в персональном операторе для каждого из серверов предприятия. Так как больше не требуется находиться непосредственно рядом с сервером, то можно нанять двух или трех квалифицированных специалистов, которые будут следить за всеми серверами в сети. Помимо извещения операторов о наступлении того или иного события SQL Server 2000 позволяет выполнять в ответ на события определенные задачи.
20
Часть I. Архитектура SQL Server 2000
Служба Microsoft Search Служба Microsoft Search (MSSearch), также называемая Full-Text Search, используется для поиска символьной информации в таблицах баз данных SQL Server 2000. Архитектура и принципы работы системы поиска в SQL Server 2000 были существенно переработаны по сравнению с предыдущими версиями. Служба Microsoft Search позволяет выполнять полнотекстовый поиск (full-text search). Технология полнотекстового поиска позволяет находить не только слова и фразы, идентичные указанным, но и близкие к ним по смыслу и написанию. После выполнения поиска пользователь получит результирующий набор, содержащий склоняемые формы глаголов и существительных. Технология полнотекстового поиска активно внедряется корпорацией Microsoft во все свои продукты. Например, в Microsoft Internet Information Server имеется компонент Index Server, выполняющий полнотекстовый поиск на публикуемых HTML-страницах. Для реализации полнотекстового поиска в SQL Server 2000 существуют полнотекстовые каталоги (full-text catalog) и полнотекстовые индексы (full-text index). Данные полнотекстовых каталогов и индексов хранятся отдельно от основных данных в специальных файлах. Все действия по работе с этими файлами осуществляет служба MSSearch. Связь между службами MSSQLServer и MSSearch производится через специального поставщика (full-text provider). Служба MSSearch периодически анализирует содержание таблиц баз данных и обновляет (repopulation) полнотекстовые каталоги и индексы. Если необходимо создать полнотекстовый индекс заново, следует выполнить перестроение (rebuild) индекса. Результатом такого подхода является то, что данными полнотекстового поиска нужно управлять отдельно от основных данных. Администратор должен настроить интервалы обновления данных полнотекстового поиска. Кроме того, операции резервного копирования и восстановления файлов полнотекстового поиска необходимо выполнять отдельно от основных данных. Замечание Служба MSSearch может функционировать только в качестве службы Windows NT и работать только под управлением операционной системы Windows NT Server. Следствием этого ограничения является невозможность установки службы полнотекстового поиска в редакции SQL Server Desktop Engine. Служба MSSearch устанавливается только для редакций SQL Server Standard Edition и SQL Server Enterprise Edition. Тем не менее, любые клиенты, включая клиентов Windows 95/98 и Windows NT Workstation, имеют возможность обращаться с запросами на полнотекстовый поиск к серверам с установленной службой MSSearch.
Служба MSDTC SQL Server 2000 дает возможность пользователям работать одновременно с несколькими источниками данных. Пользователи в одном запросе могут обращаться к различным базам данных, хранящимся на одном и том же или на раз-
Глава 2. Компоненты SQL Server 2000
21_
ных серверах. Кроме того, пользователи могут обращаться не только к серверам Microsoft SQL Server 2000, но также к любым источникам данных, работающим с технологией OLE DB. Эта технология позволяет обращаться не только к реляционным источникам данных, таким как Oracle, FoxPro, MS Access и т. д., но и к нереляционным источникам данных, таким как текстовые файлы, книги MS Excel и настольные приложения. Для обращения из тела одной транзакции к множеству источников данных SQL Server 2000 использует распределенные транзакции (distributed transaction). Для управления распределенными транзакциями существует координатор распределенных транзакций (Distributed Transaction Coordinator). В SQL Server 2000 координатор распределенных транзакций реализован в виде службы MSDTC. Эта служба автоматически отслеживает ситуации, в которых необходимо начать выполнение распределенных транзакций. В некоторых ситуациях пользователь может и не подозревать, что его транзакция выполняется как распределенная. Служба MSDTC скрывает от пользователя все действия по обработке распределенных транзакций. Распределенные транзакции реализуются как множество локальных транзакций, открываемых на каждом источнике данных координатором распределенных транзакций. Служба MSDTC синхронизирует все транзакции таким образом, что пользователь может быть уверен в целостности данных на всех участниках распределенной транзакции. Это достигается использованием специального двухфазного протокола изменений (2РС, two-phase commit protocol). Подробно работа этого протокола будет рассмотрена в разд. "Отложенное обновление" главы 14. Замечание Обратите внимание, что даже если вы работаете с данными, расположенными на одном сервере, но хранящимися в разных базах данных, SQL Server 2000 будет использовать распределенную транзакцию.
Системные базы данных SQL Server 2000 SQL Server 2000 в своей работе использует несколько системных баз данных. Эти базы данных создаются автоматически при установке SQL Server 2000 и не должны удаляться. Вся информация о настройке сервера хранится в этих базах данных. Их можно сравнить с реестром операционной системы Windows, в котором хранится вся системная и пользовательская информация. Удаление или повреждение реестра приведет к краху системы и невозможности ее работы. Аналогичная ситуация наблюдается и с системными базами данных SQL Server 2000. Приведем список системных баз данных: П Master;
П Model;
П Tempdb;
П Msdb.
При работе с реестром операционной системы пользователи чаще всего выбирают специальные инструменты, например утилиты панели управления. Не рекомендуется напрямую работать с реестром, т. к. даже небольшие изменения могут существенно повредить работоспособности системы. Таким же образом следует поступать и при работе с системными базами данных SQL Server 2000. Не рекомен-
22_
Часть I. Архитектура SQL Server 2000
дуется напрямую работать с этими таблицами с помощью команд SELECT, INSERT, UPDATE и DELETE. Кроме того, при установке SQL Server 2000 непосредственное изменение информации в системных базах данных запрещено. Тем не менее, пользователи могут считывать данные с помощью команды SELECT. Для изменения данных в системных таблицах в SQL Server 2000 имеется набор системных хранимых процедур, с помощью которых можно выполнить практически любые действия по администрированию сервера. Microsoft настоятельно рекомендует использовать эти хранимые процедуры, а не изменять данные непосредственно. Это связано не только с опасностью повреждения системных данных, но еще и с обеспечением совместимости. Microsoft может изменить структуру системных таблиц и назначение колонок в следующих версиях SQL Server. Если приложение напрямую изменяет системные таблицы SQL Server 2000 и при этом корректно работает, то нет никакой гарантии, что оно станет правильно работать в следующих версиях. При использовании системных хранимых процедур Microsoft обещает, что приложение будет корректно работать даже при существенных изменениях в системных базах данных. Так, например, приложения SQL Server 6.x, использующие для взаимодействия с сервером системные хранимые процедуры, успешно работают и в SQL Server 2000, хотя структура системных таблиц и архитектура самого SQL Server претерпели существенные изменения. Помимо применения системных хранимых процедур для управления сервером и базами данных можно использовать графический интерфейс Enterprise Manager или возможности программного интерфейса SQL-DMO. Подробно работа с базами данных SQL Server 2000 будет рассмотрена в главе 20. Сейчас же рассмотрим назначение каждой из системных баз данных.
База данных Master Эта системная база данных является главной базой данных SQL Server 2000. Собственно, она и выполняет функции реестра операционной системы Windows. Остальные системные базы данных имеют второстепенное значение и их можно считать вспомогательными. В базе данных Master хранится вся системная информация о параметрах конфигурации сервера, имеющихся на сервере пользовательских баз данных, пользователях, имеющих доступ к серверу и другая системная информация. В табл. 2.1 приведены таблицы системной базы данных Master, используемые для хранения параметров конфигурации сервера. Таблица 2.1. Таблицы базы данных
Master
Название таблицы
Описание
Sysaltfiles
Эта таблица содержит информацию обо всех файлах базы данных M a s t e r , включая файл журнала транзакций — их имена, размещение, текущий и максимальный размер, статус и т. д.
Syscacheobj e c t s
Содержит информацию об использовании сервером кэш-памяти
Глава 2. Компоненты SQL Server 2000
23
Таблица 2.1 (продолжение) Название таблицы
Описание
Syscharsets
В этой таблице описываются все установленные на сервере наборы символов и порядки сортировки
Sysconfigures
В таблице хранится информация обо всех параметрах конфигурации сервера, а также отражается информация о параметрах конфигурации, изменяемых динамически после запуска сервера
Syscurconfigs
В этой таблице хранятся текущие значения настроек сервера, т. е. настроек, используемых в настоящий момент. Таблица строится динамически на основе данных таблицы S y s c o n f i g u r e s
Sysdatabases
Содержит сведения обо всех базах данных сервера — именах и размещении первичных файлов, ID, статусе, дате создания и т. д.
Sysdevices
В этой таблице приведена информация о настройках системы резервного копирования. В SQL Server 2000 данная таблица не используется и оставлена для обеспечения обратной совместимости с SQL Server 6.x
Syslanguages
Содержит описание всех локальных языков, поддерживаемых сервером, в т. ч. информация о формате дат. Каждая строка таблицы соответствует одному языку. Английский язык в таблице не указывается, т. к. используется всегда
Syslockinfo
Эта таблица используется менеджером блокировок и содержит информацию о блокировках — их тип, время "жизни", режим регистрации, статус, ID владельца и другую информацию
Syslogins
В этой таблице хранится информация об учетных записях пользователей, имеющих доступ к серверу — имя и пароль пользователя, тип аутентификации, ID и т. д. Каждая строка таблицы соответствует одному пользователю
Sysmessages
Таблица содержит все сообщения о системных ошибках или предупреждениях. Каждая строка соответствует одному сообщению и включает информацию о номере ошибки, ее важности, группе сообщения, а также текст сообщения
Sysoledbusers
Содержит информацию об отображении учетных записей при работе со связанными серверами. Каждая строка соответствует одному связанному серверу и хранит данные об имени пользователя и его пароле, под которым будет регистрироваться соединение на связанном сервере
Sysperfinfо
Данная таблица используется для хранения информации о внутренних счетчиках SQL Server 2000. Информация из этой таблицы используется утилитой Performance Monitor
Sysprocesses
В таблице динамически отображается информация о клиентских и системных процессах, выполняемых SQL Server
24
Часть 1. Архитектура SQL Server 2000
Таблица 2.1 (окончание) Название таблицы
Описание
Sysremotelogins
В этой таблице хранится информация об удаленных пользователях, которым разрешено удаленно выполнять хранимые процедуры. Каждая строка таблицы содержит имя пользователя, его SUID, SID, ID удаленного сервера и т. д.
Sysservers
Эта таблица применяется для хранения информации о всех серверах SQL Server, сконфигурированных в качестве источника данных OLE DB для локального SQL Server 2000
По умолчанию база данных Master создается в каталоге Data установочного каталога SQL Server 2000. База данных состоит из двух файлов: •
Master.mdf — основной файл базы данных, содержащий собственно данные. Размер этого файла после установки составляет 8 Мбайт;
•
Master.ldf — файл базы данных, предназначенный для хранения журнала транзакций. Размер этого файла после установки составляет 1 Мбайт.
База данных Model Эта системная база данных является шаблоном для создания новых баз данных. Технология создания новой базы данных в SQL Server 2000 построена следующим образом: сервер копирует базу данных Model в указанное место и изменяет ее имя соответствующим образом. Если при создании базы данных не указаны никакие параметры, кроме ее имени, то новая база данных будет являться полной копией базы данных Model. Если же размер и состав файлов создаваемой базы данных указан явно, то скопированная база данных изменяется соответствующим образом. Но в любом случае в качестве основы используется база данных Model. Независимо от того, создаете ли вы базу данных с помощью интерфейса Enterprise Manager, команд Transact-SQL или интерфейса SQL-DMO, последовательность действий во всех случаях будет одинакова. Изменяя параметры базы данных Model, можно управлять параметрами по умолчанию создаваемых баз данных. Кроме того, базу данных Model можно использовать в качестве корпоративного стандарта на содержимое и свойства базы данных. Администратор может создать в базе данных Model набор таблиц и хранимых процедур, которые должны быть в каждой базе данных, а не утруждать себя изменением очередной вновь созданной базы данных вручную. Можно ускорить создание множества однотипных таблиц со специализированной конфигурацией, если соответствующим образом изменить базу данных Model. Если на предприятии имеются операторы, выполняющие специализированные задачи, или пользователи, которые всегда должны иметь возможность читать данные из базы данных, то, настроив соответствующим образом права доступа этих пользователей к базе данных Model, можно не бояться забыть это сделать после создания базы данных.
Глава 2. Компоненты SQL Server 2000
25_
После установки SQL Server 2000 размер базы данных Model установлен в 1,5 Мбайт. База данных Model располагается в каталоге Data и состоит из двух файлов размером по 0,75 Мбайт каждый: •
Model.mdf — основной файл базы данных, содержащий собственно данные;
П Model.ldf — файл базы данных, используемый для хранения журнала транзакций.
База данных Tempdb Пользователям иногда необходимо создавать временные таблицы, представления, курсоры и другие объекты для сохранения промежуточных результатов. SQL Server 2000 позволяет создавать такие временные объекты. Для создания временной таблицы достаточно добавить перед ее именем символ # или ##. Сервер автоматически создаст временную таблицу. Временные объекты могут быть локальными или глобальными. Локальные объекты доступны только из того соединения, в котором они созданы. При этом можно создавать одноименные объекты в различных соединениях. Для организации локальной временной таблицы или представления в имя объекта добавляется символ #, а при создании локальной переменной предназначен символ @. Глобальные объекты, созданные в одном соединении, доступны из всех остальных активных соединений. При этом допускается создание единственного глобального временного объекта с уникальным именем. Для создания глобальной временной таблицы или представления в имя объекта добавляется символы ##, а при создании локальной переменной используются символы @@. База данных Tempdb, ПОЛНОе Название КОТОРОЙ Temporary DataBase, СЛУЖИТ В
SQL Server 2000 для хранения всех временных объектов, создаваемых пользователями во время сеанса работы. Если постоянные объекты, такие как таблицы или представления, создаются в пользовательской базе данных, то временные объекты возникают в базе данных Tempdb. Доступ к базе данных Tempdb автоматически имеется у всех пользователей, и администратор не должен предпринимать никаких действий для предоставления им доступа к этой базе данных. Отличительной особенностью базы данных Tempdb является то, что она уничтожается каждый раз, когда происходит останов сервера. Естественно, все временные объекты, созданные пользователями, также уничтожаются. При следующем запуске SQL Server 2000 база данных Tempdb создается заново. Понятно, что создание резервной копии базы данных Tempdb совершенно бесполезно. В остальном поведение этой базы данных мало чем отличается от поведения обычных баз данных. При создании базы данных Tempdb, также как и для пользовательских баз данных, в качестве основы применяется база данных Model. При этом наследуются все свойства последней. Администратор должен учитывать это, изменяя параметры базы данных Model. Неверное конфигурирование параметров этой базы данных может неблагоприятным образом повлиять на работу всех пользователей. Кроме того, при планировании параметров базы данных Tempdb следует
26_
Часть I. Архитектура SQL Server 2000
учитывать требования к свободному пространству на диске. Как и для всех баз данных, для Tempdb поддерживается возможность автоматического роста файлов базы данных. При интенсивном обращении пользователей к ресурсам базы данных Tempdb неизбежен ее рост. Необходимо правильно выбрать первоначальный размер и шаг прироста этой базы данных. Неверное конфигурирование этих параметров может заметно снизить производительность системы.
{
Замечание
)
Если сразу же после старта сервера наблюдается рост базы данных Tempdb, то следует увеличить первоначальный размер базы данных и, возможно, повысить шаг ее прироста. Хотя для создания базы данных Tempdb используется база данных Model, все же первоначальный размер и шаг прироста для базы данных Tempdb устанавливается отдельно.
База данных Tempdb состоит из двух файлов, располагающихся в каталоге Data установочного каталога SQL Server 2000. • Tempdb.mdf — основной файл базы данных, содержащий временные объекты. Размер этого файла после установки составляет 8 Мбайт; • Tempdb.ldf — в этом файле хранится журнал транзакций. Размер этого файла после установки составляет 0,5 Мбайт.
База данных Msdb Системная база данных Msdb предназначены для хранения всей информации, относящейся к автоматизации администрирования и управлений SQL Server 2000, а также информации об операторах и событиях. Кроме того, в этой базе данных хранится информация о расписании автоматического запуска заданий. То есть в базе данных Msdb размещается вся системная информация, используемая службой SQLServerAgent. В табл. 2.2 приведены сведения о составе и назначении таблиц базы данных Msdb. Таблица 2.2. Таблицы базы данных Msdb Название таблицы
Описание
Sysalerts
Эта таблица хранит информацию о событиях (alerts), определенных на локальном сервере
Syscategories
Эта таблица содержит категории, используемые Enterprise Manager для управления заданиями, событиями и операторами
Sysdownloadslist
Таблица используется при конфигурировании многосерверных заданий и содержит инструкции, загружаемые всеми серверами назначения
Sysjobhistory
Таблица содержит историю выполнения заданий. Хранится информация о выполнении каждого из шагов задания. Эта информация отображается в Enterprise Manager и может быть использована для поиска сбоев и ошибок
Глава 2. Компоненты SQL Server 2000
27 Таблица 2.2
(окончание)
Название таблицы
Описание
Sysjobs
В этой таблице находится информация обо всех заданиях (jobs), сконфигурированных на сервере
sysjobschedules
В данной таблице хранятся расписания выполнения заданий
sysjobservers
В этой таблице хранится вся информация, касающаяся параметров многосерверных заданий
sysjobsteps
Таблица содержит описание шагов заданий. Каждая строка соответствует единственному шагу какого-либо задания
sysnotifications
Таблица используется для хранения информации об извещениях, посылаемых операторам в случае наступления того или иного сконфигурированного события
sysoperators
Данная таблица предназначена для хранения информации о настройках операторов, сконфигурированных в SQLServerAgent
systargetservergroupmembers
Таблица содержит информацию о том, к какой серверной группе (multiserver group) принадлежит тот или иной сервер назначения
Systargetservergroups
В этой таблице перечислены все группы серверов, сконфигурированные на сервере
Systargetservers
Содержит список серверов назначения, которые включены в функционирующий многосерверный домен
Systaskids
Эта таблица предназначена для хранения информации об отображении задач (tasks) SQL Server 6.x в задания (jobs) SQL Server 2000
автоматического
Глава 3
Использование SQL Server 2000 Все с большей компьютеризацией коммерции и бизнеса выполняется значительная часть анализа и обработки данных. Следует разделить операции анализа и обработки информации. К первым следует отнести формирование разнообразных отчетов о накопленных данных, тогда как вторые предназначены для хранения этих данных. Каждая из операций должна выполняться как можно более эффективно. Хотя конкретные задачи, решаемые с помощью SQL Server 2000, могут быть весьма разнообразны, тем не менее, с учетом разделения операций обработки и анализа среди всего разнообразия этих задач выделяются два основных направления: •
системы оперативной аналитической обработки (OLAP, Online Analytical Processing);
П системы оперативной обработки транзакций (OLTP, Online Transaction Processing). Каждое из этих направлений обладает некоторыми особенностями, которые будут рассмотрены далее в этом разделе. Сейчас же стоит сказать, что сервер, а точнее конкретная база данных или даже таблица, может использоваться только в одном из этих режимов. В SQL Server 2000 нет встроенных средств переключения сервера в тот или иной конкретный режим работы. Для работы в режиме OLAP или OLTP администратор баз данных должен "вручную" соответствующим образом перестроить заполнение страниц данных и индексных страниц, а также изменить некоторые другие аспекты работы сервера.
Системы оперативной аналитической обработки Системы оперативной аналитической обработки, также известные как системы поддержки принятия решения (DSS, Decision Support System) ориентированы на предоставление пользователям мощных механизмов для быстрого и многостороннего анализа данных. Резкий рост спроса на системы аналитической обработки вызван расширением применения компьютерных систем для ведения бизнеса. В современных условиях бизнесмену или главе корпорации нужно быстро получить информацию о наиболее перспективных направлениях торговли или производства, которая сможет дать максимальную отдачу на вложенные
Глава 3. Использование SQL Server 2000
29
средства. Чем более оперативно получается информация, тем эффективнее управление организацией. Спрос на те или иные товары может значительно меняться с течением времени, особенно при смене сезонов. Резкое увеличение спроса на другие товары может быть вызвано временными явлениями. Если вовремя не получить информацию об изменении спроса, то можно лишиться потенциальной прибыли. Более того, если будет принято неправильное решение, то можно понести и убытки. В современной организации информация о продажах накапливается в центральной базе данных. Обычно в ней хранится информация об операциях закупок и продаж товара. Довольно легко получить данные о наличии того или иного товара на складе. Гораздо труднее отследить информацию о спросе на тот или иной товар, а еще сложнее оценить отдачу от вложения денег в той или иной товар. Можно продать тысячу зубных щеток, но получить от этого меньше прибыли, чем от продажи одного телевизора. Если компания не может купить все товары сразу и продавать их все, а должна выбрать лишь некоторые из них, то нужно решить, приобретение и последующая продажа каких товаров может принести наибольшую прибыль. Конечно, если компания небольшая, а ассортимент товаров насчитывает всего несколько десятков, то такой анализ можно выполнить и вручную. Однако если количество торговых точек составляет несколько десятков, а ассортимент товаров насчитывает тысячи наименований, то ручной анализ такого объема информации займет много времени. За то время, пока данные будут анализироваться, они успеют устареть, и могут уже не отражать реальной ситуации на рынке. Рассмотренная ситуация является лишь одной из возможных ситуаций. Однако на ее примере можно понять, как важен оперативный анализ информации. Для решения описанных проблем, а также многих других, предназначены системы оперативной аналитической обработки. Перед системой стоит задача сгруппировать данные, выполнить их агрегирование, часто многоуровневое. При этом могут анализироваться миллионы строк, а в ответ выдаваться небольшой отчет, содержащий сводные показатели. Рассмотрим особенности систем оперативной аналитической обработки (OLAP). П Системы OLAP отличаются небольшим количеством, а часто и полным отсутствием изменений данных. Действительно, если мы проводим анализ данных о продажах, то вряд ли нужно вносить в них изменения. Поэтому можно говорить, что системы OLAP используют данные в режиме "только для чтения". Работа сервера баз данных в таком режиме позволяет более эффективно выполнять запросы, т. к. не нужно устанавливать блокировки и использовать транзакции. Кроме того, страницы данных могут быть заполнены на 100%, что повышает компактность расположения данных. • Одним из важных требований к системам OLAP является скорость выполнения запросов. Время обработки большинства запросов пользователей не должно превышать нескольких секунд. Для этого в базах данных OLAP создается большое количество индексов, значительно ускоряющих поиск нужных данных.
30
Часть I. Архитектура SQL Server 2000
П Пользователи должны легко выполнять наиболее часто используемые операции. Поэтому системы OLAP должны иметь встроенные механизмы выполнения базовых операций численного и статистического анализа данных. D Часто одни и те же данные должны анализироваться с разных сторон. Для этого используется технология многомерного представления информации. Данные из множества таблиц различных баз данных объединяются в одну логическую структуру, позволяющую быстро и легко проанализировать информацию по самым разнообразным критериям. П Для повышения скорости выполнения запросов желательна поддержка технологии материализованных представлений. Материализованное представление создается для конкретного запроса и предназначено для предварительного вычисления результата выполнения этого запроса. Когда пользователь запускает запрос, то анализ всех данных не выполняется. Система использует данные, хранящиеся в материализованном представлении. При внесении новых данных представление автоматически отслеживает изменения и соответствующим образом корректирует информацию, используемую для выполнения запроса. •
Системы OLAP обычно используются для анализа большого объема информации, нередко расположенной на множестве гетерогенных удаленных источников данных. В качестве таких источников может выступать SQL Server 2000, SQL Server 6.x, Oracle, MS Access и другие СУБД. Система OLAP должна иметь возможность обращаться к данным, расположенным на этих источниках, напрямую. В противном случае необходимо будет выполнять промежуточный перенос данных, что требует времени и не всегда может осуществляться достаточно оперативно.
•
Одним из важных требований является обеспечение высокой безопасности. Система должна отвергать все попытки несанкционированного доступа к данным. В то же время авторизированные пользователи должны иметь возможность легко получать нужную информацию.
Приведенный список требований хорошо характеризует системы OLAP и дает представление об особенностях их работы. На рынке существуют различные программные реализации систем OLAP, работающие с различными системами управления базами данных. Microsoft предлагает пользователям полноценную реализацию OLAP — Microsoft Decision Support System (MS DSS). Архитектура DSS представлена двумя компонентами: П Серверная часть, выполняющая "перемалывание" больших объемов данных и выполняющая всю работу по анализу. Представлена компонентом OLAP Services, реализованного в виде самостоятельной службы операционной Системы. Эта служба поставляется в составе SQL Server 2000 и устанавливается отдельно. OLAP Service представляет своего рода надстройку над SQL Server 2000, позволяющую также работать и с информацией, расположенной на других источниках данных. П Клиентская часть, выполняющая окончательный результат анализа данных, также предоставляет пользователям средства просмотра результатов анализа в
Глава 3. Использование SQL Server 2000
31
различной форме. Эта часть реализована в виде инструмента PivotTable Service. К достоинствам PivotTable Service можно отнести невысокий объем сетевого трафика. Кроме того, используемые алгоритмы кэширования позволяют работать с данными после отключения от сервера. Применение DSS открывает широкие возможности для решения бизнес-задач различного рода. Традиционно системы оперативной аналитической обработки стоили немалых денег и поэтому были не доступны для массового применения. Предлагаемая Microsoft система имеет невысокую стоимость и доступна даже мелким компаниям. Наряду с высокой производительностью, наличием мощной системы безопасности, возможностью доступа к распределенным гетерогенным источникам информации делают предлагаемое Microsoft решение весьма привлекательным для многих компаний.
Системы оперативной обработки транзакций В предыдущем разделе были рассмотрены особенности систем оперативной аналитической обработки, предназначенных для быстрого многостороннего анализа больших объемов информации. В этом же разделе будет рассмотрен другой вариант использования систем управления базами данных — построение систем оперативной обработки транзакций (OLTP, Online Transaction Processing). В отличие от систем OLAP, системы OLTP характеризуются большим количеством изменений, одновременным обращением множества пользователей к одним и тем же данным для выполнения разнообразных операций — чтение, запись, удаление или модификация данных. Для нормальной работы множества пользователей система управления базами данных должна использовать транзакции и блокировки. Применение транзакций обеспечивает выполнение набора команд в виде единого блока, который либо будет выполнен весь полностью, либо не будет выполнен вовсе. Типичным примером работы с транзакциями является перевод денег с одного банковского счета на другой. Такой процесс подразумевает две операции — снятие денег с одного счета и запись их на другой. Если после снятия денег в системе произойдет сбой, то вторая операция выполнена не будет, и деньги на счет не поступят. Вряд ли кого-то устроит, что его деньги бесследно пропадут вследствие сбоя программы или компьютера. Если же перевод осуществляется с применением транзакций, то можно быть уверенным — либо деньги будут переведены, либо нет. Никаких промежуточных вариантов быть не может. Блокировки позволяют избежать конфликтов одновременного доступа к данным нескольких пользователей. Необходимо обеспечить изолированность изменений, выполняемых одной транзакцией, от других транзакций. Продолжим предыдущий пример. Предположим, что клиент пришел в банк с просьбой перевести $100 000 с его счета в другой банк. Служащий банка начал перевод денег, но из-за медленной связи с банком-получателем выполнение транзакции затяну-
32
Часть I. Архитектура SQL Server 2000
лось. В это время с этого же счета другой человек, например, жена клиента, делает платеж по электронной карте в магазине, покупая шикарную машину за $90 000. То есть две транзакции пытаются обратиться к одним и тем же данным. Если не пресекать таких действий, то возможно, что на счете клиента в другом банке будет лежать $100 000, а жена купит новую машину. С точки зрения клиента такая ситуация очень даже неплоха, но вряд ли найдется банкир, который захочет работать с такой системой. Использование блокировок позволяет избежать описанных ситуаций, а также многих других конфликтов одновременного доступа к данным.
Замечание Подробно транзакции и блокировки будут рассмотрены в главе 19. Требование поддержки к эффективной обработке транзакций и блокировок является одним из важнейших требований к системам оперативной обработки транзакций. Кроме того, наличие большого количества операций изменения и вставки данных приводит к частому изменению количества строк на отдельной странице файлов базы данных. Чтобы обеспечить высокую скорость вставки новых данных, а также изменения данных, используемых в кластерном индексе, поддерживается низкая степень заполнения страниц. Поэтому системы OLTP более требовательны к объему дисковой памяти, чем системы OLAP.
Инструменты SQL Server 2000 В данном разделе и его подразделах будет дан обзор инструментов, поставляемых в составе SQL Server 2000 и используемых для администрирования сервера, анализа производительности, выполнения запросов и многих других задач. Обычно инструменты администрирования устанавливаются при инсталляции самого SQL Server 2000. Тем не менее, они могут быть добавлены и отдельно. Таким образом, на одном компьютере могут иметься только инструменты администрирования, тогда как на другом — только собственно SQL Server 2000 (т. н. engine). Инструменты SQL Server 2000 спроектированы таким образом, что они могут применяться для работы с любым сервером SQL Server 2000 локальной сети. Более того, инструменты администрирования SQL Server 2000 могут быть использованы для управления и серверами SQL Server 7.0. Администрирование же серверов SQL Server 6.x должно выполняться инструментами администрирования, поставляемыми в составе этих версии. Enterprise M a n a g e r Данный инструмент является базовым при выполнении самых разнообразных задач: •
управления системой безопасности;
П создания баз данных и ее объектов;
Глава 3. Использование SQL Server 2000
33
П создания и восстановление резервных копий; П конфигурирования подсистемы репликации; •
управления параметрами работы служб SQL Server 2000;
• управления подсистемой автоматизации; П запуска, останова и приостанова служб; •
конфигурирование связанных и удаленных серверов;
•
создания, управления и выполнения пакетов DTS.
Приведенный список, конечно же, не исчерпывает всех областей применения Enterprise Manager и легко может быть расширен. Однако и указанных пунктов достаточно, чтобы понять всю важность этого инструмента. Большая часть административных задач SQL Server 2000 может быть выполнена следующими методами: П использованием средств Transact-SQL; •
с помощью графического интерфейса Enterprise Manager;
•
с помощью мастеров (wizards).
Порядок перечисления методов соответствует уменьшению сложности работы с ними. То есть самым сложным является выполнение задачи средствами Transact-SQL, т. к. это требует знания синтаксиса команд и хранимых процедур, а также умения обращаться с инструментом Query Analyzer (или любым другим ему подобным). Однако использование средств Transact-SQL открывает пользователю прямой доступ к системным данным. Инструмент Enterprise Manager разрабатывался с целью облегчить пользователям выполнение наиболее актуальных административных задач, сочетая при этом простоту работы с высокой функциональностью. Можно с уверенностью сказать, что разработчикам Microsoft удалось добиться хорошего результата. Enterprise Manager является действительно достаточно простым в использовании инструментом, в то же время он охватывает практически все административные задачи, с которыми столкнется администратор. Конечно, различные нестандартные ситуации с помощью этого инструмента не решить и придется обратиться к средствам Transact-SQL. He стоит воспринимать Enterprise Manager как инструмент для неопытных пользователей, не умеющих работать со средствами Transact-SQL, и всеми силами стремиться осилить синтаксис команд и хранимых процедур. Решение некоторых задач средствами Transact-SQL настолько сложно, что это просто становится неразумным. Использование же Enterprise Manager поможет сэкономить достаточно много времени и использовать его более эффективно. SQL Server Service Manager Единственной задачей утилиты SQL Server Service Manager является предоставление пользователю удобного механизма запуска, останова и приостанова служб
34
Часть I. Архитектура SQL Server 2000
SQL Server 2000. Кроме этого, она позволяет лишь запретить или разрешить автоматический запуск той или иной службы при загрузке операционной системы. Утилита Service Manager устанавливается при инсталляции SQL Server 2000 и по умолчанию автоматически запускается при загрузке операционной системы. В нормальном состоянии утилита Service Manager представлена значком в правой части панели задач (taskbar). Двойной щелчок на пиктограмме приведет к открытию окна программы, с помощью которого можно запускать, останавливать и приостанавливать службы SQL Server 2000, а также разрешать или запрещать их автоматический запуск при загрузке операционной системы. Подробно работа с утилитой Service Manager будет рассмотрена в разд. "Утилита SQL Server Service Manager" главы 7. S Q L Server Profiler Утилита SQL Server Profiler — это графический инструмент, с помощью которого администратор может наблюдать за теми или иными аспектами работы SQL Server 2000. В основе работы этой утилиты лежит тот же принцип, что и в основе работы утилиты Performance. При выполнении пользовательских запросов, хранимых процедур, команд Transact-SQL, подключении к серверу и отключении от него, а также множества других действий, ядро SQL Server 2000 сохраняет в системных таблицах массу различной информации о ходе выполнения операций. Эта информация может быть получена с помощью специальных хранимых процедур. Утилита SQL Server Profiler использует эти хранимые процедуры для получения необходимой информации. Полученные данные затем представляются в удобном виде с помощью графического интерфейса. Однако пользователи могут получать информацию о процессах SQL Server 2000, обращаясь напрямую к хранимым процедурам. В принципе, на основе этих хранимых процедур можно даже написать свое собственное приложение, которое будет отображать информацию о работе SQL Server 2000 в нужной форме. Мониторинг работы SQL Server 2000 основывается на наблюдении за событиями (events). Событие генерируется ядром SQL Server 2000 и является минимальным объемом работы, который можно контролировать. Каждое событие принадлежит к какому-то классу событий (event classes), который описывает его параметры и смысл той или иной информации. Для лучшего понимания разницы между событием и классами событий SQL Server Profiler проведем аналогию с объектами и экземплярами объектов Performance Monitor. Класс событий SQL Server Profiler, как и объект Performance Monitor, представляет собой абстрактное описание. Тогда как само событие (экземпляр объекта) представляет собой информацию о работе того или иного объекта. Количество классов событий SQL Server довольно велико. Для облегчения работы с ними они были разбиты на двенадцать категорий (category). Подробное их описание приведено в главе 15.
Глава 3. Использование SQL Server 2000
35
Query Analyzer Этот инструмент предназначен для выполнения запросов и анализа их исполнения. По частоте использования и важности Query Analyzer сравним с Enterprise Manager. При рассмотрении различных тем в книге мы часто будем приводить команды, которые демонстрируют практическую сторону рассмотренных вопросов. Например, если в тексте книги будет предложено выполнить приведенный код, то его нужно воспроизвести в окне Query Analyzer и нажать кнопку Execute Query, на которой изображен зеленый треугольник. Результат выполнения запроса будет отображен в нижней части окна SQL Query Analyzer. Попытаемся выполнить код: USE pubs SELECT TOP 10 au_id, au_lname, au_fname FROM authors
Будет возвращен следующий результат: au_id
au_lname
au_fname
409-56-7008 648-92-1872 238-95-7766 722-51-5454 712-45-1867 427-17-2319 213-46-8915 527-72-3246 472-27-2349 846-92-7186
Bennet Blotchet-Halls Carson DeFrance del Castillo Dull Green Greene Gringlesby Hunter
Abraham Reginald Cheryl Michel Innes Ann Marjorie Morningstar Burt Sheryl
(10 row(s) affected)
В окне утилиты Query Analyzer это будет выглядеть примерно так, как это показано на рис. 3.1. Как видно, окно SQL Query Analyzer разделено на три части. В левой части выводится так называемый браузер объектов (Object Browser), с помощью которого можно просмотреть список всех объектов, расположенных в любой базе данных сервера, а также перечень встроенных функций и системных типов данных. В принципе, браузер объектов можно легко отключить. Для этого достаточно просто нажать клавишу либо выбрать пункт в меню Tools команду Object Browser, а затем команду Show/hide. Аналогичным способом можно и отобразить браузер объектов. Отметим, что он является одним из самых заметных нововведений в Query Analyzer, однако не самым важным. Принципиальным же является возможность трассировки выполнения хранимых процедур. Для начала трассировки достаточно в контекстном меню интересующей хранимой процедуры выбрать пункт Debug. В ответ откроется окно Debug Procedure, предназначенное для указания значений параметров хранимой процедуры, с которыми она будет запущена. При выполнении трассировки пользователи могут использовать точки останова (break points), а также осуществлять пошаговое выполнение команд процедуры. Помимо выполнения запросов и хранимых процедур, с помощью Query Analyzer можно оценить производительность исполнения запроса. Для этого следует раз-
Часть I. Архитектура SQL Server 2000
36
решить отображение оценочного (estimated) или результирующего плана исполнения (execution plan) запроса, что можно выполнить с помощью меню Query, выбрав в нем соответственно пункты Display Estimated Execution Plan и Display Execution Plan. Отметим, что оценочный план исполнения запроса формируется на основе предположений сервера о затратах на выполнение отдельных шагов запроса. Результирующий же план исполнения запроса генерируется после выполнения запроса и отражает реальное положение дел. Конечно, в идеальной ситуации значения оценочного и результирующего планов исполнения будут совпадать. Однако при работе с многопользовательскими системами вполне может оказаться, что реально исполнение запроса займет больше времени, чем ожидалось. Чаще всего это происходит из-за занятости процессора выполнением запросов других пользователей или блокированием необходимых для выполнения запроса ресурсов другими транзакциями. Щ SQL Query Analyzer - [Query - STORAGE\TREO l N.pubs,STORAG£\ Щ File Edit Query Tools Bindow
[ J
flbject Brawsei
*}
pub:
~z\\
USE риЬз SELECT TOP 10 au id. au lname. au fnaine FROM authors
f j STORAGEVTRELONfSTORAi T ] STORAGEURELON {J Chair (J Conferenc Q Dekanat i j DocExch 0 Piaster
р MATRIX 0 model SJ msdb JJ pubs U tempdb ." ')Common Objects •I'" I Configuotion Functions C_J Cuisot Functions 1 "I Date and Time Functions Q) Mathematical Functions Q] Aggregate Functions j''"] Metadata Functions £_} Security Functions [ String Functions I I System Functions ' '1 System Statistical Functic \ 1 Text and Image FunctionГ") Rowset
\ ± r
au i d
au lnaine
au fname
409-56-7008 648-92-1872 238-95-7766 722-51-5454 712-45-1867 427-17-2319 213-46-8915 527-72-3246 472-27-2349 346-92-7186
Bennet Blotchet-HalIs Carson DeFrance del Castillo Dull Green Greene Gringlesby Hunter
Abraham Reginald Cheryl Michel Innes Ann Marjorie Horning3ts Burt Sheryl
(10 row(s) affected)
ll П Results j
ffi Objects \Щ Templates}
Query ba STORAGE\TRELON (8,0) |5TORAGE\Admini5trator (53) pubs ; 0:00:00
Ln 3, Col 1
Connections:
Рис. З . 1 . Окно утилиты Query Analyzer
На рис. 3.2 приведен оценочный план исполнения рассмотренного выше запроса. Каждый из его шагов отображается отдельным значком. Подведя курсор к значку, можно получить подробную информацию об операции, выполняемой на конкретном шаге.
Глава 3. Использование SQL Server 2000
37
Ж SQL Query Analyzer - [Query - ST0RAGE\TREL0N.pubs.ST0RA6P, Eile £dit Query lools ffiindow J pubs __
Qbject Browser
STORAGE\TRELON(STORAijJ
if
3 i
USE pubs SELECT TOP 10 au id, au lname, au fname FROM
IS
authors
:-: :_J Stored Procedures _^ Ш ;^9 dbo.byroyalty '*:'Щ? dbo.dt_addtosou Й \Щ dbo.dt_addtosou Ш ЗЦр dbo.dt_adduseto :+, ?y dbo.dt_adduse(o ffl -Jjl dbo.dt_checkino ; ; S f J dbo.dLcheckino : IS ^Щ dbo.dt_checkout : ffl-Э dbo.dt_checkout Ф 3 ^ ^bo.dLdisplayoa Si - ^ dbo.dt_displayoa— I dbo.dt_dtoppropt I dbo.dt_dropuserc [^4I dbo.dt_generate< I dbo.dt_getobjwM I dbo.dt_gelob|witl ' dbo.dt_getproper ' dbo.dt_getproper ' dbo.dt_getproper i dbo.dt_getproper I dbo.dt_isunderso ' dbo.dtjsunderso I dbo.dt_removefrc ^.
Query 1: Query cost (relative to the batch): 0,00^ Query text: USE pubs
DBOPEN Cost: 0% Query 2: Query cost (relative to the batch): 100,00% Query text: SELECT TOP 10 au id, au lnarne, au fnaine FROM
SELECT Cost: 0%
H
Top Cost:
authors. aumtiind Cost: 100%
;g Estimated Execution Plan jfflJ Messages j Objects | И Templates
Query bat<STORAGE\TREL0N (8.0) STORAGE\Administrator"(53)
pubs ! 0:00:00
;0 r
I n 3, Col 1
iConnections: 2
Рис. З.2. Оценочный план исполнения запроса
U p g r a d e
W i z a r d
Мастер Upgrade Wizard предназначен для выполнения обновления баз данных SQL Server 6.5 до SQL Server 2000. В процессе обновления на SQL Server 2000 будут перенесены собственно данные, а также весь набор объектов обновляемой базы данных, включая хранимые процедуры, триггеры, правила, умолчания, ограничения целостности, представления. Кроме того, также окажутся перенесенными пользователи базы данных со всеми установленными правами доступа к объектам базы данных и т. д. Помимо этого, в процессе обновления также будут скопированы все настройки подсистемы репликации. Подробно мастер обновления Upgrade Wizard будет рассмотрен в главе 5. Import and Export Data Этот инструмент является ничем иным, как мастером импорта/экспорта данных, предназначенным для создания пакета DTS, который будет выполнять копирование информации между двумя источниками данных. Отличительной особенностью мастера является простота конфигурирования процесса копирования данных.
38
Часть I. Архитектура SQL Server 2000
К недостаткам использования мастера относится невозможность обработки более двух источников данных, а также определения сложных преобразований и отношений предшествования. Кроме того, большая часть возможностей DTS, например отправка сообщений по электронной почте, будет недоступна. Тем не менее, несомненным достоинством использования мастера является легкость решения простых задач. Если необходимо закачать в таблицу базы данных информацию из файла MS Excel, то возможностей мастера будет вполне достаточно. Таким образом, даже неопытные пользователи смогут выполнять основные операции обмена данными. Подробно работа с мастером, а также другие методы создания пакетов DTS, будут рассмотрены в главе П.
Client Network Utility и Server Network Utility Наличие протокола не достаточно для сетевой работы SQL Server 2000. Для того чтобы клиенты смогли установить соединение с сервером, как на клиенте, так и на сервере, необходимо добавить специальные сетевые библиотеки (Network Library). Эти библиотеки реализованы в виде динамически подключаемых библиотек (DLL, dynamic link library) и подключаются к операционной системе. Библиотека расширяет базовые возможности протокола и является как бы надстройкой над ним, выполняющей различные сетевые операции по обмену данными между клиентом и сервером, для чего используются механизмы IPC. Библиотеки можно инсталлировать как в процессе установки SQL Server 2000, так и позже. Если требуется добавить или удалить библиотеку уже после установки, то для этого нужно использовать утилиту Server Network Utility, устанавливающуюся вместе с SQL Server 2000. С помощью этой библиотеки конфигурируются сетевые параметры собственно сервера. То есть указываются сетевые библиотеки, с помощью которых пользователи смогут обращаться к серверу. Однако со стороны клиента также требуется присутствие сетевых библиотек и конфигурирование их для работы с сервером. Конфигурирование клиента выполняется с помощью утилиты Client Network Utility, добавляемой при установке инструментов администрирования SQL Server. Сконфигурированные параметры будут использоваться для работы Enterprise Manager, Query Analyzer и других инструментов администрирования. Чтобы гарантировать, что взаимодействие клиента с сервером окажется успешным, следует обеспечить использование клиентом хотя бы одной библиотеки, поддержка которой разрешена на сервере, а также при необходимости соответствующим образом указать ее свойства. Подробно конфигурирование сетевых библиотек будет рассмотрено в главе 6.
Утилиты командной строки Помимо уже рассмотренных утилит, имеющих графический интерфейс, в SQL Server 2000 существует набор утилит командной строки, с помощью которых также можно выполнять различные задачи. Некоторые из этих утилит исполь-
Глава 3. Использование SQL Server 2000
39
зуются сервером автоматически и являются скорее частью ядра SQL Server 2000, чем собственно утилитами. В табл. 3.1 приведен обзор утилит командной строки. Указанные утилиты автоматически копируются мастером установки в каталог Binn установочного каталога SQL Server 2000, но могут быть запущены из любого другого каталога, т. к. мастер соответствующим образом конфигурирует переменную окружения PATH. Мы не будем рассматривать полный синтаксис утилит, ограничившись лишь приведением краткого их описания. Замечание Параметры утилит командной строки чувствительны к регистру, в котором вы их набираете. В некоторых ситуациях параметры, набранные в разных регистрах, могут привести к выполнению различных действий. Таблица 3.1. Утилиты командной
строки
Имя утилиты
Краткое описание
bcp.exe
Программа массивной закачки (Bulk Copy Program). Используется для обмена данными между текстовыми файлами и таблицами базы данных. Подробно работа с этой утилитой будет рассмотрена в главе 28
console.exe
С помощью этой утилиты можно просматривать сообщения, выдаваемые сервером при создании и восстановлении резервных копий
dtsrun.exe
Эта утилита предназначена для управления пакетами DTS и позволяет запускать, удалять, просматривать и перезаписывать их. Работает с пакетами, сохраненными в структурированных файлах СОМ, в SQL Server 2000 или в структурах службы метаданных
dtswiz.exe
Является ничем иным, как мастером создания пакета DTS (DTS Import/Export Wizard)
isql.exe
Это устаревшая утилита, использующая технологию DB-Library. Представляет собой интерфейс для выполнения команд TransactSQL, системных хранимых процедур или файлов с командами. В SQL Server 2000 в распоряжении пользователей имеется гораздо более мощный интерфейс — Query Analyzer
isqlw.exe
Эта программа является ничем иным, как Query Analyzer
itwiz.exe
Утилита для доступа к возможностям мастера Index Tuning Wizard в режиме командной строки. Отметим, что мастер может быть запущен и в виде графического инструмента, что, безусловно, гораздо удобнее
makepipe.exe
Используется совместно с утилитой readpipe и предназначена для тестирования работы именованных каналов
odbccmpt.exe
С помощью этой утилиты можно разрешить или запретить обеспечение совместимости конкретного приложения (исполняемого файла) с SQL Server 6.5 при работе с ODBC
40
Часть 1. Архитектура SQL Server 2000 Таблица 3.1
(продолжение)
Имя утилиты
Краткое описание
odbcping.exe
Предназначена для проверки возможности установления соединения с сервером SQL Server 2000 с использованием ODBC
osql.exe
Это устаревшая утилита, использующая технологию ODBC. Представляет собой интерфейс для выполнения команд Transact-SQL, системных хранимых процедур или файлов с командами
rebuildm.exe
Используется для перестроения системной базы данных M a s t e r
readpipe.exe
Эта утилита позволяет протестировать работу именованных каналов. Используется совместно с утилитой makepipe.exe
distrib.exe
Является ничем иным, как агентом подсистемы репликации Distributor Agent. Обычно запускается службой SQLServerAgent. Однако может быть запущена и вручную. После запуска постоянно находится в системе в качестве процесса
logread.exe
Агент Log Reader Agent, используемый при работе с репликацией транзакций. Также обычно запускается службой SQLServerAgent. Однако может быть запущена и вручную. После запуска постоянно находится в системе в качестве процесса
replmerg.exe
Агент Merge Agent, используемый при работе с репликацией сведением. Также обычно запускается службой SQLServerAgent. Однако может быть запущена и вручную. После запуска постоянно находится в системе в качестве процесса
snapshot.exe
Агент Snapshot Agent, активно используемый при работе с репликацией моментальных снимков и для подготовки первоначального набора данных для других типов репликации. Также обычно запускается службой SQLServerAgent. Однако может быть запущена и вручную. После завершения работы обычно выгружается из памяти
scm.exe
Эта утилита предназначена для управления работой служб (запуск, приостанов и останов) SQL Server 2000 в режиме командной строки
sqlagent.exe
Является ничем иным, как службой SQLServerAgent. Обычно запускается операционной системой в качестве службы, но также может быть запущена из командной строки в качестве обычного приложения
sqldiag.exe
С помощью этой утилиты можно получить информацию из журналов SQL Server 2000 для последующего анализа. Обычно применяется, когда графические инструменты недоступны. Информация сохраняется в текстовом файле (по умолчанию это файл SQLdiag.txt в каталоге Log)
sqlmaint.exe
Предназначена для осуществления сопровождения базы данных в режиме командной строки. Позволяет создавать резервные копии, усечение журнала транзакций и т. д. По завершении работы генерирует отчет, который может быть сохранен в обычном текстовом файле, как HTML-страница или отправлен по электронной почте
sqlservr.exe
Реализует ядро SQL Server 2000, точнее службу MSSQLServer. Обычно запускается операционной системой в качестве службы, но может быть запущена вручную в качестве приложения
Глава 3. Использование SQL Server 2000
41 Таблица 3.1 (окончание)
Имя утилиты
Краткое описание
sqlftwiz.exe
Позволяет использовать возможности мастера Full-Text Indexing Wizard, работая с ним в режиме командной строки
vswitch.exe
Предназначена для переключения различных версий (точнее с 6.x на 8.0) SQL Server, установленных на одном компьютере
Мастера Как уже было сказано ранее в этой главе, многие задачи могут быть выполнены с помощью средств Transact-SQL, с использованием графического интерфейса Enterprise Manager и посредством специальных мастеров (wizards). Мастера являются наиболее простым способом выполнения административных задач. Недостатком мастеров являются достаточно ограниченные возможности. Однако к некоторым из мастеров сказанное не относится. К ним можно отнести мастеров конфигурирования подсистемы репликации, что является довольно сложным процессом. Например, создать публикацию средствами Enterprise Manager нельзя. Нужно будет воспользоваться соответствующим мастером. Конечно, всегда можно воспользоваться средствами Transact-SQL. Но иногда это настолько сложно и трудоемко, что лучшим решением будет использование мастера. В табл. 3.2 приведен список основных мастеров SQL Server 2000. Помимо перечисленных существует еще несколько дополнительных, использующихся лишь в определенных условиях. Мы не будем приводить их, ограничившись рассмотрением мастеров общего назначения. Для запуска мастера следует в панели инструментов Enterprise Manager нажать кнопку Run a wizard. В ответ откроется окно Select Wizard, с помощью которого можно будет выбрать необходимый мастер. Таблица 3.2. Мастера SQL Server Название
Описание
Backup Wizard
Применяется для создания резервных копий базы данных
Failover Setup Wizard
Предназначен для создания кластера
Configuring Publishing and Distribution Wizard
Используется при работе с подсистемой репликации и предназначен для конфигурирования сервера в качестве издателя и дистрибьютора
Create Alert Wizard
Позволяет создать оповещение
Create Database Wizard
Выполняет создание базы данных
Create Diagram Wizard
Служит для создания диаграммы базы данных
Create Index Wizard
Предназначен для создания индекса
Create Job Wizard
Используется для создания задания
Часть 1. Архитектура SQL Server 2000
42
Таблица 3.2 (окончание) Название
Описание
Create New Data Source Wizard
Инсталлирует ODBC-драйвер и ODBC-источник данных
Create Login Wizard
Создает учетную запись SQL Server для пользователя
Create Publication Wizard
Создает публикацию для последующей репликации
Create Stored Procedure Wizard
Создает хранимую процедуру
Create Trace Wizard
Создает профиль трассировки для утилиты Profiler
Create View Wizard
Создает представления
Create Maintenance Plan Wizard
Создает файл поддержки
Disable Publishing and Distribution Wizard
Удаляет издателя и дистрибьютора для репликации
DTS Export Wizard
Создает DTS-пакет для экспорта данных из SQL Server
DTS Import Wizard
Создает DTS-пакет для импорта данных в SQL Server
Full-text Indexing Wizard
Определяет полнотекстовые индексы
Index Tuning Wizard
Оптимизирует индексы
Make Master Server Wizard
Устанавливает мастер-сервер
Make Target Server Wizard
Устанавливает сервер-приемник
Register Server Wizard
Облегчает процесс регистрации серверов в Enterprise Manager
Pull Subscription Wizard
Конфигурирует подписчика для вытягивания данных
Push Subscription Wizard
Конфигурирует подписчика с выталкивающим издателем
SQL Server Upgrade Wizard
Позволяет обновить базы данных SQL Server 6.x
Web Assistant Wizard
Создает Web-задачи
Работа с тем или иным мастером будет рассмотрена в предлагаемых главах книги при описании соответствующих операций администрирования.
ЧАСТЬ II. УСТАНОВКА SQL SERVER 2000 Глава 4. Подготовка к установке SQL Server 2000 Глава 5. Переход на SQL Server 2000 с предыдущих версий Глава 6. Установка SQL Server 2000
Глава 4
Подготовка к установке SQL Server 2000 Прежде чем приступить к установке SQL Server 2000, необходимо получить хотя бы поверхностное представление о том, как проходит установка и к каким последствиям приведет задание того или иного параметра. В последнее время корпорация Microsoft при разработке программ придерживается стратегии снижения общей стоимости владения (Total Cost of Owner) системой. SQL Server 2000 не является исключением и это видно уже при установке сервера. Процесс установки построен таким образом, что инсталляцию сервера может выполнить даже пользователь, никогда ранее не работавший с SQL Server 2000. Выбрав типичную (typical) установку, пользователь избавит себя от указания большей части параметров конфигурации сервера, значения которых будут назначены автоматически мастером установки. Необходимо будет лишь выбрать каталог для размещения и указать небольшое количество других интуитивно понятных параметров. Если параметры по умолчанию не удовлетворяют вашим требованиям, то для конфигурирования сервера произвольным образом можно воспользоваться заказной (custom) установкой. В этом случае необходимо четко представлять, для чего предназначена та или иная опция, и каким образом изменится поведение сервера при установке того или иного значения параметра конфигурации. Замечание Неверная настройка некоторых опций может привести к некорректной работе сервера. Изменение значений части опций возможно только при переустановке сервера или после перестроения системных баз данных. Особенно важно выбрать правильную конфигурацию сервера, если предполагается взаимодействие сервера с другими SQL Server 2000. При эксплуатации SQL Server 2000 на больших предприятиях с множеством установок SQL Server 2000 обычно разрабатывается определенный стандарт на конфигурацию сервера. В дальнейшем это позволяет избежать множества проблем при взаимодействии серверов. Дело в том, что различие некоторых параметров конфигурации приводит к тому, что сервера не могут даже соединиться друг с другом, не говоря уже о выполнении запросов и выборке данных. В следующей главе будет подробно рассмотрено обновление предыдущих версий SQL Server до SQL Server 2000. В главе 6 рассмотрим использование мастера Setup Wizard, с помощью которого собственно и выполняется установка SQL Server 2000.
46
Часть II. Установка SQL Server 2000
Данная же глава содержит скорее теоретическую информацию о процессе установки, которая должны помочь грамотно подготовиться к инсталляции SQL Server 2000 и понять назначение того или иного параметра. Это, а также знание принципов работы модулей SQL Server 2000, поможет избежать затруднений и неприятностей при установке и последующей эксплуатации сервера.
Выбор редакции Прежде чем приступить собственно к процессу установки, необходимо приобрести SQL Server 2000, который поставляется в нескольких вариантах — редакциях (edition). Каждая редакция предназначена для решения определенного круга задач, обычно различающихся масштабами. Соответственно, одна редакция может быть предназначена для однопроцессорных настольных компьютеров с небольшим количеством ресурсов и используемых в качестве однопользовательской системы, тогда как другая редакция будет устанавливаться на кластерных системах, включающих до четырех 32-процессорных серверов с громадными объемами ресурсов. Каждая из редакций имеет свои ограничения на количество пользователей, которые могут одновременно работать с SQL Server 2000. Кроме того, некоторые редакции работают только под определенными операционными системами. Наконец, редакции могут значительно отличаться по цене. Прежде чем покупать SQL Server 2000, следует взвесить требования вашей организации, в том числе и в будущем, и выбрать редакцию, лучшим образом удовлетворяющую ваши нужды. SQL Server 2000 поставляется в следующих редакциях: СП Standard Edition. Используется для небольших организаций или отделов. SQL Server 2000 Standard Edition является базовой редакцией, возможности которой устроят большую часть пользователей. Она может использовать до четырех процессоров при максимальном объеме оперативной памяти 2 Гбайта. • Enterprise Edition. Используется для построения промышленных систем, поддерживающих технологию кластеризации и обеспечивающих высокий уровень масштабируемости. SQL Server 2000 Enterprise Edition идеально подходит для построения больших Web-сайтов, систем оперативной обработки транзакций (OLTP, Online Transaction Processing), хранилищ данных (Data Warehousing System) и систем поддержки принятия решений (DSS, Decision Support System). Редакция Enterprise Edition может использоваться на высокопроизводительных промышленных серверах с количеством процессоров до тридцати двух и объемом оперативной памяти до 64 Гбайт. Кроме того, эта редакция обеспечивает построение кластеров. В SQL Server 2000 Enterprise Edition возможно построение четырехузловых отказоустойчивых кластеров. •
Desktop Engine. Эта редакция может быть использована независимыми разработчиками для встраивания ее в разрабатываемые системы, включает в себя только механизмы (engine) обработки пользовательских запросов и не включает графические инструменты администрирования, электронной документации Books Online, примеров кода (code samples) и библиотек разработки, а
Глава 4. Подготовка к установке SQL Server 2000 также поддержки репликации сведением. Однако при необходимости для администрирования этой редакции можно использовать графические инструменты любой другой редакции. В обычной же ситуации все операции администрирования должны выполняться разработанным клиентским приложением. Редакция Desktop Engine поставляется в виде модулей Windows Installer, которые могут быть включены в инсталляционный пакет. SQL Server 2000 Desktop Engine поддерживает все API, доступные из других редакций. Эти API также могут быть использованы для администрирования сервера. Хотя большей частью Desktop Engine обеспечивает ту же функциональность, что и другие редакции, все же она имеет некоторые ограничения. В частности, не реализовано применение распараллеливания запросов, индексированных представлений и некоторых других функций, часто используемых на больших промышленных серверах. Кроме того, если на сервере одновременно выполняется более пяти пакетов команд, то производительность их выполнения снижается. Отличительной чертой редакции Desktop Engine является также и то, что она не требует клиентских лицензий доступа (CAL, Client Access Licenses). Все описанные характеристики делают SQL Server 2000 Desktop Engine идеальным выбором при создании систем со встроенными хранилищами данных и при работе с данными в режиме off-line. П Windows СЕ Edition. Данная версия SQL Server 2000 используется при работе с устройствами и приложениями Microsoft Windows СЕ. Работа с этой редакцией ничем не отличается от работы с другими редакциями. Поддержка репликации позволяет копировать данные с мощных корпоративных серверов баз данных, использующих SQL Server 2000 Enterprise Edition или SQL Server 2000 Standard Edition. • Personal Edition. Этой редакции свойственны те же ограничения функциональности, что и для редакции Desktop Engine, однако в распоряжении пользователя имеются графические инструменты администрирования, такие как Enterprise Manager, Query Analyzer и другие. Редакция Personal Edition обычно используется при построении однопользовательских систем или систем с небольшим количеством пользователей. Как и в Desktop Engine, при превышении пяти одновременно выполняемых пакетов команд происходит резкое снижение производительности сервера. SQL Server 2000 Personal Edition также часто используется на переносных компьютерах и поддерживает до двух процессоров. Кроме того, если необходимо установить SQL Server 2000 на компьютер с "не серверной" операционной системой, такой как Windows 98, Windows NT Workstation 4.0 или Windows 2000 Professional, то Personal Edition будет лучшим выбором. Размер баз данных не ограничивается. • Developer Edition. Редакция включает все возможности Enterprise Edition, но предназначена исключительно для разработки и тестирования приложений. То есть ее нельзя использовать в качестве промышленного сервера. П Evaluation Edition. Эта редакция распространяется свободно и доступна для скачивания с Web-сайта Microsoft. Она является оценочной (или пробной) версией Enterprise Edition. To есть ее можно использовать для близкого знакомства с SQL Server 2000 и обучения работе с ним, но нельзя применять для 3 Sat 83
47
48
Часть II. Установка SQL Server 2000
построения промышленных баз данных. Срок эксплуатации SQL Server 2000 Evaluation Edition составляет 120 дней с момента установки. Как видно из приведенного списка, SQL Server 2000 поставляется в нескольких вариантах, возможности которых могут значительно отличаться. Кроме того, на рынке имеется довольно большое количество операционных систем семейства Windows и на каждую из них возможна установка только определенных редакций SQL Server 2000. В табл. 4.1 приведена информация о возможности установки каждой из редакций на ту или иную операционную систему. Таблица 4.1. Соотношение редакций и операционных систем Операционная система
Enterprise Edition
Standard Edition
Personal Edition
Developer Edition
Desktop Engine
Windows Enterprise CE Edition Evaluation Edition
Windows 2000 Datacenter
+
+
+
+
+
_
+
Windows 2000 Advanced Server
+
+
+
+
+
_
+
Windows 2000 Server
+
+
+
+
+
_
+
Windows 2000 Professional
-
-
+
+
+
-
-
Windows NT Server 4.0 Enterprise Edition
+
+
+
+
+
_
+
Windows NT Server 4.0
+
+
+
+
+
_
+
Windows NT Workstation 4.0
—
-
+
+
+
_
_
Windows 98
-
—
+
Desktop Engine
+
Windows CE
В табл. 4.2 приведена информация о поддержке той или иной редакцией различных механизмов SQL Server 2000, связанных с использованием баз данных (БД). Таблица 4.2. Возможности редакций при работе с БД Возможность
Поддержка множества инсталляций
Enter- Standard prise Edition Edition
Personal Edition
Developer Desktop Windows Enterprise Edition Engine CE Edition Evaluation Edition
Глава 4. Подготовка к установке SQL Server 2000
49
Таблица 4.2 (окончание) Возможность
Enterprise Edition
Standard Edition
Personal Edition
Developer Desktop Windows Edition Engine CE Edition
Enterprise Evaluation Edition
4-узловой кластер
+
—
—
+
—
—
Управление кластером в Enterprise Manager
+
—
—
+
—
—
Пересылка журнала
+
—
—
+
—
—
+
Распараллеливание DBCC
+
—
—
+
—
—
+
Распараллеливание CREATE INDEX
+
—
—
+
—
—
+
Расширенное опережающее чтение и сканирование
+
—
—
+
—
—
+
Индексированные представления
+
—
—
+
—
—
+
Утилиты администрирования
+
+
+
+
—
—
+
Полнотекстовый поиск
+
+
+
+
—
—
+
+ •
+
В табл. 4.3 приведена сводная информация о поддержке репликации каждой из редакций SQL Server 2000. Таблица 4.3. Поддержка Тип репликации
репликации
Developer Desktop Windows Edition Engine CE Edition
редакциями
Enterpri seEdition
Standard Edition
Personal Edition
Enterprise Evaluation Edition
Репликация моментальных снимков
+
+
+
+
+
—
+
Репликация транзакций
+
+
Только подписчик
+
Только подписчик
—
+
50
Часть II. Установка SQL Server 2000 Таблица 4.3 (окончание)
Тип репликации
Enterpri Standard se Edi- Edition tion
Personal Edition
Developer Edition
Desktop Windows Engine CE Edition
Репликация сведением
Enterprise Evaluation Edition
Только анонимный подписчик
Поддержка подписчиков незамедлительного обновления
Только подписчик
Очередь обновляемых подписчиков
Только подписчик
Требования к системе Как и при установке любых других продуктов, прежде чем начать установку SQL Server 2000, необходимо выполнить некоторые подготовительные операции. Подготовку к установке можно условно разбить на три фазы: •
проверка аппаратного обеспечения;
•
подготовка программного обеспечения;
•
конфигурирование учетных записей служб SQL Server 2000.
В следующих разделах подробно рассмотрен каждый из этапов подготовки. Знакомство с этими разделами избавит вас от выполнения множества инсталляций, потерпевших неудачу из-за невыполнения тех или иных требований.
Требования к аппаратному обеспечению SQL Server 2000 является довольно требовательной СУБД по отношению к аппаратной части компьютера. Однако эти требования высоки лишь с точки зрения обыкновенного пользователя. Если же SQL Server 2000 предполагается использовать на промышленных многопроцессорных серверах, то эти требования кажутся незначительными. В табл. 4.4 приведен список минимальных требований к аппаратной части компьютера, выдвигаемых SQL Server 2000. Цифры, приведенные в таблице, практически не отличаются от аналогичных показателей SQL Server 7.0. Это связано с тем, что ядро SQL Server 2000 осталось в основном тем же, что и в SQL Server 7.0.
Глава 4. Подготовка к установке SQL Server 2000
51 Таблица 4.4. Требования к компьютеру
Характеристика
Минимальные требования
Рекомендуемые требования
Процессор
Pentium 166, Pentium Pro
Pentium II или Pentium III
Оперативная память
32 Мбайт (64 Мбайт для Enterprise Edition)
64-128 Мбайт (128-256 Мбайт для Enterprise Edition)
Дисковая память
180 Мбайт: полная установка; 170 Мбайт: типичная установка; 65 Мбайт: минимальная установка; 90 Мбайт: установка только утилит администрирования; +50 Мбайт: установка OLAP; +12 Мбайт: установка English Query
Рекомендуемые требования аналогичны минимальным, но необходимо добавить размеры пользовательских баз данных, а также учесть возможность роста системных баз данных
Хотя требования и называются минимальными, все же допускается установка SQL Server 2000 и на системах более низкого уровня. Но вряд ли стоит планировать серьезную работу на такой системе. Для нормальной работы рекомендуется система класса Pentium II. Рекомендуемые требования приведены в расчете на небольшие системы. При работе с большими объемами данных эти показатели могут возрасти на несколько порядков. Например, редакция SQL Server 2000 Enterprise Edition допускает использование серверов с тридцатью двумя процессорами и объемом памяти до 64 Гбайт. Замечание Приведенные в таблице цифры в большей степени касаются требований самого SQL Server 2000. Помимо этих цифр следует учесть требования операционной системы, которые могут существенно отличаться. Например, операционная система Windows 98 выдвигает сравнительно низкие требования к ресурсам компьютера, в частности объему оперативной памяти (порядка 8—16 Мбайт) и производительности процессора, тогда как операционная система Windows 2000 Advanced Server для нормальной работы требует 128 Мбайт оперативной памяти. Этот момент необходимо обязательно учесть при выборе компьютера, на котором будет устанавливаться SQL Server 2000.
Требования к программному обеспечению После того, как вы убедились в том, SQL Server 2000 будет эффективно работать на вашем компьютере, необходимо установить соответствующее программное обеспечение. Первым этапом подготовки программного обеспечения является установка операционной системы. В табл. 4.1 приведена информация о возможности установки той или иной редакции SQL Server 2000 на различные операционные системы семейства Windows. SQL Server 2000 может работать под управлением следующих операционных систем:
52
Часть II. Установка SQL Server 2000
• Windows 98; О Windows NT Workstation 4.0; • Windows NT Server 4.0; О Windows 2000 во всех ее редакциях.
Замечание Как видно, SQL Server 2000 не будет работать под управлением операционной системы Windows 95. Однако под управлением этой операционной системы могут работать клиентские приложения, устанавливающие соединение с SQL Server 2000. При установке SQL Server 2000 на компьютер под управлением операционной системы Windows NT Server или Windows NT Workstation требуется установка Service Pack версии 5.0 или более поздней. Кроме того, для просмотра справочной системы SQL Server Books Online и использования консоли управления Microsoft Management Console (MMC) также требуется установка Internet Explorer версии 5.0 (или более поздней). При размещении SQL Server 2000 на компьютере с операционной системой Windows 2000 не требуется устанавливать никакого дополнительного программного обеспечения, т. к. в эту операционную систему уже встроен Internet Explorer 5.0. Если планируется применение SQL Server в качестве многопользовательского сервера баз данных, то в операционной системе нужно также установить соответствующие сетевые протоколы. Программа установки SQL Server 2000 не выполняет установки сетевых протоколов, поэтому эта часть работы должна быть выполнена вручную. До тех пор, пока не будут установлены нужные сетевые протоколы, пользователи не смогут использовать их для работы с SQL Server 2000. SQL Server 2000 поддерживает все основные протоколы Windows 2000: NetBEUI, IPX/SPX и TCP/IP. Кроме того, возможна работа по протоколам AppleTalk ADSP, Banyan VINES и некоторым другим редко используемым протоколам. Более подробно использование сетевых протоколов будет рассмотрено в разд. "Сетевые компоненты"далее в этой главе. Как уже говорилось, в SQL Server 2000 была добавлена поддержка технологии XML. Однако доступ к данным с применением этой технологии осуществляется средствами Microsoft Internet Information Server (IIS). Если предполагается, что пользователи будут использовать технологию XML, то необходимо дополнительно установить и Internet Information Server. Этот продукт выдвигает дополнительные требования к ресурсам компьютера, т. е. для поддержки XML скорее всего потребуется установка дополнительной оперативной памяти.
Подготовка учетных записей Последний этап подготовки к установке заключается в создании учетных записей пользователей, под которыми будут запускаться службы SQL Server 2000. В принципе можно не создавать новые учетные записи, а использовать уже су-
Глава 4. Подготовка к установке SQL Server 2000
53
шествующие, например, администратора домена. Более того, учетная запись локальной системы задается при установке операционной системы и создавать ее не нужно. Каждая служба Windows NT и Windows 2000 может запускаться под своей собственной учетной записью. Служба будет иметь права доступа, предоставленные администратором учетной записи. Необходимо следить за тем, имеет ли учетная запись, под которой стартует служба, соответствующие права и разрешения на доступ к ресурсам операционной системы. Например, если на диске, куда установлен SQL Server 2000, существует файловая система NTFS и учетная запись, под которой стартует служба MSSQLServer, не имеет разрешений на доступ к файлам SQL Server 2000, то запуск и работа сервера будут невозможны. Замечание Данный раздел имеет отношение только к операционным системам семейства NT, в т. ч. и ко всем редакциям Windows 2000. В операционной системе Windows 98 не реализована возможность выполнения приложений в виде служб операционной системы. При запуске SQL Server 2000 под управлением операционной системы используется учетная запись текущего пользователя. Как следствие, SQL Server 2000 будет иметь те же права доступа, что и пользователь, запустивший его.
Для запуска служб операционные системы семейства NT позволяют указывать три типа учетных записей: • Local System (локальная система). Учетная запись локальной системы предполагает запуск службы с правами операционной системы. Учетная запись локальной системы создается автоматически при установке операционной системы. Все действия по управлению этой учетной записью, в том числе и изменение пароля, выполняет сама операционная система. Даже администратор не может управлять ею. Учетная запись имеет права администратора и обычно по умолчанию имеет доступ .ко всем файлам. Однако в некоторых случаях все же требуется явно предоставить учетной записи доступ к тем или иным ресурсам. Если вы решили использовать для запуска SQL Server 2000 локальную учетную запись системы, то убедитесь, что она имеет полный доступ ко всем файлам и каталогам SQL Server 2000. • Local User (локальный пользователь). Учетные записи данного типа создаются отдельно на каждом компьютере, и область их действия ограничивается этим компьютером. При запуске SQL Server 2000 под учетной записью локального пользователя, не входящего в группу локальных администраторов, следует предоставить учетной записи полный доступ ко всем файлам и каталогам SQL Server 2000, а также разрешить ей регистрироваться локально и стартовать в качестве службы операционной системы. • User for Domain (пользователь домена). Учетные записи этого типа хранятся централизованно на контроллере домена (domain controller) Windows NT или Windows 2000 и доступны с любого компьютера, являющегося членом домена. Принципиальным отличием учетных записей пользователя домена является возможность работы в сети.
54
Часть II. Установка SQL Server 2000
Независимо от того, какой тип учетной записи используется для запуска служб SQL Server 2000, следует убедиться, что учетная запись, под которой стартует служба MSSQLServer, имеет следующие права доступа: П доступ и изменение файлов в папке \Program Files\Microsoft SQL Server\Mssql; П доступ и изменение файлов баз данных — mdf, ndf и ldf; • чтение и запись следующих ключей реестра: •
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer;
•
HKEY_LOCAL_N4ACHINE\System\CurrentControlset\Services\MSSQLServer.
Как уже говорилось ранее, каждая служба SQL Server 2000 может стартовать под собственной учетной записью. Но если нет особых на то причин, рекомендуется всегда конфигурировать запуск всех служб под одной и той же учетной записью. Хотя все службы и являются частью единого приложения, все же перед тем, как начать работу, они обязаны пройти проверку прав доступа подобно обычным пользователям. Если учетные записи разные, то необходимо следить, чтобы все они имели соответствующие права доступа. Основным компонентом является служба MSSQLServer. Все остальные компоненты (SQLServerAgent, Microsoft Search и MSDTC) устанавливают соединение с MSSQLServer. При этом учетные записи, под которыми стартуют службы SQLServerAgent и MSDTC, должны иметь соответствующие права и желательно быть включенными во встроенную роль сервера (fixed server role) sysadmin. Чтобы избежать проблем с правами доступа, советуют запускать все службы под одной учетной записью. Также рекомендуется предоставить учетным записям служб права администратора операционной системы, включив их в группу Domain Admins. Это даст возможность перезапуска сервера SQL Server 2000 и поможет избежать некоторых проблем с автоматическим выполнением заданий (jobs). Однако такой подход открывает потенциальную возможность взлома системы с использованием SQL Server 2000. Если вы хотите максимально обезопасить систему, то лучше потратить некоторое время на конфигурирование прав доступа. Замечание Служба Microsoft Search может стартовать только под локальной учетной записью системы. Для установления соединения со службой MSSQLServer она использует имя и пароль учетной записи, под которой стартует служба MSSQLServer.
Выбор типа учетной записи прежде всего обусловлен задачами, стоящими перед SQL Server 2000. Следует учитывать, что локальные учетные записи (как пользователя, так и системы) не имеют возможности выполнять большинство сетевых операций. Например, нельзя использовать локальные учетные записи, если необходимо выполнять следующие операции: • соединение со связанными или удаленными серверами; О репликацию данных между серверами; • обработку распределенных транзакций, обращающихся к сетевым источникам данных;
Глава 4. Подготовка к установке SQL Server 2000
55
П резервное копирование данных на сетевой диск; • отправление сообщений по электронной почте из SQL Server 2000; и другие операции. Во всех случаях, требующих наличия сети, необходимо использовать учетную запись пользователя в домене. Кроме того, если предполагается организовывать репликацию, то рекомендуется использовать на всех серверах одну и ту же учетную запись пользователя в домене для запуска служб SQL Server 2000. Это гарантирует, что не возникнет никаких конфликтов разрешений на доступ к ресурсам. Замечание Если учетные записи служб SQL Server 2000 сконфигурированы некорректно, то впоследствии можно изменить их параметры с помощью утилиты Services из набора утилит Control Panel (Панель управления) или с помощью интерфейса Enterprise Manager. Изменение параметров служб SQL Server 2000 будет рассмотрено в главе 8.
Создание учетных записей в Windows NT Для создания учетных записей в операционной системе Windows NT используется утилита User Manager for Domains (рис. 4.1), которую можно найти среди других административных утилит. Она может быть использована для управления как учетными записями пользователей домена, так и для управления учетными записями локальных пользователей. Чтобы иметь возможность создания пользователей, необходимо зарегистрироваться в домене (или на локальном компьютере) с правами администратора (Administrator) или оператора учетных записей (Account Operator). Для создания нового пользователя в меню User нужно выбрать команду NewUser. В ответ откроется диалоговое окно (рис. 4.2), в котором необходимо ввести имя учетной записи (Username), полное имя пользователя (Full Name) и его описание (Description). Кроме того, в полях Password и Confirm Password нужно ввести пароль учетной записи. После того, как все данные введены, не забудьте сбросить флажок User Must Change Password at Next Logon, иначе система потребует смены пароля при первой же регистрации. Кроме того, рекомендуется установить флажок Password Never Expires, что избавит от необходимости периодически менять пароль учетной записи. Осталось нажать кнопку Add и закончить создание нового пользователя. Но на этом конфигурирование учетной записи для службы SQL Server 2000 не заканчивается. Выполненных шагов достаточно для создания обычного пользователя, а для того, чтобы учетная запись могла быть использована для работы службы операционной системы, необходимо предоставить ей дополнительно соответствующие права. Права (rights) Windows NT — это набор специальных разрешений на выполнение особых действий. Права отличаются от разрешений Windows NT, с помощью которых лишь предоставляется или отклоняется доступ пользователей к ресурсам операционной системы. Права позволяют пользователям выполнять изменение системного времени, останов операционной системы, резервное копирование, работать с файлами и т. д.
Часть II. Установка SQL Server 2000
56 ч User Manager * \ \ Ш User View Policies Options Help Username Full Name Administrator Guest SQLAgentCmdExec SQLAgentCmdExec
Groups \@$ Administrators Backup Operators Guests Power Users Replicator SDLOCAL i&tSDfiEMOTE
Description Built-in account for administering the c< Built-in account for guest access to the SQLServer Agent CmdExec Job Step
{Description Members can fullv administer the comDuter/domain Members can bypass file security to back up files Users granted guest access to the computer/domain Members can share directories and printers Supports file replication in a domain SecurlD challenge for local logins SecurlD challenge for remote access logins
Рис. 4 . 1 . Утилита User Manager For Domains
Username: JAndrey Full Name:
[Фединандрей
description:
[Программист Центра информационных технологий
Password: Confirm Password: Г* User Must Change Password at Next Logon Iw' User Cannot Change Password Iv* Password Never Expires Г* Account Disabled
firoups
п ь Proe fli : Da jn il
Рис. 4.2. Диалоговое окно New User утилиты User Manager for Domains
Для учетных записей служб SQL Server 2000 необходимо предоставить следующие права: • действовать как часть операционной системы (Act as a part of the operating system);
Глава 4. Подготовка к установке SQL Server 2000
57
• регистрироваться в качестве службы операционной системы (Log on as a service); • изменять квоты процессов (Increase quotas); • заменять уровень маркера процесса (Replace a process level token). Для предоставления учетной записи определенных прав в меню Policies утилиты User Manager for Domains выберите команду User Rights. В ответ откроется диалоговое окно, показанное на рис. 4.3. В раскрывающемся списке Right нужно выбрать право, которое необходимо предоставить пользователю. В поле Grant To будет выведен список учетных записей, которым предоставлено выбранное право. Для добавления в список нового пользователя достаточно нажать кнопку Add.
User Rights Policy Computer: LIT Right: Grant To: Administrators Backup Operators Guests Power Users Users Г* Show Advanced U ser Rights
Рис. 4.З. Диалоговое окно User Rights Policy
После того, как всем учетным записям служб SQL Server 2000 будут предоставлены необходимые права, подготовку учетных записей можно считать законченной. Закройте утилиту User Manager for Domains и смело приступайте к установке SQL Server 2000.
Замечание Как уже говорилось, Windows 98 не поддерживает служб. При работе под управление этой операционной системы SQL Server 2000 производит эмуляцию служб Windows NT, поэтому конфигурирование учетных записей не требуется.
Создание учетных записей в Windows 2000 Управление учетными записями пользователей домена в Windows 2000 было заметно изменено по сравнению с Windows NT 4.0. Поэтому здесь отдельно приведена информация о создании учетных записей в Windows NT 4.0 и в Windows 2000. Для управления учетными записями пользователей домена Windows 2000 предназначена утилита (или, в терминологии Windows 2000, оснастка) Active Directory Users and Computers (рис. 4.4).
Часть II. Установка SQL Server 2000
58
$ Active Directory Users and Computers 1 •
Г
из
Name £3 Sergey Lifenko С Sergey Marnaev С Sergey Shilov С SQLAgentCmdExec С Terminal User С Timur Salikhov С TsInternetUser С Valentin Starkin 6 Vasiliy Cherkashin С Vlad Karpyuk С Vladimir Goltsov f ' VUE User С VUSR_STORAGE С Yuriy Miagkiy £2 Алексей С Пользователь конфе... б Пользователь отдел... f^Cert Publishers fJ^DnsUpdateProxy (JiDomain Admins JJJ Domain Computers (JfDomain Controllers {^Domain Guests £ $ Domain Users
Description
;
1
JLfd
Рис. 4.4. Оснастка Active Directory Users and Computers
Если же предполагается использовать локальную учетную запись, то можно воспользоваться папкой Local Users and Groups\Users оснастки Computer Management (рис. 4.5).
Замечание Если компьютер, на который предполагается установить SQL Server 2000, является контроллером домена Windows 2000, то использование локальных учетных записей пользователей на этом компьютере будет невозможно и соответствующие пункты оснастки Computer Management будут недоступны.
По сравнению с Windows NT 4.0 в операционной системе Windows 2000 для каждого из пользователей допускается хранение самой разнообразной информации, а не только имени, фамилии и краткого описания человека. Однако при работе с локальными пользователями (т. е. без использования Active Directory) объем хранимой информации о пользователе не так велик, как при работе с пользователями домена. Хотя количество информации и существенно различается, основные этапы создания и конфигурирования учетных записей пользователей для служб SQL
59
Глава 4. Подготовка к установке SQL Server 2000
Server 2000 в большей степени одинаковы. Рассмотрим создание учетной записи локального пользователя. Для этого в контекстном меню папки Local Users and Groups\Users необходимо выбрать команду New User. В ответ откроется диалоговое окно New User (рис. 4.6), содержащее набор элементов управления, с помощью которых задаются основные свойства учетной записи: • User name. Имя учетной записи, которое будет использоваться при регистрации пользователя в домене. Это имя может быть произвольным и не всегда отображать имя самого пользователя. • Full name. В этом поле указывается полное имя владельца учетной записи — обычно фамилия, имя и отчество, хотя никаких строгих ограничений нет. • Description. Данное поле предназначено для указания небольшого комментария, который помогает идентифицировать учетную запись или ее владельца. Часто в этом поле указывается название подразделения, которому принадлежит пользователь. Однако также можно ввести и любые другие сведения, например, домашний телефон и адрес электронной почты. О Password. В поле указывается пароль, который пользователь должен будет вводить при регистрации в домене. £Л Computer Management | fection View |;
. : Щ System В-Qi^ System Information Q2 System Summary • Ш C j Hardware Resources ; . L*V LJ Components ; Ш ill) Software Environment ! ffl u J Internet Explorer 5 i ^ Performance Logs and Alerts В ~ j ^ Shared Folders ; g^j Shares ' ^ Sessions : : ijy Open Files jjp Device Manager В *C Local Users and Groups
ШШШШШШ' Full Name
SQL AgentCmdExec
:
Q j Groups - *y Storage i • 1 Disk Management |^? Disk Defragmenter 5Э Logical Drives |{jj Removable Storage 3 :_^S Services and Applications S& WMI Control ^ g Services
Рис. 4.5. Оснастка Computer Management
J P.I.X.I
Descrp i to in Built-in account for admn is i tern i g the computer/doman i Built-in account for guest access to the computer/doman i SQL Server Agent CrndExec Job Step Account
Часть II. Установка SQL Server 2000
60
D Confirm password. В этом поле необходимо повторить тот же пароль, что и в предыдущем поле. Дублирование выполняется для гарантии того, что был указан верный пароль и не было ошибок при его вводе. В противном случае пользователь не смог бы зарегистрироваться в домене. • User must change password at next logon. Установка данного флажка требует от пользователя смены пароля при следующей регистрации в домене. П User cannot change password. Если администратор установит для пользователя этот флажок, то пользователь не сможет самостоятельно сменить пароль. Взамен он должен будет обратиться к администратору. Такой подход используется, если под одной и той же учетной записью работают несколько пользователей. В этом случае смена пароля одним из пользователей приведет к тому, что другие пользователи не смогут зарегистрироваться в домене. • Password never expires. Установка флажка позволяет избежать "устаревания" пароля. То есть пользователь не должен будет менять пароль через определенное время. Время жизни пароля устанавливается администратором домена и действует на всех пользователей. • Account is disabled. При пометке флажка учетная запись становится заблокированной и не может быть использована для регистрации в домене. Эта возможность часто применяется, если пользователь ушел в отпуск или находится в командировке. Блокирование учетной записи гарантирует, что она не сможет быть использована для несанкционированного доступа во время отсутствия ее владельца.
User name:
Alex
Full name:
(Нестеренко Алексей
.Description:
(Программист отдела разработки
Password: .Confirm password:
I
%? User must change password at next logon
Г :. - • Г :... 5; Г~ Account is disabled
Create
Close
Рис. 4.6. Окно New User
В принципе, для создания учетной записи достаточно ввести ее имя. После этого становится возможным нажатие кнопки Create, что приведет к созданию
61
Глава 4. Подготовка к установке SQL Server 2000
учетной записи. Однако если вы не уверены, что через пару месяцев вспомните, что это за учетная запись, то лучше добавить дополнительные комментарии в полях Full name и Description. Как и при конфигурировании учетных записей Windows NT 4.0, учетным записям Windows 2000 необходимо предоставить дополнительные права, чтобы использовать их для запуска служб SQL Server 2000. В Windows 2000 управление правами осуществляется отдельно от управления учетными записями. Для управления правами в пределах локального компьютера служит оснастка Local Security Policy (рис. 4.7), в которой необходимо выбрать папку Local Policies\User Right Assignment. № Local Security Settings
Щ G?
Tree |
IS IE Policy '
• i) Security Settings
Ли]Access this computer from the net..,
И :_Э Account Policies :-! CD Local Policies
-"SI Act as part of the operating system
MATRIX\Administrator
S!i]Add workstations to domain
Authenticated Users
;
Action
View
M ф>
"»
„RSflBack up files and directories Si Ш Audit Policy Й СЭ User Rights Assigt |Щ]В .pass traverse checking ffi CM Security Options jHJ] Change the system time ffl C_J Public Key Policies .RjyCreate a pagefile S -J|, IP Security Policies on $ 3 Create a token object I
j Local Setting MATRIX\IWAM_ST...
j Effective Setting
_^_
MATRIX\IU5R_STO...
Backup Operators,...
AdministratorSjBack...
Everyone, Users, Po...
Everyone, Administr,.,
Power Users,Admini...
Administrators,Serv...
Administrators
Administrators
Administrators
Administrators
Ш\ Create permanent shared objects !jo]Oebug programs „Яд] Deny access to this computer from.. у logon as a batch job щЩОепу logon as a service .So] Deny logon locally эд]Enable computer and user account.. iaS]Force shutdown from a remote sy...
Administrators Administrators
?!g\ Generate security audits Ш\ Increase quotas
Administrators
!.S^] Increase scheduling priority
Administrators
Administrators
Li»»] Load and unload device drivers
Administrators
Administrators
Ills] Lock pages in memory чу.) Log o n a 5 a batch job
MATRIX\Administrator MATRIXUWAM_ST...
„
i
±J
MATRIX\IUSR_STO... MATRIX^Administrator
15$ Log o n as a service
]l
Cancel
Рис. 6.2. Первое окно мастера Installation Wizard
Во втором окне (рис. 6.3) пользователь должен выбрать сервер, с которым будет работать мастер установки. Предлагаются следующие варианты: • Local Computer. При выборе этого пункта мастер установки начнет работать с локальным сервером, т. е. сервером, на котором был запущен мастер. Соответственно, будет использоваться локальный тип установки. В этом случае текстовое поле в центральной части окна будет неактивно. • Remote Computer. Данный вариант используется при выполнении удаленной установки. При выборе пункта становится доступным поле в центральной части окна мастера, в котором указывается имя удаленного компьютера, где следует установить SQL Server 2000 или добавить компоненты. При попытке указать в поле имя локального компьютера мастер сообщит, что нельзя выполнять удаленную установку на локальном компьютере и попросит ввести имя другого сервера. Имя удаленного компьютера может быть введено как вручную, так и выбрано в браузере серверов, вызвать который можно с помощью кнопки Browse.
Глава 6. Установка SQL Server 2000
95
Замечание В качестве удаленного сервера не может выступать компьютер с операционной системой Windows 98, даже если на нем уже имеется установленный SQL Server 2000. • Virtual Server. Переключатель доступен только в том случае, если мастер был запущен на компьютере с установленной поддержкой кластера. Также потребуется указать имя существующего или нового виртуального сервера, с которым будет работать мастер установки. Computer Name Enter the name of the computer on which you want to create a,new instance of SQL Server or modify an existing instance of SQL Server.
i (• [Local Computer ! С .Remote Computer \Г WhMlServei
Help
< Back
Next>
Cancel
Рис. 6.З. Окно Computer Name мастера Installation Wizard
Мы не будем рассматривать установку на удаленный и виртуальный сервер, т. к. они применяются изредка, а работа с ними лишь немного отличается от локальной установки. Таким образом, мы будем рассматривать локальную установку. Следовательно, переключатель должен быть установлен в положение Local Computer, после чего можно переходить к следующему окну мастера, нажав кнопку Next. Третье окно мастера имеет название Installation Selection (рис. 6.4) и предназначено для выбора режима работы мастера установки. Как и в предыдущем окне, в распоряжении пользователя имеется переключатель, с помощью которого и необходимо выбрать нужный режим. Доступны следующие режимы: П Create a new instance of SQL Server. При установке переключателя в это положение мастер выполнит создание на локальном компьютере новой инсталляции SQL Server 2000.
Часть II. Установка SQL Server 2000
96 Installation Selection
Select one of the following installation options. f* £reati- -i i f ' i ' 1 e
erver
f~ Upgrade, remove, or add components to an existing instance of SQL Server С Advanced options
Create a New Installation This option allows you to create a new instance of SQL Server 2000.
< Back
Next >
Cancel
Рис. 6.4. Окно Installation Selection мастера Installation Wizard
Existing Installation Select one of the following to change your installation. Г
Ш
eornpcrwi-fe: .1
с ; existing im : ;.-•:•.-
f* IJninstall your existing installation *•" Uggrade your existing installation
This option allows you to upgrade your existing installation to a newer version, or to add components if you purchased a SQL Server version with more features.
Help
< Back ~
11 I--
Next> I "~ -••••-•Ч
Cancel
Рис. 6.5. Окно Existing Installation мастера Installation Wizard
• Upgrade, remove, or add components to an existing instance of SQL Server. Данное положение используется, когда необходимо выполнить обновление версии билда (Build version) SQL Server 2000. Опция также может быть исполь-
97
Глава 6. Установка SQL Server 2000
зована при обновлении бета- (beta) или оценочной (evaluation) версии до полноценной версии (release). Помимо этого, в данном режиме можно управлять набором компонентов, установленным в той или иной инсталляции SQL Server 2000. При выборе рассматриваемого пункта пользователь должен будет в окне мастера Existing Installation (рис. 6.5) конкретизировать действие, которое он хочет выполнить. Advanced options. При выборе этого переключателя мастер предложит пользователю создать файл автоматической установки (setup.iss), перестроить реестр или управлять виртуальным сервером. Список указанных действий предлагается в окне Advanced Options (рис. 6.6), которое откроется непосредственно после окна Installation Selection. Напомним, что файл setup.iss может быть использован для автоматической или удаленной установки. Перестройка же реестра чаще всего применяется для заполнения его ключами и значениями, необходимыми для работы SQL Server 2000. Подобная операция может понадобиться в случае восстановления резервной копии реестра или переустановке операционной системы. Advanced Options Select one of the following advanced options. fSjijel Г" Registry Rebuild
j Record Unattended.ISS File j This option only allows you to create an installation file I that can be used for unattended installations of SQL Server 2000.
Help
< Back
Next>
Cancel
Рис. 6.6. Окно Advanced Options мастера Installation Wizard
ЗамечаШие Отметим, что при работе с предыдущими версиями SQL Server, в том числе и в SQL Server 7.0, пользователи должны были прибегать к не совсем стандартным методам для выполнения перестройки реестра и создания файла автоматической установки. В SQL Server 2000 эти действия могут быть выполнены с использованием графического интерфейса мастера Installation Wizard.
Часть II. Установка SQL Server 2000
98
Хотя мы и дали описание всех режимов работы мастера, все же будем рассматривать только создание новой инсталляции. Для этого нам необходимо установить переключатель в положение Create a new instance of SQL Server (см. рис. 6.4). В этом случае следующее окно мастера будет называться User Information (рис. 6.7). Как видно из рисунка, окно предназначено для ввода сведений о владельце продукта. В частности, указывается имя пользователя, осуществляющего установку, и название организации, в которой инсталлируется SQL Server 2000. Вводимая в этом окне информация никаким образом не влияет на работу SQL Server 2000. Указанные данные могут быть использованы при обращении в службу технической поддержки. User Information Enter your name below. It is not necessary to enter a company name.
Name:
lEvgeniy Mamaev
Company: I State University of Khakassiaj
< Back
Next>
Cancel
Рис. 6.7. Окно User Information мастера Installation Wizard
После того, как будет указана информация об имени пользователя и названии организации, мастер установки представит в окне Software License Agreement (рис. 6.8) лицензионное соглашение, в котором описаны все варианты эксплуатации продукта и ответственность пользователя в случае нарушения условий использования SQL Server 2000. Если вы принимаете предложенное лицензионное соглашение, то следует нажать кнопку Yes, после чего мастер перейдет к сбору информации о параметрах новой инсталляции. Если предлагаемые условия использования SQL Server 2000 вас чем-то не устраивают, то следует твердо нажать кнопку No, тем самым категорически прервав работу мастера и процесс установки в целом. Однако редко кто не принимает лицензионного соглашения, особенно в свете практически безнаказанного применения незаконных копий в нашей стране. Конечно, мы не рассматриваем работу с пиратскими копиями SQL Server 2000 и в дальнейшем в книге предполагаем, что вы работаете с лицензионной версией.
Глава 6. Установка SQL Server 2000
99
Sort ware License Agreement Please read the following License Agreement. Press the PAGE DOWN key to see the rest of the agreement. DEMEURERONT APPLICABLES DANS TOUTE LA MESURE PERMISE PAR LE DROIT APPLICABLE QUAND BIEN MKME UN QUELCONQUE REMMDE A UN QUELCONQUE MANQUEMENT NE PRODUIRAIT PAS D'EFFET. La prusente Convention est rugie par les lois de la province d'Ontario, Canada. Chacune des parties a la prusente reconnaot irrfivocablernent la computence des trb i unauw de la province d'Ontario et consent a instituer tout litige qui pourrait ducouler de la prftsente aupms des tribunaux situfis dans le district judiciaire de York, province d'Ontario.
Au cas ощ vous auriez des questions concernant cette licence ou que vous diteirie2 vous mettre en rapport avec Microsoft pour quelque raison que ce soit, veuillez contacter la succursale Microsoft desservant votre pays, ou ficrire a: Microsoft Corporation, SQL Server Product Marketing Test Group, One Microsoft Way, Redmond, Washington 98052-6399 U.S.A.
Do you accept all the terms of the preceding License Agreement? If you choose No, Setup will close. To install Microsoft SQL Server 2000, you must accept this agreement. < Back
Yes
No
Рис. 6.8. Окно Software License Agreement мастера Installation Wizard
Как уже было сказано, нас полностью устраивает предложенное лицензионное соглашение и мы можем смело нажать кнопку Yes, пообещав тем самым себе соблюдать все условия использования SQL Server 2000. После этого мастер в окне Installation Definition (рис. 6.9) предложит выбрать компоненты, которые следует установить: • Client Tools Only. При выборе данного переключателя мастер будет устанавливать только инструменты администрирования SQL Server 2000, такие как Enterprise Manager, Performance Monitor, Query Analyzer, а также электронную документацию Books Online. Собственно сервер установлен не будет. То есть не будет установлено служб MSSQLServer и SQLServerAgent. Таким образом, с локального компьютера можно будет работать с любым сервером сети, выполняя любые административные задачи в пределах предоставленных вам прав, а также обращаться к этим серверам с различными запросами. Однако, на локальном компьютере не будет установлено механизмов работы с данными. • Server and Client Tools. В этом случае помимо инструментов администрирования будут установлены и механизмы, обеспечивающие хранение данных и выполнение пользовательских запросов работы с данными — служба MSSQLServer, а также дополнительные механизмы — службы SQLServerAgent, MSDTC и MSSearch. To есть будет произведена полноценная инсталляция SQL Server 2000. • Connectivity Only. Этот вариант предполагает установку на локальном компьютере только сетевых библиотек. Никакие дополнительные компоненты добавлены не будут. Указанный вариант установки используется на клиентских компьютерах, на которых предполагается запускать различные приложения, обращающиеся в своей работе к SQL Server 2000. В состав операционных
100
Часть II. Установка SQL Server 2000
систем семейства Windows входят только сетевые протоколы. Однако, как было сказано в одной из предыдущих глав, этого недостаточно для обеспечения возможности работы с SQL Server 2000. Необходимо установить дополнительные компоненты, что и выполняется в рассматриваемом режиме установки. Отметим, что оба описанных выше режима включают и установку сетевых библиотек.
Installation Definition You can select one of the following types of installations. Client Tools Ony l Дегуи ir и I diet t fools
Cancel
Рис. 6.14. Окно Authentication Mode мастера Installation Wizard
• Confirm password — в этом поле необходимо повторить пароль, введенный в предыдущем поле. Дублирование выполняется для того, чтобы избежать ошибок при вводе пароля.
Часть II. Установка SQL Server 2000
110
Blank Password (not recommended) — хотя мастер и предлагает явно ввести пароль для учетной записи sa, все же существует возможность оставить его пустым. Для этого необходимо установить рассматриваемый флажок. Попытка оставить поля Enter password и Confirm password пустыми приведет к выдаче мастером сообщения о недопустимости подобного действия. Настоятельно не рекомендуется оставлять пустым пароль учетной записи sa.
Замечание Более подробно типы аутентификации будут рассмотрены в разд. "Аутентификация" главы 9. В следующем окне, имеющем название Collation Settings (рис. 6.15), мастер дает возможность сконфигурировать параметры сопоставления, которое будут использоваться для всех системных баз данных, баз данных pubs и Northwind, a также предлагаться в качестве значения по умолчанию для всех создаваемых пользовательских баз данных. Отметим, что параметры сопоставления, задаваемые в процессе установки SQL Server 2000, не рассматриваются как единый и неизбежный стандарт для всех данных, хранимых на этом сервере. Хотя именно так и было при работе с предыдущими версиями SQL Server, включая и SQL Server 7.0, в SQL Server 2000 был сделан существенный шаг вперед. Теперь каждая из баз данных может иметь свое собственное сопоставление, которое будет определять правила сравнения, хранения и упорядочивания информации в этой базе данных. Более того, сопоставление можно контролировать на уровне таблицы или даже ее отдельного столбца. Collation Settings Wn i dows Locale Change the default settings only if you must match the collation of another instance of SQL Server or the Windows locale of another computer. Sort order Г™ Bjnary
]Cyrilic_General
Г" Case sensitive I** Accent sensitive
C~ SQL Collations (Used for compatibility with previous versions of SQL Server). Dictionary order, case-sensitive, for use with the 1251 (Cyrillic) Character Set. ~ Dictionary order, case-insensitive, for use with the 1251 (Cyrillic) Character Set. Ukrainian dictionary order, case-sensitive, for use with the 1251 (Cyrillic) Character Set
Help
Cancel
Рис. 6.15. Окно Collation Settings мастера Installation Wizard
Глава 6. Установка SQL Server 2000
111
Замечание Более подробно суть сопоставлений, их виды и выбор были рассмотрены в разд. "Выбор конфигурации сервера" главы 4. Однако вернемся к окну Collation Settings. Как видно из рисунка, окно разбито на две части, которые являются взаимоисключающими. Напомним, что SQL Server 2000 поддерживает два вида сопоставления — сопоставление Windows и сопоставление SQL Server. Первое из них основывается на значениях, установленных на уровне операционной системы, тогда как второе требует явного указания названия сопоставления. Выбор типа сопоставления осуществляется с помощью переключателя, который может быть установлен в следующие положения: • Collation designator. В этом случае будет использоваться сопоставление Windows. В раскрывающемся списке необходимо выбрать основной язык. Для России предлагается использовать CyrilIic_General. Дополнительно требуется определить правила сравнения символьных данных, что осуществляется с помощью следующих флажков группы Sort order: • Binary — при установке этого флажка символы будут сравниваться на основе их кодов. Никаких дополнительных операций выполняться не будет. Данный метод сортировки является самым быстрым. Как следствие, два оставшихся флажка будут недоступны. •
Case sensitive — управляет чувствительностью к регистру символов. При сброшенном флажке строчные и прописные буквы будут считаться эквивалентными.
• Accent sensitive — управляет чувствительностью к диакритическим маркерам. Для России эта возможность не представляет особого интереса, т. к. в нашем алфавите диакритические маркеры не используются. Однако, если предполагается хранить данные на разных языках (например, на французском или немецком), то необходимо соответствующим образом сконфигурировать эту опцию. • SQL Collation (Used for compatibility with previous versions of SQL Server). При установке переключателя в это положение пользователю будет предложен список сопоставлений, поддерживаемых SQL Server 2000. Из всех доступных сопоставлений пользователь должен будет выбрать один единственный. Для России предлагаются сопоставления, оканчивающиеся на ...for use with 1251 (Cyrillic) Character Set.
Замечание Строго говоря, SQL Server 2000 всегда работает только с сопоставлениями SQL Server. На уровне сервера сопоставление Windows отображается в соответствующее сопоставление SQL Server. Это сделано для обеспечения удобства конфигурирования и с целью избавить пользователя от необходимости вникать в подробности работы сервера. Пользователям, для которых выбор нужного сопоставления представляет некоторые трудности, можно посоветовать просто нажать в окне кнопку Next, тем 5 Зак. 83
Часть II. Установка SQL Server 2000
112
самым приняв значение по умолчанию. Мастер предлагает наиболее подходящее значение, вполне удовлетворительное в большинстве случаев. Network Libraries Select the network libraries to use when connecting to the server. P JNamedPipe^ Named Pipe name; |\V\pipe\MSSQL$FSFS\$ql\que
Г NWLinklFWSPX
P" JCP/IP Sockets Port number:
Г
г
Г
Proxy address;
Г
Mufti-Prolotd Г
Ei4bteMulli-pfOto«
Help
< Back
Next>
Cancel
Рис. 6.16. Окно Network Libraries мастера Installation Wizard Start Copying Files Setup has enough information to start copying the program files. If you want to review or change any settings, click Back. If you are satisfied with the settings, click Next to begin copying files.
< Back
|[ Next"> ll
Cancel
Рис. 6.17. Окно Start Copying Files мастера Installation Wizard
Следующее же окно мастера, имеющее имя Network Libraries (рис. 6.16) используется для управления свойствами сетевых библиотек. Как видно, в окне маете-
Глава 6. Установка SQL Server 2000
1J3_
pa представлены все стандартные библиотеки. Часть из них может быть неактивна, если в операционной системе не установлен сетевой протокол, необходимый для работы соответствующей библиотеки. Выставляя флажок около имени той или иной библиотеки, вы тем самым разрешаете использовать ее для работы устанавливаемой инсталляции SQL Server 2000. На этом конфигурирование процесса установки заканчивается. Следующее окно мастера называется Start Copying Files (рис. 6.17) и не содержит никаких элементов управления кроме стандартных кнопок мастера. Как следует из названия окна и приведенного в нем текста, после нажатия кнопки Next мастер приступит к копированию файлов и собственно установке выбранных компонентов. Если вы сомневаетесь в правильности указанных значений, то сейчас самое время вернуться к предыдущим окнам мастера и внести соответствующие изменения. После нажатия кнопки Next этого сделать уже не удастся.
Настройка системы после установки После того, как установка будет успешно завершена, необходимо перезагрузить компьютер. Затем SQL Server 2000 может начать свою работу и принимать запросы пользователей. Никаких дополнительных действий по настройке сервера можно не предпринимать. Программа установки SQL Server 2000 автоматически выполняет конфигурирование сервера наиболее оптимальным образом. К тому же в SQL Server 2000 реализованы механизмы автоматического конфигурирования, что позволяет ему динамически подстраиваться под текущие параметры операционной системы и нужды пользователей. Однако, в некоторых случаях администратор должен предпринять определенные действия по настройке или изменению параметров работы сервера. Часть вопросов обслуживания сервера будет рассмотрена в следующих разделах, другие же — в следующих главах книги.
Управление работой служб SQL Server 2000 Как уже не раз говорилось, службы SQL Server 2000 могут работать как под одной, так и под разными учетными записями. Они управляются операционной системой также, как и для обычных пользователей. Это означает, что для учетных записей служб SQL Server 2000 действуют все правила политики безопасности, установленные в домене. Данный факт следует учитывать при выполнении операций с учетными записями служб. Чаще всего однажды созданная учетная запись, используемая службами сервера, эксплуатируется продолжительное время без внесения изменений. Но иногда все же бывает необходимо сменить ее пароль. Изменение пароля учетной записи при работе с Windows NT 4.0 выполняется с помощью утилиты User Manager for Domains, а при работе с операционной системой Windows 2000 — с помощью утилит Computer Management (для локальных учетных записей пользователей) и Active Directory User and Computers (для учетных записей пользователей
Часть II. Установка SQL Server 2000
114
домена). Работа с данными утилитами была рассмотрена в разд. "Подготовка учетных записей"главы 4.
Service Messenger Microsoft Search MSDTC M i SSQLServer Net Logon Network DDE Network DDE DSDM NT LM Security Support Provider Plug and Play Protected Storage
Status
Started
Started Started
Startup Manual z Manual Manual Manual Automatic Manual Manual Manual Automatic ' Automatic
Close
Start
Startup... HW Profiles..
Startup Parameters: Help
Рис. 6.18. Утилита Services для Windows NT 4.0 ••иншншппиа 1*%» Services •• 1 1 Action : Ve i w --• •# Щ7] Qfj Щ [ЩI] i f ; • и Tree 1 Description | Status Name •
**цй Services (Local)
,|D|xf
Startup Type
Log On As
Manual
.\Administ..,
%MSSQL$TRELON
Manual
.\Adrninist.,,
%MSSQLSERVER
Automatic
.\Administ.,,
Manual
LocalSystem
Manual
LocalSystem
Manual
LocalSystem
^ M i c r o s o f t Search
^ $ N e t Logon
Creates ful,,,
Supports p . . .
%}NetMeeting Remote... Allows a u t . . . Щ$ Network Connections
Manages o . . .
% Net work DDE
Provides n , , .
Manual
LocalSystem
% Network DDE DSDM
Manages s,.,
Manual
LocalSystem
% N T L M Security Sup,..
Provides s...
Manual
LocalSystem
^Performance Logs a,,. Configures...
Manual
LocalSystem
Started
^gPlug and Play
Manages d . . .
5tarted
Automatic
LocalSystem
Щ$ Print Spooler
Loads files ...
Started
Automatic
LocalSystem
*% Protected Storage
Provides p r , , ,
Started
Automatic
LocalSystem
^QoSRSVP
Provides n . , ,
Manual
LocalSystem
^ R e m o t e Access Aut...
Creates a ...
Manual
LocalSystem
^ R e m o t e Access Con,,. Creates a ...
Started
Manual
LocalSystem
*%Remote Procedure ...
Provides t h . . .
Started
Automatic
LocalSystem
^%jRemote Procedure ...
Manages t . . ,
Manual
LocalSystem
^ R e m o t e Registry Se... Allows rern...
Started
Automatic
LocalSystem
™gg Removable Storage
Manages г...
Started
Automatic
LocalSystem
Щ&Routing and Remot,.,
Offers rout,..
Disabled
LocalSystem
zl
I
Рис. 6.19. Утилита Services для Windows 2000
После смены пароля нужно сообщить его службе SQL Server 2000, использующей измененную учетную запись. Это можно сделать двумя способами. Первый способ заключается в использовании утилиты Service, которую можно найти в Control
115
Глава 6. Установка SQL Server 2000
Service:
MSSQLServer
Startup Type | С Automatic ! >: Ш Щ Щ> \ \Й ' j i- vS 0^ Q QO Cd j Support Services 3 Items
В ^ J SQL Server Group
j j
+ Щ ) CIT (Windows NT/2000) .+' -_5 MILLENNIUM (Windows NT/2000 + _'•) STORAGE (Windows NT/2000) - Щ
|1
J Distributed Transacti...
1
-
ЩИ! Ш } P f f l S
1 — idPl > li \
J
SQL Mail
STORAGE\SQL_SERVER_2000 (\ Start
ftl-t-'-l Databases Щ C J Data Transformation Service Fl-P'l Management \
&-Щ
!
; - - { p Backup + Щ Current Activity
SQL Server Agent
New Window from Here Refresh
i Щ Database Maintenance F
|
: ffl Q
Properties
SQL Server Logs :
\-\-i 1 Replication
Help
! ffl C J Publications j
:
' - Q j Subscriptions
S9 Qi Security : F j ^ Logins i
; ' f c Server Roles
:
+ ffii Linked Servers
! "'"Ш Remote Servers Id ' £ j Support Services : : g y Distributed Transaction
NetMeeting Remote Deskto... *%Network Connections % Network DDE % Net work DDE DSDM *%NT LM Security Support Pro... ^§gOffice Server Extensions N... ^Performance Logs and Alerts *%Plug and Play *% Print Spooler ^Protected Storage
•
1
| Description
j Status Started Starting Logical Disk,,. Started Administrate. Sends and ... Started Creates ful... Started Started Generates ...
Supports p... Allows aut... Manages o... Provides n... Manages s... Provides s...
Started Started
Started
Configures... Manages d... Started Loads files ... Started Provides pr... Started
Startup Type Automatic Automatic Automatic Manual Automatic Manual Manual Automatic Manual Automatic Manual Manual Manual Manual Manual Automatic Manual Automatic Automatic Automatic
j Log On As j^J LocalSystem LocalSystern LocalSystem LocalSystem LocalSystem LocalSystem j LocalSystem j .\Administ...B LocalSystem j LocalSystem j LocalSystem LocalSystem LocalSystem LocalSystem LocalSystern LocalSystem LocalSystem LocalSystern LocalSystem LocalSystemJlJ IjJ
Рис. 7.9. Утилита Services Windows 2000
Окно утилиты разделено на две части, что характерно для консоли управления Microsoft (MMC, Microsoft Management Console). Большинство современных продуктов Microsoft для выполнения администрирования используют интерфейс ММС, специально разработанный для этих целей. Windows 2000 не является исключением. Аналогичный интерфейс администрирования применяется и в Enterprise Manager. В левой части окна указывается объект, а в правой части — список вложенных объектов и свойств. Нас интересует только правая часть окна, в которой перечислены все имеющиеся в системе службы. Информация о службе выводится в нескольких столбцах: •
Name — имя службы, предназначенное для пользователя. В операционной системе используется другое имя, которое также применяется при управлении службами в режиме командной строки.
П Description — краткое описание службы. б Зак. 83
144
Часть III. Администрирование
П Status —текущее состояние службы. Если служба запущена, то в столбце будет выведено Started. В противном случае ничего не отображается. П Startup Type —режим запуска соответствующей службы. Возможны состояния Automatic, Manual и Disabled. Более подробно назначение каждого типа запуска будет рассмотрено далее в этой главе. •
Log On As —имя учетной записи, которая используется для запуска службы. Замечание Приведенный список содержит перечень всех столбцов, допустимых для служб. Однако при необходимости можно исключить те или иные сведения, а также изменить их порядок.
Управление работой службы можно выполнять двумя способами: •
с помощью контекстного меню;
П из окна свойств службы. В этой главе мы уже не раз рассматривали использование контекстного меню для управления работой службы, но не будет лишним еще раз остановиться на этом. Единственно, в контекстном меню службы в утилите Services Windows 2000 имеется пункт Restart. Он используется для перезапуска работающей службы. Перезапуск подразумевает останов службы, после которого выполняется повторный ее запуск. В принципе, перезапуск службы может быть выполнен и вручную за две операции. Перезапуск часто организуется при смене имени или пароля учетной записи, под которой стартует служба. Для открытия окна свойств службы достаточно дважды щелкнуть на имени нужной службы или выбрать в ее контекстном меню или меню Action команду Properties. Окно имеет четыре вкладки. Для управления работой службы предназначена вкладка General (рис. 7.10), которая имеет ряд элементов управления: П Service name — имя службы в операционной системе. Именно оно используется при управлении службой в режиме командной строки. П Display name — имя, которое отображается в консоли Services. При необходимости пользователь может указать любое произвольное имя, которое не обязательно будет соответствовать действительному имени службы. П Description — краткое описание службы. Этот текст отображается в одноименном столбце основного окна консоли Services. Хотя чаще всего значение в данном поле устанавливается при инсталляции службы, пользователь может ввести любой другой текст. •
Path to executable — полный путь до исполняемого файла, в котором хранится код службы.
П Startup type — режим запуска службы.
Глава 7. Управление работой служб SQL Server 2000
145
П Service status — текущее состояние службы (запущена, остановлена или приостановлена). • Start — кнопка запуска остановленной службы. • Stop — кнопка, применяемая к запущенной или приостановленной службе и приводящая к ее останову. • Pause — кнопка, применяемая к запущенной службе и приводящая к ее приостанову. В этом состоянии служба завершает выполнение начатых заданий, но не запускает на выполнение новые задания. • Resume — кнопка, применяемая к приостановленной службе и переводящая ее в нормальное рабочее состояние, т. е. служба может выполнять новые задания. П Start parameters — поле, позволяющее перечислять дополнительные ключи запуска службы. MSSQL$SQL_SERVER 2000I General 1 Log ORecovery] n Dependencies)
XiiiJ
Service name: MSSQL$SQL_SERVER_2000 Inscription:
|
Pathtoexecutable: QL$~1 \binn\sqlservr.exe-sSQL.SER ^ER_2000 Startup type:
(Manual
JJ
Service status: Started Stop
Pause
8» 1 You can specifyie start parameters that apply when you start the service from here.
OK
Рис. 7.10. Вкладка General окна свойств службы
На этом рассмотрение управления работой служб SQL Server 2000 с помощью утилиты Services можно считать законченным. Достаточно выбрать в списке нужную службу и воспользоваться контекстным меню или соответствующими кнопками. Однако следует обратить внимание, что при управлении службами SQL Server 2000 с помощью утилиты Services состояние сервера в Service Manager и Enterprise Manager может некоторое время не изменяться. При необходимости следует принудительно обновить его.
146
Часть III. Администрирование
Использование командной строки Все рассмотренные ранее способы управления работой служб SQL Server 2000 предполагали использование графических инструментов. Однако иногда бывает необходимо выполнить запуск или останов службы с помощью командного файлы, задания SQL Server 2000 или просто из командной строки. Во всех этих случаях можно использовать возможности утилиты командной строки net.exe. Эта утилита имеет множество функций, к которым относится регистрация пользователя в системе, отправка всплывающих сообщений по сети, получение времени с удаленного компьютера, просмотр и подключение ресурсов сети, получение статистики и некоторые другие, в том числе и управление работой служб.
Замечание Полный список функций утилиты net.exe можно получить, выполнив команду net / ?. Управление работой служб осуществляется с указанием следующих ключей: •
net start [service] — запуск службы;
П net stop [service] — останов службы; •
net pause [service] — приостанов службы;
П net continue [service] — возобновление работы службы после приостанова. Вместо [service] следует подставлять имя службы, которой предполагается управлять. Например, для запуска службы MSSQLServer следует выполнить следующую команду: net
s t a r t MSSQLServer
В ответ будут выведены сообщения: The MSSQLServer service is starting... The MSSQLServer service was started successfully.
Первое сообщение свидетельствует о попытке запуска службы, тогда как второе сообщает о том, что служба была запущена успешно. Запуск службы именованной инсталляции выполняется аналогично. Например, для запуска службы MSSQLServer инсталляции Trelon используется следующая команда: net
s t a r t MSSQL$Trelon
Замечание Выполнение команды net s t a r t без имени службы приведет к выводу списка запущенных в операционной системе служб.
Глава 7. Управление работой служб SQL Server 2000
147
Останов средствами Transact-SQL Описанные ранее способы останова сервера являлись в той или иной степени внешними по отношению к серверу. Однако останов сервера можно также выполнить и средствами языка Transact-SQL. Для этого предназначена команда SHUTDOWN, имеющая следующий синтаксис: SHUTDOWN [WITH NOWAIT]
Если команда выполняется с WITH NOWAIT, TO сервер не выполняет процесс контрольной точки для всех баз данных. Это обеспечивает быстрый останов сервера. При этом также происходит откат всех активных транзакций и завершение всех пользовательских процессов. Если WITH NOWAIT не указывается, то происходит более мягкое завершение работы сервера. Сначала выполняется приостанов сервера с ожиданием завершения всех начатых транзакций, и только после завершения всех процессов происходит останов сервера. При этом также выполняется процесс контрольной точки для каждой базы данных.
Запуск SQL Server 2000 как приложения До сих пор SQL Server 2000 рассматривался как набор служб, а запуск SQL Server 2000 подразумевал работу службы MSSQLServer. Однако существует возможность запускать SQL Server 2000 как отдельное приложение. Для этого необходимо выполнить программу sqlservr.exe, которую можно найти в папке \Program Files\Microsoft SQL Server\MSSQL\Binn. (
Замечание
^
Для запуска SQL Server 2000 из командной строки используется учетная запись пользователя, выполняющего запуск. Как следствие, SQL Server 2000 будет иметь те же права доступа, что и текущий пользователь. Если пользователю не предоставлен доступ к файлам баз данных, то попытка запуска сервера закончится неудачно. Все сообщения, которые при работе SQL Server 2000 как службы выводятся в журнал приложений (application log) операционной системы и журнал собственно SQL Server 2000, будут выводиться в режиме командной строки. Ниже приведен типичный набор сообщений, выводимый SQL Server 2000 при запуске в качестве приложения. 2001-08-05 22:53:40.64 server Microsoft SQL Server 2000 - 8.00.100 (Intel X86) Apr 18 2000 01:19:00 Copyright (c) 1988-2000 Microsoft Corporation Standard Edition on Windows NT 5.0 (Build 2195: ) 2001-08-05 22:53:40.69 server tion.
Copyright (C) 1988-2000 Microsoft Corpora-
2001-08-05 22:53:40.72 server
All r i g h t s reserved.
148
Часть III. Администрирование
2001-08-05 22:53:40.73 server Server Process ID is 652. 2001-08-05 22:53:40.74 server Logging SQL Server messages in file •G:\Program Files\Microsoft SQL Server\MSSQL\log\ERRORLOG'. 2001-08-05 22:53:40.81 server SQL Server is starting at priority class 'normal'(1 CPU detected). 2001-08-05 22:53:40.93 server User Mode Scheduler configured for thread processing 2001-08-05 22:53:40.97 server Using dynamic lock allocation. [2500] Lock Blocks, [5000] Lock Owner Blocks 2001-08-05 22:53:41.02 server Attempting to initialize Distributed Transaction Coordinator. 2001-08-05 22:53:42.14 spid3 Starting up database 'master'. 2001-08-05 22:53:42.62 spid3 0 transactions rolled back in database 'master' (1). 2001-08-05 22:53:42.65 spid3 Recovery is checkpointing database 'master' (1) 2001-08-05 22:53:42.85 server Using 'SSNETLIB.DLL' version '8.0.100'. 2001-08-05 22:53:42.92 server SuperSocket Info: Bind failed on TCP port 1433. 2001-08-05 22:53:42.96 spid5 Starting up database 'model'. 2001-08-05 22:53:42.98 spid3 Server name is 'STORAGE'. 2001-08-05 22:53:42.99 server SQL server listening on TCP, Shared Memory, Named Pipes. 2001-08-05 22:53:43.03 server Ready For Connections 2001-08-05 22:53:43.05 spid7 Starting up database 'msdb'. 2001-08-05 22:53:43.06 spid8 Starting up database 'pubs'. 2001-08-05 22:53:43.08 spid9 Starting up database 'Northwind'. 2001-08-05 22:53:43.61 spid5 Clearing tempdb database. 2001-08-05 22:53:44.81 spid5 Starting up database 'tempdb'. 2001-08-05 22:53:45.05 spid3 Recovery complete.
Когда SQL Server 2000 выполняется как обычное приложение, при просмотре состояния служб можно будет увидеть, что служба остановлена. Тем не менее, пользователи могут устанавливать соединения, получать доступ к объектам в соответствии с их правами, выполнять запросы, хранимые процедуры и т. д. Более того, можно будет выполнять администрирование инсталляции с помощью Enterprise Manager. Замечание Попытка остановить SQL Server 2000, запущенный как приложение, с помощью команды n e t s t o p MSSQL$lnstName, вызовет ошибку с выдачей сообщения о том, что служба не запущена. Останов SQL Server 2000, запущенного как приложение, выполняется либо с помощью команды Transact-SQL SHUTDOWN, либо нажатием комбинации клавиш + или +.
При запуске SQL Server 2000 как приложения необходимо перейти в каталог Binn нужной инсталляции. При запуске инсталляции по умолчанию нет необходимости указывать дополнительные ключи. Когда же запускается именованная инсталляция, необходимо использовать ключ -а с указанием имени инсталляции. Например, для запуска инсталляции Trelon следует перейти в каталог
Глава 7. Управление работой служб SQL Server 2000
149
\Program Files\Microsoft SQL Server\MSSQL$Trelon\Binn и выполнить следующую команду: sqlservr.exe -strelon
Соответственно, при соединении с запушенным SQL Server 2000 требуется помимо имени сервера указывать и имя инсталляции. Например, если SQL Server 2000 установлен на сервере Storage, то клиенты должны будут обращаться к серверу по имени Storage\Trelon.
Замечание При поиске серверов в сети ни Enterprise Manager, ни Query Analyzer не обнаружат имени SQL Server 2000, запущенного в роли приложения. Поэтому для доступа к такому SQL Server 2000 необходимо знать имя сервера и инсталляции. Легко создать новую инсталляцию SQL Server 2000, не выполняя собственно установку. Такую инсталляцию можно будет запускать как приложение, но нельзя выполнять как службу. Для создания инсталляции необходимо скопировать некоторые ключи реестра, создать в каталоге \Program Files\Microsoft SQL Server\ папку для новой инсталляции в формате MSSQLSlnstName и перенести в нее все файлы и каталоги из каталога инсталляции по умолчанию или именованной инсталляции. Данные именованной инсталляции располагаются в следующем ключе реестра: НКЕY_LOCAL_MACHINE \SOFTWARE \Microsoft \ Microsoft SQL Server \[Instance name]
Данные в этот ключ можно скопировать от другой именованной инсталляции, изменив соответствующим образом имя инсталляции. В разд. "Режимы запуска SQL Server 2000" далее в этой главе будет рассказано о параметрах запуска сервера. При необходимости можно внести некоторые изменения в опции запуска новой инсталляции. Однако на этом создание новой инсталляции не заканчивается. Требуется также внести изменения в таблицу sysdatabases базы данных Master, соответствующим образом изменив ссылки на системные и пользовательские базы данных.
Управление учетной записью службы Как уже не раз было сказано, каждая служба операционной системы, в том числе и службы SQL Server 2000, запускаются под определенной учетной записью. Выбор этой учетной записи имеет немалое значение, особенно когда предполагается взаимодействие нескольких серверов SQL Server 2000 между собой. В главе 4 рассматривалась подготовка учетных записей, которые будут использоваться для запуска служб SQL Server 2000. Там же объяснялись достоинства и недостатки применения того или иного типа учетных записей, а также методы
150
Часть III. Администрирование
создания учетных записей и предоставление им необходимых привилегий в операционных системах Windows NT 4.0 и Windows 2000. До сих пор предполагалось, что при инсталляции SQL Server 2000 учетные записи были выбраны удачно и нет необходимости изменять их. Чаще всего однажды созданная учетная запись используется службами сервера продолжительное время без внесения изменений. Тем не менее, иногда бывает необходимо внести некоторые изменения в свойства запуска службы. Чаще всего подобные изменения вносятся из-за смены пароля учетной записи, под которой запускается служба. Но иногда требуется изменить и имя учетной записи. Это бывает, например, когда на предприятии устанавливаются дополнительные серверы, и вместо локальной учетной записи решается использовать учетную запись пользователя домена. Прежде чем внести любые изменения в свойства запуска службы, необходимо исправить саму учетную запись. Например, если нужно сменить пароль, то сначала следует изменить его в диспетчере пользователей (в User Manager для Windows NT 4.0, или в Active Directory Users and Computers для Windows 2000). После этого следует изменить пароль в свойствах запуска учетной записи. Если же предполагается использовать новую учетную запись, то сначала нужно создать ее, и только после этого изменять свойства запуска службы. В следующих разделах будут рассмотрены различные способы изменения свойств запуска служб SQL Server 2000. Однако изменение свойств учетной записи на уровне операционной системы рассматриваться не будет. В разд. "Подготовка учетных записей" главы 4 были даны некоторые сведения по управлению учетными записями на уровне операционной системы.
Утилита Enterprise Manager Для управления параметрами запуска службы MS SQLServer выберите в панели Enterprise Manager нужный сервер и откройте окно его свойств (например, выбрав в контекстном меню сервера команду Properties). Окно свойств сервера (SQL Server Properties) содержит ряд вкладок, используемых для управления параметрами работы службы MSSQLServer. В данном случае нас интересует вкладка Security (рис. 7.11). На этой вкладке в разделе Startup service account можно изменить тип, имя и пароль учетной записи, используемой для запуска службы MSSQLServer. Если установить переключатель System account, то для старта службы будет назначена учетная запись локальной системы. Установив переключатель This account, можно указать имя и пароль любой учетной записи пользователя.
В отличие от утилиты Services, в утилите Enterprise Manager ввод неправильного имени пользователя или пароля недопустим. При нажатии кнопки ОК будет выдано соответствующее сообщение об ошибке.
Глава 7. Управление работой служб SQL Server 2000
151
SQL Server Properties (Configure) - ST Server Settings General j Memory
|
Database Settings Processor Security
Replication Connections
г SecuritySQL Server provides authentication based on Windows NT accounts and a named SQL Server login ID and password. Authentication: C : SQL Server and Windows NT/2000 ^Windows NT/2000 only Audit level: (* Цопе
*"* Failure
Г Success
f
Ajl
Startup service account 1фЪ
Start and run SQL Server in the following account: С' Sustem account (* Xhis account
SQLAccount
password:
OK
Cancel
Help
Рис. 7 . 1 1 . Вкладка Security окна свойств сервера
Изменение параметров учетной записи службы SQLServerAgent также производится с помощью окна свойств службы. Значок службы можно найти в папке Management, предварительно выбрав нужный сервер в панели Enterprise Manager. Окно свойств службы SQLServerAgent содержит пять вкладок. Управлять параметрами учетной записи, используемой для работы службы, позволяет вкладка General (рис. 7.12). В разделе Service startup account можно выбрать либо учетную запись локальной системы (переключатель System account), либо учетную запись пользователя (переключатель This account), указав при этом его имя и пароль. Ввод неверных данных об имени или пароле пользователя также приведет к ошибке. Управление параметрами учетной записи службы MSDTC из утилиты Enterprise Manager не реализовано. Для изменения учетной записи следует использовать утилиту Services из состава Control Panel. Замечание Если SQL Server 2000 используется совместно с компонентом Microsoft Search, то изменение имени учетной записи или пароля для службы MSSQLServer должно выполняться только средствами Enterprise Manager. Для подключения службы Microsoft Search к службе MSSQLServer первая использует имя и пароль учетной записи, под
Часть III. Администрирование
152
которой стартует служба MSSQLServer. Если смену имени или пароля производить из Enterprise Manager, то внесенные изменения автоматически отразятся на работе службы Microsoft Search. Если же для изменения учетной записи используется утилита Services, то информация об имени и пароле не будет синхронизирована. После перезагрузки операционной системы служба Microsoft Search не сможет стартовать. Для синхронизации данных необходимо будет запустить Enterprise Manager.
SQL Server Agent Properties ~ S
General Advanced) Alert System] Job System] Connection] ;• Service startup account •C System account SQLAccount (* T his account: Password: Mail session
Mail profile: jEvgeniy Marnaev !** S_ave copies of the sent messages in the "Sent Items" folder i rror log— ~~ Щ
File name:
—'
—" ~*~"~ " " ----- - - - -
JFASQL2000\MSSQL$SQL_SEF ^ 1
View... |
Г" Include execution trace messages Г
Write OEM File
.Net send recipient:
Administrator
Cancel
Apply
Help
Рис. 7.12. Вкладка General окна свойств службы SQLServerAgent
Enterprise Manager является довольно мощным инструментом администрирования, охватывающим большую часть задач управления SQL Server 2000, в том числе и управление свойствами запуска служб. Однако возможности Enterprise Manager ограничены. Например, его можно использовать для управления только запущенным SQL Server 2000. Если же администратор поменял пароль учетной записи, под которой запускается служба MSSQLServer, и это изменение не было своевременно отображено в свойствах запуска службы, то после останова службы повторно запустить ее не удастся до тех пор, пока не будет указан новый пароль. Чаще всего с подобной проблемой сталкиваются после перезагрузки компьютера. Использовать в этом случае Enterprise Manager не удастся. Кроме того, с помощью средств Enterprise Manager можно управлять только свойствами запуска служб MSSQLServer и SQLServerAgent. Для управления службами MSDTC и Full-Text Search необходимо применять другие средства.
Глава 7. Управление работой служб SQL Server 2000
153
Утилита Services Servc ie:. MSSQLSevtef - Startup Type— I (* Automac ti • * Dsiabe ld Log On As: f* Syse tm Account Г* AJlow Service to Interact with Desktop С Jhis Account
Рис. 7.13. Диалоговое окно Service
Как было сказано ранее в этой главе, утилита Services используется для управления службами на уровне операционной системы. В принципе, независимо от способа управления службами, в конце концов все они сводятся к одному — изменению реестра. Окно утилиты Services Windows NT 4.0 (см. рис. 7.8) содержит список всех служб, находящихся на компьютере. Минимальный набор служб SQL Server 2000, устанавливаемый на компьютер, содержит службы MSSQLServer, SQLServerAgent и MSDTC. Найдите нужную службу в списке и нажмите кнопку Startup. Откроется диалоговое окно Service (рис. 7.13), позволяющее управлять параметрами запуска службы.
В группе Startup Type можно выбрать один из типов запуска службы: О Automatic. При выборе этого типа запуск службы будет автоматически выполняться сразу же после загрузки операционной системы. Администратор может быть уверен, что пользователи смогут обращаться к SQL Server 2000 сразу же после перезагрузки компьютера. • Manual. Данный тип запуска службы предполагает старт службы по необходимости. Автоматически запуск службы сразу при загрузке операционной системы не выполняется, однако администратор может вручную запустить службу. Методы запуска, остановки и приостановки будут рассмотрены позже в этой главе. • Disabled. При выборе этого пункта запуск службы запрещается. Попытка стартовать службу вызовет ошибку. Для того чтобы иметь возможность снова запускать службу, необходимо установить или переключатель Manual, или Automatic. В группе Log On As указывается имя и пароль учетной записи, под которой будет стартовать служба. Установив переключатель System Account, вы заставите службу стартовать под локальной учетной записью системы. Указание имени пользователя и пароля в этом случае не требуется. Для запуска службы под определенной учетной записью необходимо установить переключатель This Account. При этом нужно выбрать одну из созданных учетных записей. Для выбора учетной записи следует нажать кнопку ... |. Откроется диалоговое окно со списком доменов и компьютеров, а также созданных на них учетных записей. В поля Password и Confirm Password необходимо ввести корректный пароль учетной записи.
Часть III. Администрирование
154
Замечание Если пароль учетной записи указан неверно, то пользователь не получит никакого предупреждающего сообщения. Ошибка будет выдана только в том случае, если в полях Password и Confirm Password введены различные значения. При указании имени несуществующей учетной записи также будет выдано сообщение об ошибке.
Замечание Если учетная запись пользователя, выбираемого для запуска службы, не имеет права использоваться для запуска службы (Log on as a service), то это право будет предоставлено автоматически, о чем будет выдано соответствующее предупреждение. Более подробно о правах, которые должна иметь учетная запись, используемая для запуска
служб, было рассказано в разд. "Подготовка учетных записей" главы 4.
Для управления свойствами запуска службы в операционной системе Windows 2000 с помощью утилиты Services используется окно свойств службы. Открытие этого окна, как и собственно утилиты Services, было рассмотрено ранее в данной главе. Окно свойств содержит четыре вкладки. Первая из них, General (см. рис. 7.10), может быть использована для управления режимом запуска службы. Для этого предназначен открывающийся список Startup Type. Список доступных вариантов аналогичен утилите Services для Windows NT 4.0. Для управления учетной записью, под которой стартует служба, используется вкладка Log On (рис. 7.14). MSSQLSSQL SERVER 2000 Property (Local С Genera! Log On j Recovery Dependencies) Log on as:
Запуск SQL Server с другой системной базой данных M a s t e r . Введите полный путь к базе данных, обычно это \Program Files\Microsoft SQL Server\Mssql\Data\Master.mdf. Если эта опция не указана, используются значения из реестра
-e<error log path>
Подключает дополнительный журнал ошибок. Укажите полный путь к журналу ошибок, обычно это \Program Files\Microsoft SQL Server\Mssql\Log\Errorlog
-Kmaster
Подключает указанный журнал транзакций для системной базы данных M a s t e r . Укажите полный путь к журналу транзакций, обычно это \Program Files\Microsoft SQL Server\Mssql\Data\Mastlog.ldf
log path>
Данный ключ используется для запуска именованной инсталляции SQL Server 2000 как приложения. Применение этого ключа было рассмотрено в разд. "Запуск SQL Server 2000 как приложения" главы 7 Ключ используется совместно с ключом - s и свидетельствует о том, что SQL Server 2000 стартует независимо от диспетчера служб операционной системы (Windows NT Service Control Manager). Это обеспечивает более быстрый запуск сервера как приложения
Глава 8. Конфигурирование
служб SQL Server 2000
165 Таблица 8.1
Ключ
(окончание)
Описание Указание этого ключа предписывает SQL Server 2000 не регистрировать в журнале приложений (application log) операционной системы сообщения сервера. В этом случае рекомендуется использовать ключ -е для указания журнального файла, в который будут записываться сообщения сервера. Иначе сообщения могут быть потеряны
-p<precision_level>
При помощи этого ключа можно управлять максимальной точностью, доступной для типов данных d e c i m a l и n u m e r i c . Значение < p r e c i s i o n _ l e v e l > может изменяться от 1 до 38. По умолчанию SQL Server 2000 стартует с максимальным значением 38
-T
Ключ используется для запуска SQL Server 2000 с определенными флагами трассировки. Эти флаги предназначены для запуска сервера с нестандартным поведением. Для получения более подробных сведений о применении флагов трассировки следует обратиться к дополнительным источникам, например, к Books Online
-v
При указании данного ключа будет выведена информация о версии SQL Server 2000. Собственно запуск сервера выполнен не будет
-х
Указав этот ключ, можно отключить сбор статистики об использовании процессора SQL Server 2000, что обеспечит некоторое увеличение производительности
-g<memory_to_reserve>
С помощью данного ключа можно зарезервировать объем памяти для работы приложений, запускаемых SQL Server 2000. Указывается целое значение Мбайт
-о
Если пользователи не будут применять технологию DCOM (Distributed COM), то с помощью этого ключа можно предписать серверу не загружать соответствующие компоненты, тем самым запрещая выполнение гетерогенных запросов
-y<error number>
Данный ключ предписывает серверу сохранять в журнале ошибок (error log) подробную информацию о встреченных ошибках с номером < e r r o r _ n u m b e r > . Допускается указание множества ключей - у
Информация о параметрах запуска инсталляции по умолчанию SQL Server 2000 хранится в следующем ключе реестра: HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \MSSQLServer \MSSQLServer \Parameters
Часть III. Администрирование
166
Данные, приводимые в окне Startup Parameters (см. рис. 8.2), берутся из указанного ключа реестра. При внесении изменений в параметры запуска SQL Server 2000 с помощью окна Startup Parameters эти изменения будут отображены в реестре, а применятся только при следующем запуске SQL Server 2000. На рис. 8.3 приведено окно программы Registry Editor (regedit.exe) с отображением ключа, используемого для хранения информации о параметрах запуска SQL Server 2000. Вы можете создать в реестре новый ключ для именованной инсталляции. Эта процедура была описана в разд. "Запуск SQL Server 2000 как приложения" главы 7. Полученный ключ в реестре может использоваться для запуска SQL Server 2000 с ключом запуска -s. «•' Registry Editor Regsi try Edti Ve iw Favorites Hep l - _ J Microsoft SQL Server 1 CJ 8.00.000 :- £Э во : : Ш CJ Replication '. : i+J C j Tools a C]
_У
.
Name ^(Default)] «i^SQLArgO .!±]5QLArgl a*]SQLArg2
.. : Type REG_SZ REG_SZ REG_SZ REG_SZ
j Data \ ; _ (value not set) -dF:\SQL2000\MSSQL$SQL_SERVER_2000\data\master.mdf -eF:\SQL2000\M5SQL$SQL_SERVER_2000\log\ERRORLOG -IF: \SQL2000\MSSQL$SQL_SERVER_2000\data\mastlog. Idf
SQL_SERVER_2OOO
Я CJ MSSQLServer i""j CurrentVersion : ', fCS Parameters : CJ RPCNetLib ' ffl £1] SuperSocketNetLib ffl CJ Providers : C3 Replication ; - C j Setup i ffl CJ SQLServerAgent ffl CJ Tracking 9 CJ Microsoft SQL Server 7.0 • (Cj 7.00.000 Si CJ MMC (Cl MMCtlsForlE И CJ Mobile s CJ MOS ffi C J MosTrace I t ] MS Design Tools Ш О MS Setup (ACME) i CJ MSCnC SS 02 MSDAIPP i+i C_l MSDTC -ri i\
•
Ш
jlj
J
M i yComputer\HKEY_LOCAL_MACHN I E\SOFTWARE\Mc irosoft\Mc irosoftSQLServer\SQL_SERVER_2000\MSSQLServer\Parameters Рис. 8.З. Ключи реестра, используемые при запуске SQL Server 2000
Замечание Если в параметры запуска SQL Server 2000 были внесены изменения, которые привели к сбою запуска, то можно вручную отредактировать соответствующие ключи реестра для восстановления работоспособности сервера.
На вкладке General имеется еще одна кнопка — Network Configuration. Она позволяет запустить утилиту SQL Server Network Utility, с помощью которой выполняется настройка сетевых библиотек. Подробно использование этой утилиты было рассмотрено в разд. "Конфигурирование сетевых библиотек"главы 6.
Глаза 8. Конфигурирование служб SQL Server 2000
167
Вкладка Memory Как следует из названия, с помощью вкладки Memory (рис. 8.4) осуществляется управление памятью, используемой для работы SQL Server 2000. SQL Server Properties (Configure) - STOR Server Settings i Database Settings Replication General Memory Processor | Security | Connections Memory SQL Server can be configured to use a fixed amount of emory or to dynamicaly adjust the amount of memory used г>ияга m '—"—' based upon demand. **"" Dynamicaly configure SQL Server memory
(* IJse a fixed memory size (MB): \-
16MB''
255 ; 511MB
W Beserve physical memory for SQL Server Minimum query memory (KB):
|41Ж)
-
Running values
Configured values OK
Cancel
Help
Рис. 8.4. Окно SQL Server Properties, вкладка Memory
Уже в SQL Server 7.0 были существенно переработаны принципы работы с памятью. В отличие от предыдущих версий в SQL Server 7.0 и SQL Server 2000 помимо статического управления памятью возможно также динамическое управление. Если планируется статическое управление памятью, то необходимо явно указать объем оперативной памяти, который будет выделен SQL Server 2000. Независимо от действительно необходимого серверу объема операционная система выделит для работы SQL Server 2000 объем памяти, строго соответствующий указанному значению. С течением времени количество памяти, отведенной серверу, не меняется. При динамическом управлении администратор должен указать минимальное и максимальное количество памяти, доступное SQL Server 2000. Объем памяти, действительно используемой сервером, может сильно изменяться в зависимости от нагрузки на сервер. Однако он всегда остается в указанных рамках. Если пользователи не выполняют никаких действий на сервере, то объем памяти может быть автоматически уменьшен. Освободившаяся память возвращается операционной системе и может быть отдана другим приложениям. Но если SQL
168
Часть III. Администрирование
Server 2000 испытывает недостаток памяти, он может потребовать у операционной системы выделения дополнительных ресурсов. Это требование может быть удовлетворено за счет уменьшения памяти, выделенной для работы других приложений. При установке переключателя Dynamically configure SQL Server memory на вкладке Memory окна SQL Server Properties будет использоваться динамическое управление объемом памяти, выделенное для работы SQL Server 2000. В этом случае с помощью регуляторов Minimum (MB) и Maximum (MB) необходимо соответственно указать минимальное и максимальное количество Мбайт, выделяемых для работы сервера. По умолчанию минимальный объем памяти составляет 0 Мбайт, а максимальный объем соответствует максимально доступному объему оперативной памяти системы. Нижняя граница максимального объема памяти равна 4 Мбайт. Для управления максимальным объемом памяти, доступным SQL Server 2000, используется хранимая процедура sp_configure 'max server memory', .
Тогда как другая хранимая процедура предназначена для управления минимальным объемом памяти: sp_configure 'min server memory', .
В динамическом режиме SQL Server 2000 старается использовать память таким образом, чтобы операционная система имела в запасе около 5 Мбайт свободной памяти плюс/минус 200 Кбайт. Эта память может понадобиться для запуска других приложений. Если объем свободной памяти в операционной системе уменьшается, то SQL Server 2000 освобождает часть внутренних буферов и кэшпамяти и возвращает память операционной системе. Однако при этом снижается производительность выполнения запросов. Если же в операционной системе имеется более 5 Мбайт свободной памяти, то SQL Server 2000 забирает ее и применяет для кэширования запросов пользователей и буферизации данных. Замечание Если предполагается использовать статическое выделение памяти, и конфигурируемый сервер является выделенным дистрибьютором или издателем-дистрибьютором, то следует добавить 16 Мбайт памяти для поддержки репликации. Если же на сервере установлена поддержка полнотекстового поиска (служба Full-Text Search), то величина максимального объема необходимой SQL Server 2000 памяти должна быть увеличена примерно на 50%. При использовании динамического управления памятью также следует учитывать указанные требования при конфигурировании максимального объема доступной SQL Server 2000 памяти.
Если нужно работать в статическом режиме управления объемом памяти, то необходимо установить переключатель Use a fixed memory size (MB). В этом случае следует указать конкретное количество Мбайт, которое будет отведено SQL Server 2000. Приближение регулятора к левому краю приведет к плохой работе SQL Server 2000, тогда как смещение регулятора к правому краю — к плохой работе операционной системы и других приложений, запускаемых на компьютере.
Глава 8. Конфигурирование служб SQL Server 2000
169
Замечание Установив регуляторы Minimum (MB) и Maximum (MB) (в динамическом режиме управления) в одинаковые положения, можно добиться такого же эффекта, что и заданием статического режима управления памятью. Операционная система Windows NT (а также Windows 2000) всегда старается переместить долго неиспользуемую информацию из оперативной памяти в виртуальную память. В этом случае данные записываются на жесткий диск в файл подкачки (pagefile или swapfile). Это происходит даже в том случае, если в операционной системе имеется достаточный объем свободной оперативной памяти. Когда пользователи долгое время не работали с SQL Server 2000, а затем начали интенсивно к нему обращаться, то потребуется значительное время для восстановления данных SQL Server 2000 из файла подкачки. Чтобы избежать подобной ситуации, необходимо установить флажок Reserve physical memory for SQL Server. Это заставит операционную систему не сохранять данные SQL Server 2000 в виртуальной памяти. Указанным параметром также можно управлять с помощью хранимой процедуры: sp_configure 'set working set size 1 , 0 I 1
Замечание Блокировка оперативной памяти, используемой SQL Server 2000, от сохранения в файл подкачки способна привести к резкому снижению производительности других приложений и операционной системы, т. к. им может остаться слишком мало оперативной памяти, а использовать дополнительную память за счет выгрузки части страниц SQL Server 2000 не удастся. Однако на выделенных серверах баз данных рекомендуется блокировать память, участвующую в работе SQL Server 2000. Последний элемент управления вкладки Memory — это поле Minimum query memory (KB). С помощью данного параметра можно управлять объемом оперативной памяти, выделяемой для выполнения запроса. Значение колеблется от 512 Кбайт до 2 Гбайт. Увеличение объема памяти, выделяемой для выполнения запроса, может привести к более высокой скорости его выполнения. Однако, будьте осторожны — установка слишком большого значения может привести к быстрому исчерпанию свободных ресурсов при одновременной попытке множества пользователей выполнить запрос. Минимальным объемом памяти, выделяемой для выполнения запроса, можно управлять с помощью следующей хранимой процедуры: sp_configure 'min memory per query', .
Вкладка Processor Элементы вкладки Processor (рис. 8.5) позволяют управлять тем, как SQL Server 2000 будет использовать ресурсы центрального процессора и операционной системы.
170
Часть III. Администрирование
SQL Server Properties (Configure) Server Settings ] . Database Settings | Replication General I Memory Processor I Security | Connections
172
Часть ill. Администрирование
собствовать тому, что запросы станут ожидать освобождения потоков. Это снизит производительность системы в целом. Диспетчер управления потоками Windows NT работает в защищенном режиме (protected mode). Однако потоки приложений, в том числе и SQL Server 2000, работают в пользовательском режиме (user mode). Чтобы переключить процессор на выполнение другого потока, операционная система переходит из пользовательского режима в защищенный. Это сравнительно длительная операция, и слишком частое переключение потоков может привести к снижению производительности. Для решения данной проблемы SQL Server 2000 может использовать волокна (fibers). Волокна Windows NT являются подкомпонентами потоков. Управление ими выполняется самим потоком, т. е. для переключения волокон, в отличие от переключения потоков, не требуется переход в защищенный режим. Указанный подход позволяет снизить непроизводительные затраты на выполнение запросов. Каждый поток может иметь множество волокон. Преимущества работы с волокнами станут доступными SQL Server 2000, если установить флажок Use Windows NT fibers. Замечание Опция Use Windows NT fibers недоступна, если SQL Server 2000 работает под управлением операционной системы Windows 98. Это связано с тем, что потоки Windows 98 не используют волокна. С помощью флажка Boost SQL Server priority on Windows NT/2000 можно установить для SQL Server 2000 более высокий приоритет в операционной системе, чем для других процессов. Это приведет к тому, что задачи SQL Server 2000 будут выполняться в первую очередь. Данную опцию рекомендуется устанавливать в том случае, когда SQL Server 2000 установлен на компьютере, выделенном в качестве сервера баз данных. Дело в том, что выполнение дополнительных задач на этом компьютере будет возможно только в периоды простоя SQL Server 2000. Однако необходимо обратить внимание, что также и пользователь не сможет работать с операционной системой, если на SQL Server 2000 выполняются запросы. Установив по неосторожности флажок Boost SQL Server priority on Windows NT/2000 на загруженном сервере, можно лишиться доступа к административным утилитам, в том числе и Enterprise Manager. По умолчанию флажок Boost SQL Server priority on Windows NT/2000 не установлен, и SQL Server 2000 имеет нормальный приоритет. Для управления приоритетом SQL Server 2000 средствами Transact-SQL используется следующая команда: sp_configure 'priority boost1, 0 | 1 Г~
о
\
Глава 8. Конфигурирование служб SQL Server 2000
173_
В группе элементов Parallelism можно управлять количеством процессоров, используемых для выполнения запроса. По умолчанию установлен переключатель Use all available processors. Однако администратор может ограничить количество процессоров, на которых будет выполняться отдельный запрос. Для этого необходимо установить переключатель Use и указать количество процессоров. На нескольких процессорах запрос может выполняться значительно быстрее. Однако не следует полагать, что таким путем всегда можно добиться значительного увеличения производительности. Следует учитывать дополнительные затраты на распараллеливание запроса. Прежде всего, оптимизатор запросов должен построить план выполнения запроса, который сможет эффективно использовать преимущества выполнения на нескольких процессорах. Затем необходимо учесть затраты системы на синхронизацию выполнения запроса. И наконец, некоторые запросы просто не могут обрабатываться на множестве процессоров. Кроме того, нет смысла распараллеливать выполнение небольших запросов, которые весьма успешно выполняются и на одном процессоре. Чтобы более эффективно управлять выполнением запроса на множестве процессоров, администратор может указать цену распараллеливания запроса (parallel execution cost). Цена запроса — это количество секунд, которые по оценкам оптимизатора запросов понадобятся на выполнение запроса. Для получения примерной цены оптимизатор запроса использует статистику (statistics). Замечание Статистика получается при анализе данных таблиц и отражает общие сведения об имеющихся в таблице данных. Статистика ведется и используется сервером автоматически на уровне таблицы. При изменении значительной части таблицы статистика должна обновляться (update). При необходимости статистика может быть обновлена вручную с помощью команды UPDATE
STATISTICS,
ДЛЯ кон-
кретной таблицы или во всей базе данных с помощью хранимой процедуры sp_update_stats. Цена запроса формируется еще до его обработки, что позволяет выстроить более эффективный план выполнения. Указывая цену распараллеливания запроса, администратор тем самым определяет длительность, которую как минимум должен иметь запрос, чтобы быть выполненным на множестве процессоров. Если выполнение запроса длится меньше указанного значения, то эта операция пройдет на одном процессоре. Цена распараллеливания определяется с помощью параметра Minimum query plan threshold for considering queries for parallel execution (cost estimate). По умолчанию установлена цена, равная 5 секундам. Для управления ценой распараллеливания запроса средствами Transact-SQL используется следующая команда: sp_configure ' cost threshold for parallelism',
174
Часть III. Администрирование
Вкладка Security С помощью вкладки Security (рис. 8.6) можно управлять работой системы безопасности SQL Server 2000. 5QL Server Properties (Configure) Server Settings Database Settings Replication General j Memory | Processor Security j Connections г Security
i SQL Server provides authentication based on Windows NT accounts and a named SQL Server login ID and password. Authentication: Г SQL Server and Windows NT/2000 Л] Mail profile: I
jEvgeniy Mamaev
S_ave copies of the sent messages in the "Sent Items" folder
"Error log ГЩ
"
File name:
-~*~—
~~
|F:\SQL2OOO\MSSQL$SQL_SEF I
I View... [
include execution trace messages
Г Write OEM File Net send recipient:
OK
Cancel
Apply
Help
Рис. 8 . 1 1 . Окно SQL Server Agent Properties
Вкладка General Вкладка General (см. рис. 8.11) позволяет управлять общими параметрами работы службы SQLServerAgent. В группе Service startup account можно изменить учетную запись, под которой запускается служба SQLServerAgent. При установке переключателя System account для запуска системы будет использоваться учетная запись локальной системы. Можно запустить сервер под учетной записью пользователя, установив переключатель This account и указав при этом имя учетной записи и ее пароль. Можно запускать службы SQLServerAgent и MSSQLServer как под одной учетной записью, так и под разными.
С
Замечание
Подробно выбор и создание учетных записей, под которыми будут работать службы
SQL Server 2000, рассмотрены в разд. "Подготовка учетных записей" главы 4.
В группе Mail session можно настроить почтовый профиль, используемый для отправки сообщений операторам сервера. В раскрывающемся списке Mail profile необходимо задать один из почтовых профилей, созданных на сервере. Для созда-
Глава 8. Конфигурирование служб SQL Server 2000
187
ния профиля надо зарегистрироваться на локальном сервере под запускающей службу SQLServerAgent учетной записью и настроить параметры электронной почты. Полученный профиль затем необходимо выбрать в списке Mail profile. Для проверки работы почтовых функций следует нажать кнопку Test, которая появляется справа от поля Mail profile при корректных настройках. Если установить флажок Save copies of the sent messages in the "Sent Items" folder, то в папке \Отправленные почтового ящика будут оставаться копии отправленных операторам сообщений. С помощью этих сообщений можно будет восстановить ход событий и порядок извещения операторов о проблемах в работе сервера. В группе элементов Error log производится управление журналом ошибок службы SQLServerAgent. В этот журнал записываются сообщения трех типов: информационные, предупреждающие и сообщения об ошибках. В поле File name указывается имя текстового файла, который будет выступать в качестве журнала ошибок. Для просмотра содержимого файла достаточно нажать кнопку View. По умолчанию в журнале сохраняется лишь общая информация. Если же необходимо иметь детальную информацию, то нужно установить флажок Include execution trace messages. He рекомендуется помечать этот флажок при обычной работе. Запись подробной информации требуется лишь при поиске неисправностей. В обычных условиях установка флажка может привести к заметному снижению производительности при интенсивной работе службы SQLServerAgent. По умолчанию журнал ошибок ведется в стандарте Unicode и на каждый символ отводится два байта. Просматривать такой файл может быть не совсем удобно. Если вы хотите, чтобы для журнала ошибок использовался стандартный формат, необходимо установить флажок Write OEM File. Кроме того, в данном случае файл будет занимать в два раза меньше дискового пространства.
С
Замечание
^
Если работа службы SQLServerAgent не вызывает нареканий, то ведение журнала ошибок можно отключить. Это позволит сэкономить системные ресурсы, которые могут быть использованы для решения более важных задач. Последний параметр вкладки General — поле Net send recipient. Здесь указывается сетевое имя NetBIOS пользователя или машины, которые будут получать всплывающие сообщения (pop-up messages) службы SQLServerAgent. Для отправки этих сообщений предназначен стандартный механизм Windows NT — команда NET SEND.
Вкладка Advanced Вкладка Advanced (рис. 8.12) служит для управления автоматическим запуском службы, определением режима простоя сервера и управления перенаправлением сообщений.
Часть III. Администрирование
188 SQL Server Agent Properties General Advanced | Alert System ] Job System) Connection) -Restart services * Auto restart SQL Server if it stops unexpectedly Auto restart SQL Server Agent if it stops unexpectedly SQL Server event forwarding JUJ P Eorward events to a different server y Server: JCIT Events:
Cancel
Рис. 10.8. Пятое окно мастера Register SQL Server Wizard 2<J
Register SQL Server Wizard Completing the Register SQL Server Wizard
The SQL Server(s) you are registering is shown below. It may take several minutes for the wizard to connect and verify that the server exists and the connection information is valid.
LIT