Средства обеспечения отказоустойчивости SQL сервера 2008, 2012

Рассмотрим задачу обеспечения отказоустойчивости  SQL сервера 2008, 2012 на примере конкретного предприятия.

 Исходные данные:

  • в наличии — отдельный терминальный сервер, с установленным программным комплексом 1С Предприятие 8.3
  • количество активных пользователей от 100 до 200 человек
  • база 1С Предприятия находится на отдельном сервере SQL_1
  • объем базы – 200 Гб
  • программный комплекс работает 24 часа 7 дней в неделю

Задача 1.
 Создать систему обеспечения резервирования и восстановления работоспособности баз данных SQL, аппаратными и программными средствами. Обеспечить время простоя из-за недоступности баз данных SQL– не более 30 минут днем и один час ночью.

Задача 2.
 
Создать систему быстрого восстановления рабочей копии базы 1С Предприятия на момент сбоя, потери информации связанных с человеческим фактором, с периодичностью от 5 до 30 минут  

Задача 3.
 Составить план обслуживания баз данных программного комплекса 1С Предприятие.

Деструктивные факторы, влияющие на работоспособность  базы SQL:

— человеческий фактор;
— аппаратный сбой  — выход из строя оборудования (сервер, коммутатор, сеть);
— программный сбой сервера SQL (операционная система, ПО Microsoft SQL Server 2008, 2012).

Решение задачи 1.

Для начала определимся, нужен ли нам резервный сервер баз данных.

Так как предприятие у нас достаточно крупное, работает круглосуточно, база данных  200 Гб и продолжает увеличиваться, перерывы в работе программного комплекса 1С Предприятие не должны превышать одного часа — необходимость резервного сервера SQL очевидна.
 Если у нас выйдет из строя основной сервер баз данных, и мы не в состоянии в течении 30-60 минут решить проблему восстановления работоспособности, мы просто перейдем на работу с резервным сервером. Потом в спокойной обстановке диагностируем проблему и начнем восстанавливать работоспособность основного сервера. В качестве резервного сервера может выступать виртуальная машина, фирменный сервер, либо мощный персональный компьютер. Задача резервного сервера поддержать работу  на время ремонта или восстановления ПО основного сервера. Резервный сервер должен иметь производительность достаточную для работы программного комплекса Предприятия.

      До недавнего времени у нас не было выделенного сервера для баз данных. В качестве резервного сервера использовался сервер баз данных для разработчиков.

Схема резервирования была следующей.

Создание резервных копий.
Раз в сутки создавалась полная копия базы данных на локальном диске Server_SQL1. Копия переносилась на сетевой диск в Хранилище_1. Архив копии создавался на Server_ SQL2.
Итого в течение суток у нас присутствует три копии базы данных на разных физических устройствах.

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

Восстановление базы.
В случае аппаратного или программного выхода из строя  сервера Server_SQL1 базы данных восстанавливаются на резервном сервере  Server_SQL2.

Актуальность восстановления.
— если не получалось  скопировать журналы транзакций с Server_SQL1 – 24 часа до сбоя
— если журналы транзакций доступны, но нет доступа к базе – 15 минут до сбоя
— если есть возможность создать заключительный фрагмент журнала – до момента сбоя

Время восстановления:
 — время на диагностику и принятие решения — х минут
 — время копирования полной копии базы с хранилища на резервный сервер 15-30 мин.
 — время восстановления базы 16-40 мин.
 — время копирования журналов транзакций с основного сервера (зависит от работоспособности сервера, доступности жестких дисков) в лучшем случае от 5 минут
— восстановление журналов транзакций ( от 30 мин до 1,5-3 часов)
— изменение настроек базы в сервере 1С Предприятии  —  5 минут

Итого: от одного часа до нескольких часов
 

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

Рассмотрим способы  резервирования баз данных.

Основные способы резервирования баз данных SQL-сервера.

1. Создание кластера.
Аппаратное обеспечение:
 — два идентичных сервера и одно СХД (система хранения данных)
Достоинства:
 — высокая отказоустойчивость и сохранность данных.
 — не нужно изменять настройки баз в 1С Предприятии при переходе с одного сервера на другой.
Недостатки :
 — высокие затраты
 — требуется два идентичных производительных сервера
 — узкое место — скорость обмена между серверами и СХД (производительность локального RAID на сервере будет выше, чем производительность связки сервер плюс СХД).

2. Зеркалирование.
Аппаратное обеспечение:
— один основной сервер, второй резервный, третий следящий (необязательно).
Достоинства:
Высокая отказоустойчивость и сохранность данных в режиме «Высокая безопасность».
Недостатки :
— если выбран Синхронный режим «Высокая безопасность» (без потери данных) быстродействие будет определяться сервером с наименьшей производительностью  и еще уменьшится из-за  зеркалирования .
—  для настройки зеркалирования необходимо прекращение работы пользователей на время копирования и синхронизации базы.

Асинхронных режим – не снижает производительность и его вполне можно использовать наравне с доставкой журналов.

3. Доставка журналов.
Аппаратное обеспечение:
 — один основной сервер, несколько резервных.
Достоинства:
 — для настройки «Доставки журналов» прекращать работу пользователей не обязательно
 — журналы могут копироваться на сетевые диски
 — не снижается производительность основного сервера

Из двух методов резервирования «Зеркалирование в асинхронном режиме» и «Доставка журналов» нами был выбран второй, так как  для настройки «Доставки журналов» прекращать работу пользователей не обязательно. Это особенно удобно, когда база данных имеет большой объем и синхронизация баз может занять длительное время.

Реализация отказоустойчивости базы SQL с помощью копирования журналов.

Создание резервных копий.
Раз в сутки создается полная копия базы данных на локальном диске Server_SQL1. Копия переносится на сетевой диск в Хранилище_1. Архив копии создается на Server _SQL2.
Итого в течение суток у нас присутствует три копии базы данных на разных физических устройствах.

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

Восстановление базы.
В случае аппаратного или программного выхода из строя  сервера Server_SQL1 SQL базы данных восстанавливаются на резервном сервере  Server_SQL2.

Актуальность восстановления:
— если доступ к рабочей базе невозможен – 5 минут до сбоя
— если есть возможность создать заключительный фрагмент журнала –  до момента сбоя

 Время восстановления:
На резервном сервере находится копия рабочей базы данных с отставанием на 5 минут от рабочей базы.
— время на диагностику и принятие решения — х минут
— восстановление последних  журналов транзакций  5-10 минут
— изменение настроек базы в сервере 1С Предприятии  —  5 минут

Итого:  10-15 минут

 

Comments are closed.