Слайд 1Технологии повышенной доступности в SQL Server 2005
Андрей Синкин
Системный инженер
Microsoft Corporation
Слайд 2Основные задачи
Понять суть новых технологий повышенного доступа в SQL Server 2005:
Database Mirroring
Database Snapshots
Понять различие между технологиями повышенного доступа в SQL Server 2005
Два отказоустойчивых решения
Database Mirroring / Failover Clusters
Два более простых решения
Log Shipping / Replication
Слайд 3Доступность информации и
SQL Server 2005
Доступность данных и требования бизнеса
Доступность данных
это одно из основных требований бизнеса в IT-организациях
Есть много барьеров для доступности данных
Мы сосредоточимся на сбоях/разрушениях базы данных
Мы не будем рассматривать другие проблемы доступности
Например: параллелизм, регламентные работы, масштабирование и т.д.
Доступность имеет множество граней
Люди
Процесс
Технология
Аппаратное обеспечение
Программное обеспечение
Слайд 4Автоматическая отказоустойчивость и отсутствие возможности утраты данных
Database Mirroring
Failover Clustering
Ручная отказоустойчивость и
потенциальная возможность потери данных
Репликация транзакций
Log Shipping
Отсутствие отказоустойчивости и потенциальная возможность потери данных
Backup / Restore
Detach / Copy / Attach
Повыш.доступность
Технологии доступности информации в SQL Server 2005
Слайд 5
Database Mirroring
SQL Server 2005
Резервный экземпляр
Отказоустойчивый сервер
Компоновочный блок для сложных топологий
Отказоустойчивая
БД
Очень быстрая
Отсутствие возможности потери данных
Аппаратное обеспечение
Работает на стандартных компьютерах, хранилище и сетевом окружении
Хранилище неразделяемое
Слайд 6Горячий резерв
Построен на Microsoft Cluster Services (MSCS)
Доступность обеспечивают множество узлов, причем
прозрачно для клиента
Автоматическое обнаружение и восстановление сбоя
Требует сертифицированного аппаратного обеспечения
Поддержка разных сценариев: Active/Active, N+1, N+I
Отсутствие потери данных, отсутствие влияния на пропускную способность
Одна копия баз данных
Отказоустойчивый экземпляр – целый экземпляр работает как единый модуль
Failover Clustering
Microsoft Cluster Services
Слайд 7Log Shipping
Теплый резерв
Основная идея: архивирование, копирование и восстановление лога на другом
сервере
Не требует дополнительных вложений в скриптование
Уровень базы данных
База данных доступна в режиме только для чтения
Для обработки следующей порции лога пользователи должны отключаться
Слайд 8Репликация
Теплый резерв
Как правило используется когда доступность требуется в сочетании с возможностью
чтения информации с разных серверов
Возможность отказоустойчивости; требуется собственное решение
Нет ограничения на использование всей БД – можно определить подмножество исходной БД или таблицы для копирования
Копия базы данных постоянно доступна в режиме чтения
Задержка между источником и копией может идти на секунды
Логическая технология
Слайд 9Решения для offline
Холодный резерв
Оба обеспечивают
Ручное определение и восстановление после сбоя
Потенциальная потеря
части работы
Уровень базы данных
Стандартные серверы
Ограниченная возможность запуска отчетов на резервном сервере
Дубликат базы данных
Клиент должен знать куда переподключаться
Медленное восстановление – больше времени простоя
Backup / Restore
Меньший размер – копируются только измененные страницы
Log backups allow restore to point in time
Большее время восстановления
Detach / Copy / Attach
Копирование файлов БД целиком
Нет возможности накатывать последующие логи
Слайд 10Отказоустойчивые решения
Два решения уровня предприятия
Выбор зависит от
Стратегического развития информационных технологий
Бюджета
Различия между технологиями
Слайд 11Database Mirroring
(зеркалирование базы данных)
Слайд 12Database Mirroring
Основные достоинства
Восстановление менее 3 секунд
Полноценный резерв
Два отдельных сервера
Две отдельных копии
данных
Взаимодействие между серверами через стандартное сетевое соединение
Нет специальных требований на аппаратное обеспечение
Самоконтроль
Высокая доступность для базы данных
Слайд 14Система Database Mirroring
База данных - часть системы Database Mirroring
Она может управляться
любым из серверов
Резервный сервер всегда имеет актуальные данные
Переключение ролей
Ручное
Автоматическое
Клиент перенаправляется на резервный сервер сервер после сбоя
Резервный сервер может служить сервером отчетов с помощью технологии Database Snapshots
Слайд 15Основная конфигурация
Три различных серверных роли
Principal (Основной сервер)
Принимает подключения клиентов
Позволяет обновлять
базу данных
Mirror (Зеркало) (Резервный экземпляр)
Клиенты не имеют к нему доступа
Изменения данных копируются в лог на резервном сервере после чего меняются данные в самой БД
Может меняться ролями с Principal и становиться новым Principal
Witness (Свидетель)
Отслеживает состояние двух серверов
Позволяет автоматическое восстановление
Слайд 16
Database Mirroring
Mirror
Principal
Клиенты
Записи лога
Witness
Слайд 17Основные принципы зеркалирования
Фиксация
Запись в логический лог
Передача на резервный сервер
Запись в удаленный
лог
Log
Подтверждение
Фиксация в логе
Непрерывное выполнение на резервном сервере
Подтверждение
DB
DB
Log
Слайд 18Состояния Database Mirroring
База данных:
SYNCHRONIZED
Зеркало имеет все данные
SYNCHRONIZING
Зеркало находится в процессе синхронизации
SUSPENDED
Процесс
передачи лога на зеркало приостановлен
DISCONNECTED
Сервер не общается с другими серверами
Незащищенные состояния = SYNCHRONIZING или SUSPENDED или DISCONNECTED
Слайд 19Database Mirroring
Основной сервер записывает информацию в свой лог и одновременно передает
эти данные по сети
Сервер не ждет у себя фиксации изменений, а передает записи лога сразу же
Транзакции не фиксируются пока резервный сервер записывает данные в свой лог
В данный момент данные расположены в двух разных местах
При восстановлении данные не теряются
Восстановление автоматическое или ручное
Слайд 20Менее 3 секунд на восстановление
Резервный сервер накатывает лог по месту
БД доступна
в момент операции Undo
Новая возможность в SQL Server 2005
В случае сбоя:
БД была восстановлена на другом сервере
Обработаны все архивы лога, включая последний
Восстановление произошло
База данных готова к работе
Database Mirroring
Слайд 21Восстановление
Crash Recovery
Анализ
Database
Cache
Empty
Redo
Undo / Do
HOT
Database:
Недоступна
Доступна
Время
Слайд 22
Redo
Undo / Do
База данных доступна на сервере B
Do
Сервер A:
Сервер B:
Отказоустойчивость
Database
Cache
Empty
HOT
Empty
HOT
База данных
доступна на сервере A
Database
Cache
Слайд 23Свидетель и Кворум
Ключевая роль Witness состоит в обеспечении автоматического переключения
Для безболезненной
потери одного из серверов нужно иметь полный кворум
Предотвращает “разделение мозгов”
Потеря соединения означает проблемы с сервером-партнером или же проблему с сетью?
Для того чтобы стать основным сервером, сервер должен “видеть” хотя бы один сервер из кворума
Слайд 24Witness
продолжение
Witness - это экземпляр SQL Server
Один свидетель может обрабатывать множество сессий
Использует
очень мало ресурсов
Отвечает на запрос проверки связи (ping)
Отвечает на вопрос “Жив ли другой сервер?”
Не единственная реакция на сбой
Партнеры могут формировать кворум самостоятельно
Слайд 25Надежность / Производительность
Есть выбор между более высокой производительностью и более высокой
надежностью
Database Mirroring имеет два уровня надежности
FULL – фиксация при записи лога на Mirror
Допускает автоматическое восстановление
Нет потери данных
OFF – фиксация при записи лога на Principal
Слайд 26Уровни надежности
FULL
Фиксация
Запись в локальный лог
Передача на резервный сервер
Запись в удаленный лог
Log
Подтверждение
Фиксация
Слайд 27Уровни надежности
OFF
Фиксация
Запись в локальный лог
Передача на резервный сервер
Запись в удаленный лог
Log
Подтверждение
Фиксация
Слайд 28Два сценария
Высокая доступность
Полная надежность (FULL)
Автоматическое восстановление
База данных доступна для работы даже
при потере одного из серверов
Высокая производительность
Полная надежность установлена в OFF
DBA контролирует отказоустойчивость
Небольшая потеря данных
Disaster recovery scenario
Слайд 29
Автоматическое восстановление
Сервер A
Сервер B
Principal
Mirror
SYNCHRONIZED
SYNCHRONIZING
SUSPENDED
Principal
Mirror
Mirroring:
Witness
Слайд 30Безопасность
На уровне сервера
Для контроля доступа используются конечные точки (Endpoints)
Системный администратор выбирает
серверы между которыми будут доверительные отношения
NT логины в доменах с доверительными отношениями
Сертификаты в доменах с недоверительными отношениями
Системный администратор дает этим серверам разрешение на участие в Database Mirroring
Это должно быть сделано на всех трех серверах
На протяжении всего времени соединения серверы находятся в доверительных отношениях
Слайд 31Безопасность
На уровне базы данных
Как только будут установлены разрешения на системном уровне,
все пользовательские базы данных на партнерских серверах могут быть зеркалированы
Владелец БД может устанавливать, конфигурировать и администрировать сессии зеркалирования
Для каждой сессии канал взаимодействия может быть зашифрован
Слайд 32Database Snapshots
(моментальные снимки БД)
Слайд 33Пользовательские ошибки
Пользователи, приложения, а также DBA могут время от времени делать
ошибки
Database Snapshots решают эту проблему, позволяя откатывать базу данных на момент создания снимка
Данные теряются как только БД откатывается назад на определенный момент времени
Должны быть созданы перед возникновением ошибки
Слайд 34Snapshots (моментальные снимки)
Общие понятия
Снимок БД на определенный момент времени
Создается на том
же самом экземпляре сервера БД
Доступен только для чтения
Основная БД продолжает изменяться
Снимок не ограничивает основную БД
Снимок требует уникального имени
Для исправления ошибок производится откат на заранее созданный снимок
Слайд 35Snapshot
Технология
Большая эффективность использования места
Не требуется полная копия данных
Неизмененные страницы БД находятся
в совместном доступе
Требуется дополнительное место только для измененных страниц
Используется механизм “копирование при записи”
Снимок оказывает влияние на производительность основной БД
Слайд 36
Используемое место
Команда
Create Northwind_SS
Northwind
Northwind_SS
Update Northwind
0%
Read Northwind_SS
12.5%
Результат:
Snapshot (Копирование в момент записи)
D
D
Слайд 37Snapshots (снимки)
Database Mirroring
На резервном сервере можно создавать множество снимков
Каждый снимок создается
на определенный момент времени
Каждый снимок имеет свое собственное имя
Снимки на резервном сервере могут оказывать влияние на производительность основного сервера
Снимки могут существовать очень долго
Ограничены только доступными ресурсами
Слайд 38Отчеты на резервном сервере
Использование снимков базы данных на резервном сервере
Mirror
Principal
Клиенты запускающие
отчеты
Database Mirroring
OLTP Клиенты
Snapshot
@ Noon
Witness
Snapshot2
@ 2PM
Слайд 39Отчеты на резервном сервере
Ограничения
Схема снимка неизменна
Снимок статичен
Новые данные недоступны
Снимки могут влиять
на производительность
Альтернатива - репликация для выделенного решения сервера отчетов с горизонтальным масштабированием
Слайд 40Перенаправление запросов клиентов
Перенаправление прозрачно
Приложения перенаправляются на нужный сервер
На сбой, приложение должно
инициировать перенаправление:
Текущая информация о состоянии потеряна
Приложению перенаправление не важно
В строке соединения должна быть информация сервер/база данных
Слайд 41Перенаправление клиентов
Если база данных использует зеркалирование, то загружаются имена серверов
Клиент хранит
информацию в памяти
При сбое идет подключение к резервному серверу
MDAC использует резервный сервер
Слайд 45Полезные ресурсы
SQL Server 2005 Books Online
Официальная страница
http://www.microsoft.com/sql/2005
SQL Server 2005 на MSDN
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/sqlserver.asp
Российское
сообщество по SQL Server
http://www.sql.ru/
Слайд 46© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational
purposes only. Microsoft makes no warranties, express or implied, in this summary.