Технологии повышенной доступности в SQL Server 2005 Андрей Синкин

advertisement
Технологии повышенной
доступности в SQL Server
2005
Андрей Синкин
Системный инженер
Microsoft Corporation
Основные задачи
Понять суть новых технологий
повышенного доступа в SQL Server 2005:
Database Mirroring
Database Snapshots
Понять различие между технологиями
повышенного доступа в SQL Server 2005
Два отказоустойчивых решения
Database Mirroring / Failover Clusters
Два более простых решения
Log Shipping / Replication
Доступность информации и
SQL Server 2005
Доступность данных и требования бизнеса
Доступность данных это одно из основных требований
бизнеса в IT-организациях
Есть много барьеров для доступности данных
Мы сосредоточимся на сбоях/разрушениях базы данных
Мы не будем рассматривать другие проблемы доступности
Например: параллелизм, регламентные работы,
масштабирование и т.д.
Доступность имеет множество граней
Люди
Процесс
Технология
Аппаратное обеспечение
Программное обеспечение
Технологии доступности
информации в SQL Server 2005
Автоматическая отказоустойчивость и
отсутствие возможности утраты данных
•
•
Database Mirroring
Failover Clustering
Повыш.доступность
Ручная отказоустойчивость и потенциальная
возможность потери данных
•
•
Репликация транзакций
Log Shipping
Отсутствие отказоустойчивости и
потенциальная возможность потери данных
•
•
Backup / Restore
Detach / Copy / Attach
Database Mirroring
Database Mirroring
SQL Server 2005
Резервный экземпляр
Отказоустойчивый сервер
• Компоновочный блок для сложных топологий
Отказоустойчивая БД
• Очень быстрая
• Отсутствие возможности потери данных
Аппаратное обеспечение
• Работает на стандартных компьютерах,
хранилище и сетевом окружении
• Хранилище неразделяемое
Failover Cluster
Failover Clustering
Microsoft Cluster Services
• Горячий резерв
• Построен на Microsoft Cluster Services
(MSCS)
Доступность обеспечивают множество узлов, причем прозрачно
для клиента
Автоматическое обнаружение и восстановление сбоя
Требует сертифицированного аппаратного обеспечения
Поддержка разных сценариев: Active/Active, N+1, N+I
• Отсутствие потери данных, отсутствие влияния на
пропускную способность
• Одна копия баз данных
• Отказоустойчивый экземпляр – целый
экземпляр работает как единый модуль
Log Shipping
Теплый резерв
•
•
•
•
•
Основная идея: архивирование,
копирование и восстановление
лога на другом сервере
Не требует дополнительных
вложений в скриптование
Уровень базы данных
База данных доступна в режиме
только для чтения
Для обработки следующей
порции лога пользователи
должны отключаться
Log Shipping
Репликация
Теплый резерв
Как правило используется когда
доступность требуется в сочетании с
возможностью чтения информации с
разных серверов
Возможность отказоустойчивости;
требуется собственное решение
Нет ограничения на использование
всей БД – можно определить
подмножество исходной БД или
таблицы для копирования
Копия базы данных постоянно
доступна в режиме чтения
Задержка между источником и
копией может идти на секунды
Логическая технология
Репликация
Решения для offline
Холодный резерв
Backup / Restore
Оба обеспечивают
•
•
•
•
•
•
•
•
Ручное определение и восстановление после сбоя
Потенциальная потеря части работы
Уровень базы данных
Стандартные серверы
Ограниченная возможность запуска отчетов на
резервном сервере
Дубликат базы данных
Клиент должен знать куда переподключаться
Медленное восстановление – больше времени простоя
Backup / Restore
•
•
•
Меньший размер – копируются только измененные
страницы
Log backups allow restore to point in time
Большее время восстановления
Detach / Copy / Attach
•
•
Копирование файлов БД целиком
Нет возможности накатывать последующие логи
Detach / Copy / Attach
Отказоустойчивые решения
Два решения уровня предприятия
Выбор зависит от
Стратегического развития информационных технологий
Бюджета
Различия между технологиями
Failover Cluster
Database Mirroring
Database Mirroring
(зеркалирование базы данных)
Database Mirroring
Основные достоинства
Восстановление менее 3 секунд
Полноценный резерв
Два отдельных сервера
Две отдельных копии данных
Взаимодействие между серверами через
стандартное сетевое соединение
Нет специальных требований на
аппаратное обеспечение
Самоконтроль
Высокая доступность для базы данных
Database Mirroring
Клиенты
Система Database Mirroring
База данных - часть системы Database
Mirroring
Она может управляться любым из серверов
Резервный сервер всегда имеет актуальные
данные
Переключение ролей
Ручное
Автоматическое
Клиент перенаправляется на резервный
сервер сервер после сбоя
Резервный сервер может служить сервером
отчетов с помощью технологии Database
Snapshots
Основная конфигурация
Три различных серверных роли
Principal (Основной сервер)
Принимает подключения клиентов
Позволяет обновлять базу данных
Mirror (Зеркало) (Резервный экземпляр)
Клиенты не имеют к нему доступа
Изменения данных копируются в лог на резервном
сервере после чего меняются данные в самой БД
Может меняться ролями с Principal и становиться
новым Principal
Witness (Свидетель)
Отслеживает состояние двух серверов
Позволяет автоматическое восстановление
Database Mirroring
Клиенты
Witness
Записи
лога
Principal
Mirror
Основные принципы зеркалирования
Подтверждение
Подтверждение
Фиксация
Передача на резервный
сервер
Запись в
логический
лог
DB
Непрерывное
выполнение
на резервном
сервере
Фиксация
в логе
Log
Запись в
удаленный
лог
Log
DB
Состояния Database Mirroring
База данных:
SYNCHRONIZED
Зеркало имеет все данные
SYNCHRONIZING
Зеркало находится в процессе синхронизации
SUSPENDED
Процесс передачи лога на зеркало приостановлен
DISCONNECTED
Сервер не общается с другими серверами
Незащищенные состояния =
SYNCHRONIZING или SUSPENDED или
DISCONNECTED
Database Mirroring
Основной сервер записывает информацию в
свой лог и одновременно передает эти данные
по сети
Сервер не ждет у себя фиксации изменений, а
передает записи лога сразу же
Транзакции не фиксируются пока резервный
сервер записывает данные в свой лог
В данный момент данные расположены в двух
разных местах
При восстановлении данные не теряются
Восстановление автоматическое или ручное
Database Mirroring
Менее 3 секунд на восстановление
Резервный сервер накатывает лог по месту
БД доступна в момент операции Undo
Новая возможность в SQL Server 2005
В случае сбоя:
БД была восстановлена на другом сервере
Обработаны все архивы лога, включая
последний
Восстановление произошло
База данных готова к работе
Восстановление
Crash Recovery
Empty
HOT
Database
Database:
Доступна
Недоступна
Cache
Анализ
Redo
Время
Undo / Do
Отказоустойчивость
Empty
HOT
Database
Cache
Сервер A:
Do
Empty
HOT
Сервер B:
База данных доступна
на сервере A
Database
Cache
База данных доступна
на сервере B
Redo
Undo / Do
Свидетель и Кворум
Ключевая роль Witness состоит в
обеспечении автоматического
переключения
Для безболезненной потери одного из
серверов нужно иметь полный кворум
Предотвращает “разделение мозгов”
Потеря соединения означает проблемы с
сервером-партнером или же проблему с
сетью?
Для того чтобы стать основным
сервером, сервер должен “видеть” хотя
бы один сервер из кворума
Witness
продолжение
Witness - это экземпляр SQL Server
Один свидетель может обрабатывать
множество сессий
Использует очень мало ресурсов
Отвечает на запрос проверки связи (ping)
Отвечает на вопрос “Жив ли другой сервер?”
Не единственная реакция на сбой
Партнеры могут формировать кворум
самостоятельно
Надежность / Производительность
Есть выбор между более высокой
производительностью и более высокой
надежностью
Database Mirroring имеет два уровня
надежности
FULL – фиксация при записи лога на Mirror
Допускает автоматическое восстановление
Нет потери данных
OFF – фиксация при записи лога на Principal
Уровни надежности
FULL
Подтверждение
Подтверждение
Фиксация
Передача на резервный
сервер
Фиксация
Запись в
в логе
удаленный
лог
Запись в
локальный
лог
Log
Log
Уровни надежности
OFF
Подтверждение
Фиксация
Передача на резервный
сервер
Фиксация
Запись в
в логе
удаленный
лог
Запись в
локальный
лог
Log
Log
Два сценария
Высокая доступность
Полная надежность (FULL)
Автоматическое восстановление
База данных доступна для работы даже
при потере одного из серверов
Высокая производительность
Полная надежность установлена в OFF
DBA контролирует отказоустойчивость
Небольшая потеря данных
Disaster recovery scenario
Автоматическое восстановление
Mirroring:
SUSPENDED
SYNCHRONIZING
SYNCHRONIZED
Witness
Сервер A
Сервер B
Mirror
Principal
Mirror
Principal
Безопасность
На уровне сервера
Для контроля доступа используются конечные
точки (Endpoints)
Системный администратор выбирает серверы
между которыми будут доверительные
отношения
NT логины в доменах с доверительными отношениями
Сертификаты в доменах с недоверительными отношениями
Системный администратор дает этим серверам
разрешение на участие в Database Mirroring
Это должно быть сделано на всех трех
серверах
На протяжении всего времени соединения
серверы находятся в доверительных
отношениях
Безопасность
На уровне базы данных
Как только будут установлены
разрешения на системном уровне, все
пользовательские базы данных на
партнерских серверах могут быть
зеркалированы
Владелец БД может устанавливать,
конфигурировать и администрировать
сессии зеркалирования
Для каждой сессии канал
взаимодействия может быть зашифрован
Database Snapshots
(моментальные снимки БД)
Пользовательские ошибки
Пользователи, приложения, а также DBA
могут время от времени делать ошибки
Database Snapshots решают эту
проблему, позволяя откатывать базу
данных на момент создания снимка
Данные теряются как только БД
откатывается назад на определенный
момент времени
Должны быть созданы перед
возникновением ошибки
Snapshots (моментальные снимки)
Общие понятия
Снимок БД на определенный момент времени
Создается на том же самом экземпляре сервера БД
Доступен только для чтения
Основная БД продолжает изменяться
Снимок не ограничивает основную БД
Снимок требует уникального имени
Для исправления ошибок производится откат на
заранее созданный снимок
Snapshot
Технология
Большая эффективность использования
места
Не требуется полная копия данных
Неизмененные страницы БД находятся в
совместном доступе
Требуется дополнительное место только
для измененных страниц
Используется механизм “копирование
при записи”
Снимок оказывает влияние на
производительность основной БД
Snapshot (Копирование в момент
записи)
Команда
Create Northwind_SS
Update Northwind
Read Northwind_SS
Результат:
DD
Используемое 12.5%
0%
место
Northwind
Значение
R
D
X
B
H
J
L
Y
M
Northwind_SS
Значение
D
Snapshots (снимки)
Database Mirroring
На резервном сервере можно создавать
множество снимков
Каждый снимок создается на определенный
момент времени
Каждый снимок имеет свое собственное имя
Снимки на резервном сервере могут
оказывать влияние на
производительность основного сервера
Снимки могут существовать очень долго
Ограничены только доступными ресурсами
Отчеты на резервном сервере
Использование снимков базы данных
на резервном сервере
Database Mirroring
OLTP Клиенты
Witness
Principal
Mirror
Snapshot2
@ 2PM
Snapshot
@ Noon
Клиенты
запускающие отчеты
Отчеты на резервном сервере
Ограничения
Схема снимка неизменна
Снимок статичен
Новые данные недоступны
Снимки могут влиять на производительность
Альтернатива - репликация для
выделенного решения сервера отчетов с
горизонтальным масштабированием
Перенаправление запросов
клиентов
Перенаправление прозрачно
Приложения перенаправляются на нужный
сервер
На сбой, приложение должно
инициировать перенаправление:
Текущая информация о состоянии потеряна
Приложению перенаправление не важно
В строке соединения должна быть
информация сервер/база данных
Перенаправление клиентов
Если база данных использует
зеркалирование, то загружаются
имена серверов
Клиент хранит информацию в памяти
При сбое идет подключение к
резервному серверу
MDAC использует резервный сервер
Доступность
(1 из 2)
Горячий резерв
Функциональ
Database
ность
Теплый резерв
Failover
Clustering
Transactional
Replication
Log
Shipping
Потеря данных
Нет опций
потери
данных
Нет потери
данных
Некоторые
данные могут
быть потеряны
Некоторые
данные могут
быть потеряны
Автоматическое
восстановление
Да
Да
Нет
Нет
Нет
Нет
секунды
секунды +
восстановление БД
Постоянно
доступна
Периодически
доступна
Mirroring
Прозрачность
клиента
Да,
Автоперена
правление
Время простоя
< 3 секунд
Доступ на чтение
к серверу
Постоянно
доступный
снимок
Да,
Переподсое
инение к
тому же IP
20 сек +
восстановление БД
Нет
Доступность
Функцион
альность
Уровень
детализации
данных
Горячий резерв
Database
Mirroring
БД
Устойчивость к
Да
сбою дисковой
подсистемы
НеобходиНет, нужна
мость в
дублируюспециальном
щая система
аппаратном
обеспечении
Сложность
Некоторая
Failover
Clustering
Все
системные и
пользовательские БД
Нет, диски
совместного
доступа
Специальное
аппаратное
обеспечение
от
Cluster HCL
Больше
(2 из 2)
Теплый резерв
Transact.
Replication
Log
Shipping
Таблица или
вид
БД
Да
Да
Нет, нужна
дублируюсистема
Нет, нужна
дублирующая
система
Больше
Больше
Полезные ресурсы
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/
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Download