Система резервирования базы данных комплекса¶
- Table of contents
- Система резервирования базы данных комплекса
Введение¶
В данной инструкции описан принцип работы системы резервирования комплекса на базе служб и сервисов предоставляемых MS Window Server 2003 (2008) и SQL Server 2005 (2008), описан процес настройки системы резервирования, ее тестирования и восстановления после сбоев.
Описание¶
В нашем случае рассматривается схема когда в рамках комплекса используется 2 сервера, выполняющие все серверные функции: контроллер домен, DNS сервер, файл-сервер, SQL сервер. В данном описании используется относительно условное деление серверов на Основной и Резервный. Особенности лицензирования SQL серверов, позволяют нам в рамках системы резервирования использовать лицензию только на один сервер - Основной, при условии, что Резервный будет использовать только в случае и на время неполадок и профилактических работ, на срок не более 30 дней. Вот цитата из соглашения
"Сервер, играющий в отказоустойчивых конфигурациях роль резервного, называется пассивным сервером (или сервером «холодного» резерва) если он используется исключително для дублирование данных основного сервера, а непосредственной работы пользователей на нем не ведется. Для пассивного сервера не требуется дополнительная лицензия при условии, что количество его процессоров равно или не превышает количества процессоров активного сервера. Пассивный сервер может выполнять роль активного в течение 30 дней. После этого он должен быть надлежащим образом лицензирован."
Используемое оборудование и программное обеспечение¶
- 2 MS Windows 2003 Server (или 2008)
- 2 MS SQL Server 2005 (2008) Standard (Enterprise)
- 1 SQL Server 2005 (2008) Express Edition
- имя домена: hotreserv.com (HOTRESERV)
- имя главного сервера: MASTER
- имя резервного сервера: SLAVE
- имя компьютера с эфиркой: AIR
- имя пользователя: hotreserv\mirror
- путь к файловому хранилилщу: \\hotreserv.com\root
Принцип работы системы резервирования¶
База данных комплекса использует для хранения данных SQL сервер и файловое хранилище, поэтому системы резервирования разбита на две подсистемы система резервирования SQL сервера - зеркалирование базы данных и система система резервирования файлового хранилища - DFS (Distributed File System).
Резервирование SQL сервера организовано следующим образом. В системе задействовано 3 компьютера, на двух из них установлени SQL server standard (enterprise) они выполняют функцию хранения базы данных и предоставляют к ней доступ. Один из этих двух серверов (Principal) работает как главный - клиенты работают непосредственно с ним, второй (Mirror) только зеркалирует базу главного. На третьем устанавливается SQL server express edition выполняющий роль сторожа. В случае отказа главного сервера, зеркалирующий сервер совместно со сторожем примают решение о изменении статуса зеркалирующего сервера, после чего он становится главным. Клиенты на время изменения статуса сервера теряют соединения, а после изменения статуса передподключаются, для этого в свойствах подключения к SQL серверу задается как главный так и зеркалирующий серверы. В роли сторожа может выступать например эфирная машина, функции сторожа не требуют высокой производительности.
Резервирование файлового хранилища реализовано следующим образом, на двух серверах предоставляется доступ к папкам в по сети, например
- \\SRVP\ROOT
- \\SRVM\ROOT
система DFS предоставляет к этим папкам по одному имени, например \\hotreserv.com\root и обепечивает синхронизацию содержимого этих папок. (Минимальный интервал синхронизации 1 секунда.) При отключении
Подробно о принципах работы и настройке зеркалирования быза данных sql сервера можно прочитать по этой ссылке. Документация по DFS представлена на /dfs/default.mspx этой странице Ниже описан частный случай настроки этих систем.
Настройка системы
h3. Контроллеры домена
- Устанавливаем на обоих серверах одинаковое время и TimeZone (Control Panel\Date and Time)
- устанавливаем основной и резервный контроллеры домена(сначала мастер, затем зеркало);
- создаем пользователя hotreserv\mirror для запуска и обслуживаниея sql серверов с установленным параметром password never expired и заданным паролем
Для проверки:
- Добавляем эфирку в домен;
- Логинимся на эфирке под созданным для обслуживания SQL серверов пользователем.
DNS серверы¶
Входе установки роли контроллера домена на основной сервер будет установлена служба DNS сервера. В оснастке Administrative Tools\DNS задаем имена и ip адреса серверов (in forward and reverse zones) На резервном сервере добавляем службу DNS (Administrative Tools\Manage Your Server).
Для проверки, на всех трех машинах в командной строке вбить команды:
- nslookup master.hotreserv.com - получить ip адрес
- nslookup - получить имя компьютера
- nslookup slave.hotreserv.com - получить ip адрес
- nslookup - получить имя компьютера
- nslookup air.hotreserv.com - получить ip адрес
- nslookup - получить имя компьютера
DFS¶
- На обоих северах создать и расшарить папки предназначенные для хранения ROOTа комплекса.
- Задать этим папка необходимые права доступа.
В оснастке Administrative Tools\DFS:
- Создать доменный root (на 2008 не включать (Windows Server 2008 mode) )
- Добавить к созданному rootу новый root target и указать в качестве точки хранения одну из расшаренных ранее папок
- Добавить линк на вторую папку
- В контекстном меню созданного root запускаем репликацию в режиме - Mesh
- Интервал репликации задаем - 1с
(Для 2003 сервера) В реестре на обоих серверах задаем параметр
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters\Suppress Identical Updates To Files = 0
и выполняем в консоли:
- net stop ntfrs
- net start ntfrs
Чтобы клиенты DFS подключались к одному серверу (Ведущему)
На 2008 сервере:
- установить - Feature - File Services Tools\Distributed File System Tools
- ввести команду
dfsutil.exe property priorityrank set \hotreserv.com\MDB\ROOT \slave\ROOT 31
На 2003 сервере:
- скачать и установить - Windows Server 2003 Support Tools
- ввести в консоле указанную ниже команду.
C:\Program Files\Support Tools>dfsutil.exe /targetpriority /path:\hotreserv.com\root /server:slave /share:root /set /priorityrank:31
Для проверки, на эфирке в эксплорере вбивает строку \\hotreserv.com\root, в открывшемся окне создаем папку и удалеям ее.
SQL¶
!Если SQL сервер устанавливается на контроллер домена нужно выполнить инструкцию по ссылке:
http://support.microsoft.com/kb/955496
Основной¶
- включить только TCP\IP остальные протоколы отключить, настроить запуск сервисов под учетной записью hotreserv\mirror
- перезапустить сервисы sql сервера
- создать базу, например mdb (при создании базы в разделе Options задать Collation = Cyrillic_General_CI_AS, Recovery model = Full.
- выполнить mdb_create.sql
- выполнить mdb_update.sql
- на эффирке запустить джина и подключить его к созданной базе - убедиться что подключение прошло успешно, закрыть джина.
- создать бэкап базы в файл (в контекстном меню базы Tasks\Backup… , Backup type = Full)
- создать бэкап transaction log в тотже файл (в контекстном меню базы Tasks\Backup… , Backup type = Transaction Log)
Резервный¶
* Включить только TCP\IP остальные протоколы отключить, настроить запуск сервисов под учетной записью hotreserv\mirror
* перезапустить сервисы sql сервера
* скопировать бэкап главного сервера на локальный диск резервного
* создать базу из бэкапа в режиме NORECOVERY:
* в контекстном меню поля - Databases выбрать команду Restore Database
* в качестве источника выбрать файл с бэкапом главного сервера
* задать имя базы такое же как на главном сервере
* зайти в Options и задать режим восстановления
Сторож¶
В качестве сторожа устанавливаем sql server express edition, включаем на нем только TCP\IP остальные протоколы отключаем. Настраиваем запуск сервера по аккаунтом hotreserv\mirror,
Проверка
h3. GJIN
В настройках Джина задаем расположение рута \\hotreserv.com\root
задаем сервер с базой: MASTER
и зеркало: SLAVE
Тестирование системы
h3. Отключение основного сервера
- Создаем расписание в Джине, заполняем базу элементами.
- Разрываем связь с основным сервером
- Джин должен выдать ошибки связанные с обрывом связи
- В течении минуты связь с базой должна восстановиться
Отключение резервного сервера¶
При правильной настройке отключение резервного сервера не должно сказываться на работе Джина.
Для проверки: Перезагрузить резервный сервер. После перезагрузки отключить сеть на резервном сервере.
Убедить в отсутствии сообщений об ошибке на комплексе.
Восставновление работоспособности после сбоев¶
После сбоя и восстановления работоспособности основного сервера, рекомендуется перезагрузить резервный сервер, чтобы принудительно переключить всех клиентов на основной сервер.