1С:Предприятие 8 и отказоустойчивость баз данных MS SQL 2012 Гринчук А.В. Группа компаний Эталон • Основана в 1987 году • Виды деятельности – жилая недвижимость, коммерческая недвижимость, промышленное строительство, строительные материалы, содержание и эксплуатация домов • Выручка по МСФО за 2012 – 866 млн. $ • География присутствия – Санкт-Петербург, Москва, офисы продаж в 30 городах России Группа компаний Эталон • Удаленные подразделения • Распределенные информационные базы • Количество одновременно подключенных пользователей 1С (центральный офис) – свыше 300 • Количество информационных баз – более 200 • Используемые конфигурации 1С – БиТ Финанс, ЗиУП, Бухгалтерия Технологии отказоустойчивости Microsoft SQL Windows Failover Cluster (WSFC) Технологии отказоустойчивости Microsoft SQL Windows Failover Cluster (WSFC) Преимущества: высокая надежность путем полного резервирования сервера, отсутствие простоев при отказе сервера. Недостатки: нет защиты отказа дисковых массивов, высокая стоимость решения (простаивающий резервный сервер, аналогичный рабочему). Технологии отказоустойчивости Microsoft SQL Зеркалирование (mirroring) баз данных Технологии отказоустойчивости Microsoft SQL Зеркалирование (mirroring) баз данных Преимущества: обеспечение отказоустойчивости дисковых массивов, возможность использования ресурсов резервного сервера, возможность создания географически распределенного кластера. Недостатки: высокая стоимость решения (необходим резервный сервер с дисковой подсистемой, а также следящий сервер). Технологии отказоустойчивости Microsoft SQL Подключение к зеркальной базе данных клиентским приложением, не получится в связи с тем, что эта база всегда находится в режиме восстановления. В этом случае можно использовать снимок (snapshot) зеркальной базы. Об этой и о других технологиях Microsoft можно прочитать, например, тут http://sql.xp7.ru/archives/tag/sql-server-2005 Группы доступности AlwaysOn в Microsoft SQL2012 Availability Groups is an enterprise-level high-availability and disaster recovery solution introduced in SQL Server 2012 to enable you to maximize availability for one or more user databases. Группы доступности AlwaysOn в Microsoft SQL2012 Группа доступности – это совокупность реплик доступности, их режимы работы, совокупность баз данных и слушатель группы (listener) Группы доступности AlwaysOn в Microsoft SQL2012 Особенности. При добавлении базы текущего сервера в группу доступности необходимо прежде сделать архив этой базы (модель восстановления должна быть Полная). Для создания слушателя при создании группы доступности потребуются полномочия администратора домена. А при добавлении баз данных в существующую группу доступности достаточно будет полномочий админа SQL сервера. Стоит еще указать на то, что вся остальная «обвязка» (пользователи, планы обслуживания, задания агента и т.д.), которая не входит в группу доступности, остается локальной для сервера. Группы доступности AlwaysOn в Microsoft SQL2012 Преимущества и недостатки у AlwaysOn в основном такие же как у зеркалирования, но есть и особенности. Основные отличия AlwaysOn от mirroring – возможность создания реплик read-only, возможность создания более одной копии, простота настройки, большая гибкость, отсутствие Whitness-сервера (вместо этого listener в группе доступности). Появилась возможность разгрузить основную базу от пользователей отчетов (реплика ReadOnly) Присутствует только в MS SQL Enterprise или BI Особенности работы 1С на MS SQL2012 • Платформа 1С:Предприятие, начиная с версии 8.2.17 официально поддерживает работу с MSSQL 2012 • В MSSQL 2012 изменился синтакис строки подключения ODBC (для AlwaysOn), 1С его не поддерживает, есть пути ршения Особенности работы 1С на MS SQL2012 Особенности доработки типовых конфигураций для ReadOnly •Регламентные задания, очевидно для базы ReadOnly их нужно отключить •Обработка «Панель функций», при открытии всегда пытается установить значение параметра «ОткрыватьПриЗапускеПанельФункций» регистра сведений «НастройкиПользователей» в значение «Истина». Пути обхода – отключить настройку «ОткрыватьПриЗапускеПанельФункций» для пользователей, закомментировать код или добавить специальную роль ReadOnly, а код выполнять, если роль другая •Обработка «Панель функций», при закрытии записывает значение параметра «ТекущаяСтраницаПанелиФункций» регистра сведений «НастройкиПользователей». Пути обхода – отключить настройку «ОткрыватьПриЗапускеПанельФункций» для пользователя, добавить специальную роль ReadOnly, а код выполнять, если роль другая Особенности работы 1С на MS SQL2012 Особенности доработки типовых конфигураций для ReadOnly •Интернет поддержка пользователей (общая форма «ИнтернетПоддержкаПользователейОшибкаДоступаКИнтернету»). При старте конфигурации 1С предлагает соединиться с сервером 1С и при наличии соединения устанавливает настройку в хранилище общих настроек. Пути обхода – сбросить настройки автоподключения к интернет-поддержке путем создания внешней обработки со следующим кодом кнопки: ХранилищеОбщихНастроек.Сохранить("ИнтернетПоддержкаПользователей", "ПовторитьПопыткуПодключенияПриСтартеПрограммы",Ложь); ХранилищеОбщихНастроек.Сохранить("ИнтернетПоддержкаПользователей", "ВсегдаПоказыватьПриСтартеПрограммы",Ложь); •При закрытии отчета (например, оборотно-сальдовая ведомость) происходит запись настроек отчета в справочник «СохраненныеНастройки». Пути обхода: добавить специальную роль ReadOnly и в процедуре СохранитьНастройку общего модуля СтандартныеОтчеты вставить проверку сохраниеня настроек, если роль другая Проект перехода на отказоустойчивую систему СУБД Цели проекта •Повышение отказоустойчивости системы •Повышение производительности системы за счет разгрузки основных баз даных от пользователей отчетов •Оптимальное использование ресурсов (серверов) Проект перехода на отказоустойчивую систему СУБД Архитектура решения Проект перехода на отказоустойчивую систему СУБД План проекта Наименование работ № 1 2 2.1 2.2 2.3 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 Перевод 1С на новую инфраструктуру Проверка работоспособности настроенной архитектуры серверов Перенос рабочих баз данных на SQL2012 Настройка групп доступности Настройка регламентных процедур на серверах Перемещение рабочих баз Перевод серверов приложений 1С Настройка кластера 1С Настройка приложений "только чтение" Подключение информационных баз "только чтение" пользователям Доработка отчетов и настроек в 1С, зависимых от сервера Настройка приложений рабочих баз Подключение рабочих информационных баз пользователям Настройка обновлений конфигураций Дата начала Дата окончания 08.04.2013 31.05.2013 08.04.2013 15.04.2013 16.04.2013 30.04.2013 16.04.2013 17.04.2013 17.04.2013 19.04.2013 22.04.2013 30.04.2013 16.05.2013 31.05.2013 16.05.2013 17.05.2013 20.05.2013 21.05.2013 21.05.2013 22.05.2013 22.04.2013 22.05.2013 23.05.2013 31.05.2013 23.05.2013 31.05.2013 23.05.2013 31.05.2013 Проект перехода на отказоустойчивую систему СУБД Особенности проекта •Модель восстановления – Полная •При планировании учесть размер журналов транзакций •Обслуживание баз – архивирование для предотвращения роста журнала транзакций •Невозможность восстановить архив SQL 2012 на старых серверах •Доработка конфигураций для подключения 1С в ReadOnly 1С:Предприятие 8 и отказоустойчивость баз данных MS SQL 2012 • • К сожалению, в СУБД Microsoft отказоустойчивость есть, а балансировки по-прежнему нет. Огорчает так же отработка отказа в AlwaysOn: активные соединения с базой отваливаются. Ожидания, исходя из общего описания технологии на ресурсах Microsoft и по выступлениям на различных конференциях, были несколько другими. Но порывшись на ресурсах Microsoft, нашел вот что http://technet.microsoft.com/ruru/library/hh213417.aspx#CCBehaviorOnFailover. Все честно сказано, но в общих описаниях такой важной особенности нет, да и очевидно становится только после эксперимента. Но вместе с тем, порадовала гибкость и простота настройки и управления AlwaysOn. Также порадовала «прозрачная» для 1С работа реплики ReadOnly, правда при этом необходимо немного «допилить» конфигурации 1С. Ну и стоит сказать, что текущая реализация отказоустойчивости AlwaysOn вполне может использоваться, если для бизнеса некритична потеря незавершенных транзакций и отключение активных сеансов в момент переключения. 1С:Предприятие 8 и отказоустойчивость баз данных MS SQL 2012 Спасибо за внимание!