1 SQL Server: общий обзор | 1 |
|
|
Введение | 2 |
Версии SQL Server | 2 |
SQL Server 4.9.2 | 3 |
SQL Server System 10 | 3 |
SQL Server System 11 | 3 |
Microsoft SQL Server 4.2 и 6.0 | 4 |
Будущие версии SQLServer | 4 |
Основные концепции РСУБД | 5 |
Реляционные базы данных | 5 |
Язык структурированных запросов SQL | 5 |
Объекты баз данных | 6 |
Значения NULL | 7 |
Транзакции | 8 |
Восстановление после сбоев | 8 |
Блокировка | 9 |
Многопользовательская среда | 10 |
Концепции РСУБД и SQL Server 4.9.2 | 10 |
Сервер | 10 |
Базы данных | 20 |
Сопровождение сервера | 23 |
Масштабируемость | 36 |
Производительность | 40 |
Тиражирование данных | 44 |
SQL Server System 10 | 45 |
Сервер архивации (Backup Server) | 45 |
Совместимость с предыдущими версиями | 46 |
Пользовательские роли | 46 |
Новые системные базы данных | 47 |
Обеспечение безопасности | 47 |
SQL Server System 11 | 47 |
Многопроцессорные конфигурации | 48 |
Именованные кэш-буферы | 48 |
Настройка размеров блоков ввода-вывода | 48 |
Журнал транзакций | 48 |
Сегментированные таблицы | 50 |
Мониторинг и настройка сервера | 50 |
Совместимость с предыдущими версиями | 50 |
Будущие версии SQL Server | 51 |
Масштабируемость | 51 |
Производительность | 51 |
Поддержание работоспособности | 51 |
Поддержка принятия решений | 51 |
Распределённые базы данных | 52 |
Домыслы и рассуждения | 52 |
Заключение | 52 |
Возьмите на заметку | 52 |
|
2 Преимущества System 11 | 53 |
|
|
Достоинства System 11 | 54 |
Масштабируемость | 54 |
Именованные кэш-буферы данных | 54 |
Конфигурирование сервера | 54 |
Администрирование сервера | 54 |
Стоит ли торопиться? | 54 |
Новые возможности System 11 | 55 |
Возможности, так и не появившиеся в System 11 | 56 |
Заключение | 56 |
|
3 Масштабируемость System 11 | 57 |
|
|
Множественные сетевые ядра (MNE) System 11 | 58 |
Поисковые ядра SQL Server | 58 |
System 11 и сетевой ввод-вывод | 59 |
Сеансы работы пользователей и серверные ядра | 60 |
Оптимальное количество серверных ядер | 60 |
Диспетчеризация ядер в SQL Server | 61 |
Сервер на однопроцессорных вычислительных платформах | 61 |
Журнал транзакций System 11 | 61 |
Пользовательские кэш-буферы журнала повтора | 61 |
Буферная область журнала повтора | 63 |
Старейшая незавершённая транзакция | 63 |
Особенности работы с журналами повтора | 64 |
Формат команд работы с ULC-буфером и примеры их использования | 64 |
Управление блокировками в System 11 | 69 |
«Грязное чтение» | 69 |
Конфигурация режима повышения уровня изолированности | 70 |
Диспетчер параллельных блокировок | 70 |
|
4 Именованные кэш-буферы System 11 | 71 |
|
|
Именованные кэш-буферы данных и диспетчер буфера | 72 |
Введение 72 |
Использование кэш-буфера данных в прежних версиях SQLServer | 72 |
Именованный кэш-буфер | 74 |
Область буфера, используемая по умолчанию |
(общий кэш-буфер данных) | 75 |
Связи объектов данных с именованными буферами | 76 |
Хеш-таблицы | 76 |
Команды создания, удаления и модификации именованных |
кэш-буферов | 77 |
Использование именованных буферов | 79 |
Выбор объектов, связываемых с именованными буферами данных | 80 |
Формат команд работы с именованными буферами данных |
и примеры их использования | 80 |
Диспетчер кэш-буфера и большие блоки ввода-вывода | 80 |
Буферные области | 80 |
В каких ситуациях следует использовать большие |
блоки ввода-вывода? | 82 |
Создание буферных областей с большими блоками ввода-вывода | 83 |
Особенности внутренней организации буферных областей | 84 |
Использование больших блоков ввода-вывода | 84 |
Формат команд работы с буферными областями |
и примеры их использования | 85 |
Оптимизация запросов и диспетчер кэш-буфера System 11 | 98 |
Введение | 98 |
Упреждающее считывание в кэш-буфер | 98 |
Счтывание в буфер с немедленным удалением | 98 |
Оптимизация запросов и стратегия использования кэш-буфера | 99 |
Стратегии использования кэш-буфера — теория и практика | 100 |
Другие методы улучшения оптимизации запросов | 100 |
|
5 Настройка конфигурации SQL Server System 11 | 101 |
|
|
Конфигурационный файл | 102 |
Преимущества использования конфигурационных файлов | 104 |
Конфигурационные файлы и восстановление сервера после сбоев | 105 |
Использование конфигурационных файлов | 105 |
Конфигурационные файлы и именованные кэш-буферы | 106 |
Структура конфигурационного файла | 106 |
Сообщения об ошибках в конфигурационном файле при запуске сервера | 108 |
Процедура SP_CONFIGURE | 111 |
Использование sp_configure в предыдущих версиях сервера | 111 |
Необходимые полномочия | 113 |
Формат команды sp_configure | 113 |
Сообщения об ошибках при чтении конфигурационного файла | 114 |
Подкоманда read: осторожно! | 115 |
Структура вывода команды sp_configure | 115 |
Вывод sp_configure | 116 |
Подкоманды read и verify команды sp_configure | 124 |
Выводимые значения параметров | 124 |
Совместимость с предыдущими версиями | 125 |
Процедура sp_configure и выдача сообщений в журнал |
регистрации ошибок | 125 |
Процедура sp_configure и выдача сообщений в журнал |
регистрации ошибок при работе с конфигурационными файлами | 125 |
Заключение: общие рекомендации по конфигурированию сервера | 128 |
|
6 Администрирование SQL Server System 11 | 129 |
|
|
Дампы баз данных | 130 |
Загрузка дампов баз данных версии System 10 | 130 |
Автономное и оперативное состояние баз данных | 131 |
Формат команд, вызывающих переключение базы данных между |
автономным и оперативным режимом, и примеры их использования | 133 |
Процедура SP_SYSMON | 136 |
Введение | 136 |
Общий обзор | 136 |
Системные таблицы | 136 |
sysattributes | 136 |
syspartitions | 137 |
syslogshold | 137 |
Сегментирование таблиц 137 |
Сегментирование таблиц: детали | 138 |
Когда используется сегментирование таблиц | 138 |
Создание сегментированной таблицы | 138 |
Ограничения | 139 |
Практическое использование | 139 |
|
7 Системные базы данных SQL Server | 141 |
|
|
Системные базы данных | 142 |
База данных sybsystemprocs | 142 |
База данных sybsecurity | 142 |
База данных master | 143 |
База данных master и серверное устройство master | 143 |
Выбор размера серверного устройства master | 143 |
Сегмент журнала транзакций (logsegment) базы данных master | 144 |
Зеркальное отображение устройства master и его название | 144 |
Команда disk init и серверное устройство master | 145 |
Устройство master и серверные устройства, используемые по умолчанию | 146 |
Загрузка дампа базы данных master | 147 |
Перенос устройства master в раздел диска большего размера | 147 |
Очистка содержащейся в базе данных master информации о конфигурации |
сервера | 148 |
Системные базы данных и серверные устройства | 150 |
Зеркальное отображение системных баз данных | 150 |
|
8 Внутренняя организация сервера | 151 |
|
|
Введение | 152 |
Особенности различных версий SQL Server | 152 |
SQL Server 4.9.2 | 152 |
SQL Server System 10 | 152 |
SQL Server System 11 | 153 |
Обзор процесса установки сервера | 153 |
Нумерация портов серверной машины | 153 |
Названия серверных устройств | 154 |
Дисковые накопители | 154 |
Стандартная схема разбиения дисков | 155 |
Дисковые разделы в операционных системах компьютеров фирмы Sun | 156 |
Разбиение дисков различного размера | 157 |
Форматированные и неформатированные разделы дисков | 157 |
Логические дисковые устройства SQL Server | 158 |
Разбиение дисков на разделы | 158 |
Контроллеры дисков | 163 |
Распределение компонентов баз данных по дискам и дисковым |
контроллерам | 166 |
Журнал транзакций | 166 |
Размещение нескольких баз данных на одном сервере | 167 |
Размещение системных баз данных | 168 |
Инициализация серверных устройств | 169 |
Сегменты баз данных | 175 |
Зачем требуются сегменты | 175 |
Сегмент журнала транзакций | 175 |
Большие объекты должны помещаться в отдельном сегменте | 176 |
Сегменты и команда сервера create database | 176 |
Сегменты и команда сервера alter database | 177 |
Создание сегмента, определённого пользователем | 178 |
Сегменты и планирование ёмкости устройств | 179 |
Расширение пространства пользовательского сегмента | 181 |
Заключительные замечания по сегментам баз данных | 181 |
Размещение журналов транзакций | 183 |
Размещение журнала транзакций на отдельном серверном устройстве | 183 |
Совместное размещение журнала транзакций с другими сегментами |
базы данных | 183 |
Определение оптимального размера журнала транзакций | 184 |
Зеркальное резервирование серверных устройств | 187 |
Расширение баз данных, находящихся на зеркальных устройствах | 200 |
При зеркальном резервировании отображаются устройства, |
а не отдельные базы данных | 200 |
Выбор конфигурации устройств и сегментов сервера | 202 |
Почему не следует торопиться расширять пространство базы данных | 204 |
Заключение | 205 |
|
9 Восстановление сервера после сбоев | 207 |
|
|
Введение | 208 |
Особенности различных версий SQL Server | 208 |
SQL Server 4.9.2 | 208 |
SQL Server System 10 | 209 |
SQL Server System 11 | 209 |
Выбор стратегии защиты от сбоев зависит от стоимости простоя сервера | 209 |
Отсутствие журнала транзакций — отсутствие базы данных | 210 |
Восстановление баз данных производится с точностью до отдельной |
транзакции | 218 |
Использование резервного сервера | 218 |
В базе данных master нет места пользователям! | 223 |
Использование команды dbcc | 223 |
Зеркальное резервирование данных | 228 |
Архивация данных 229 |
Чем больше серверных устройств, тем лучше | 229 |
Общие рекомендации по восстановлению сервера | 230 |
Сервер архивации (Backup Server) | 231 |
Дампы баз данных | 232 |
Дампы журналов транзакций | 234 |
Логические дампы и программа SQL BackTrack компании DataTools | 235 |
Типы сбоев и порядок восстановления сервера | 238 |
|
10 Производительность сервера и его настройка | 243 |
|
|
Введение | 244 |
Особенности различных версий SQL Server | 244 |
SQL Server 4.9.2 | 244 |
SQL Server System 10 | 244 |
SQL Server System 11 | 244 |
Работа с процедурой sp_sysmon | 244 |
Подробнее о работе с sp_sysmon | 245 |
Основные компоненты выдачи sp_sysmon | 246 |
Загрузка ядра сервера (Kernel Utilization) | 247 |
Управление задачами (Task Management) | 248 |
Управление транзакциями (Transaction Management) | 248 |
Управление блокировками (Lock Management) | 249 |
Управление кэш-буфером данных (Data Cache Management) | 249 |
Управление кэш-буфером процедур (Procedure Cache Management) | 251 |
Управление контрольными точками (Recovery Management) | 251 |
Управление дисковым вводом-выводом (Disk I/O Management) | 251 |
Выдача sp_sysmon | 252 |
Рекомендации по конфигурированию кэш-буферов | 258 |
Не злоупотребляйте теорией | 259 |
Некоторые практические рекомендации | 260 |
Индексы и запросы | 262 |
Распределение сегментов баз данных по серверным устройствам | 264 |
Распределение таблицы по нескольким устройствам | 265 |
Архивация данных | 265 |
Сервер поддержки принятия решений | 267 |
Стандартный набор тестовых транзакций | 269 |
SQL Monitor | 270 |
Встроенные средства анализа производительности SQL Server | 272 |
Настройка сервера независимо от приложений | 274 |
Сокращение периодов недоступности сервера | 276 |
|
11 Планирование конфигурации SQL Server | 277 |
|
|
Введение | 278 |
Особенности различных версий SQL Server | 278 |
Информационная система в целом | 278 |
Отдельный сервер баз данных | 281 |
Реальный пример: информационная система в целом | 286 |
Реальный пример: отдельный сервер баз данных | 291 |
Планирование конфигурации глобальной информационной системы | 295 |
|
12 Эксплуатация SQL Server | 297 |
|
|
Введение | 298 |
Особенности различных версий SQL Server | 298 |
SQL Server 4.9.2 | 298 |
SQL Server System 10 | 298 |
SQLServer System 11 | 298 |
Пороги | 298 |
Файл интерфейсов | 301 |
Преобразование файла интерфейсов SunOS в формат системы Solaris | 304 |
Файл интерфейсов в формате Solaris | 304 |
Преобразование строки файла интерфейсов Solaris в формат SunOS | 305 |
Преобразование строки файла интерфейсов SunOS в формат Solaris | 305 |
Файл интерфейсов в формате SunOS | 305 |
Сетевое взаимодействие серверов | 306 |
Преобразование командных файлов SQL и выдачи утилиты defncopy |
в хранимые процедуры | 308 |
Системная таблица sysusages | 308 |
Состав объектов сегмента базы данных | 313 |
Журнал регистрации ошибок | 314 |
Создание новых баз данных и эксплуатация сервера | 322 |
Модификация системных таблиц SQL Server вручную | 322 |
Команда bcp | 323 |
Свободное пространство базы данных | 323 |
Ошибка 1105: переполнение журнала транзакций или другого сегмента |
базы данных | 324 |
|
13 Установка и обновление SQL Server | 329 |
|
|
Введение | 330 |
Особенности различных версий SQL Server | 330 |
SQL Server 4.9.2 | 330 |
SQL Server System 10 | 330 |
SQL Server System 11 | 330 |
Установка SQL Server | 330 |
Подготовка к установке сервера | 331 |
Установка SQL Server System 11 | 338 |
Установка SQL Server System 10 | 342 |
Установка SQL Server 4.9.2 | 342 |
Основные операции после установки сервера | 343 |
Обновление SQL Server: общий обзор | 348 |
Введение | 348 |
Особенности различных версий SQL Server | 348 |
Руководство по установке, перечень особенностей текущей версии |
сервера и сопроводительное письмо к очередной EBF-версии | 349 |
Служба технической поддержки компании Sybase | 349 |
Возможные риски при переходе на новую версию | 350 |
Обновление EBF-версии | 350 |
Переход на новую главную версию SQL Server | 351 |
Подготовка перехода с SQL Server 4.9.2 на System 11 |
(либо System 10) | 352 |
Обновление SQL Server 4.9.2 на System 11 (либо System 10) | 356 |
Основные операции после перехода от SQL Server 4.9.2 |
к System 11 (или System 10) | 359 |
Возврат к SQL Server 4.9.2 после его неудачного обновления |
на System 10 или 11 | 363 |
Обновление SQL Server 4.9.2 на сервер System 10 | 365 |
Полное обновление SQL Server System 10 до версии System 11 | 365 |
Обновление SQL Server System 10 до System 11 путём загрузки |
дампов баз данных System 10 | 366 |
|
14 Командные файлы | 367 |
|
|
Командные файлы общего назначения | 368 |
Особенности различных версий SQL Server | 368 |
SQL Server 4.9.2 | 368 |
SQL Server System 10 | 369 |
SQL Server System 11 | 369 |
Выдача дампов журналов транзакций баз данных (dumplog) | 369 |
Запись нескольких дампов баз данных SQL Server 4.9.2 |
на одну ленту (dumpdb_492) | 372 |
Внимание! | 372 |
Загрузка дампов баз данных в SQL Server 4.9.2 (loaddb_492) | 374 |
Обновление статистики оптимизатора по всем таблицам сервера |
(update_statistics_all_tables) | 377 |
Построение командного файла создания баз данных (dump_db_create) | 380 |
Выполнение dbcc-проверок (checkdb) | 381 |
Выдача содержимого системных таблиц (dump_systables) | 382 |
Хранимая процедура, генерирующая командный файл создания |
базы данных (p_dbcreate) | 384 |
Проверка состояния зеркальных пар устройств |
(хранимая процедура p_mirror) | 386 |
Проверка использования дискового пространства серверного устройства |
(хранимая процедура p_devspace) | 386 |
Построение списка всех сегментов баз данных, находящихся |
на всех устройствах сервера (хранимая процедура p_servermap) | 388 |
Выдача дампов баз данных (dumpdb) | 390 |
Загрузка баз данных (loaddb) | 393 |
Отслеживание хода загрузки дампа базы данных |
(хранимая процедура p_dbload) | 393 |
Командный файл запуска сервера | 394 |
Командные файлы эксплуатации SQL Server System 11 | 395 |
Дампы баз данных System 11 (dump_listof_dbs) | 395 |
Выдача дампов журналов транзакций (logdump_listof_dbs) | 398 |
Принудительная очистка журнала транзакций (trunclog_listof_dbs) | 401 |
Удаление старых файлов (remove_old_files) | 404 |
Обновление статистики оптимизатора (update_listof_dbs) | 406 |
Выполнение dbcc-проверок (dbcc_listof_dbs) | 408 |
Поиск сообщений об ошибках в журнале регистрации |
ошибок SQL Server (scan_errorlog) | 412 |
Выдача конфигурации сервера (dump_server_config) | 413 |
Контроль активности пользователей (monitor_report) | 416 |
Запуск процедуры sp_sysmоn(execute_sp_sysmon) | 417 |
Автоматический перезапуск сервера | 419 |
Строки описания командных файлов в таблице crontab | 419 |