• 4d.by
  • 4dsys.com
  • office24.by
  • software.by
(152) 55-11-99 Заказать звонок
4D
  • Меню
  • Аренда 1С
  • Купить 1С
  • Оплата
  • Доставка
  • Новости
  • Контакты
(152) 55-11-99 Заказать звонок
Главная
-
Информация
-
Техноблог
-
1C

Обслуживание баз 1С в MS SQL Server

  • Новости
  • Мероприятия
  • Техноблог
Обслуживание баз 1С в MS SQL Server
Итак в продолжении темы обслуживания баз 1С присмотримся к системе управления реляционными базами данных Microsoft SQL Server. Этот продукт предоставляет нам большие возможности обработки, хранения, резервирования и восстановления баз. Я начну небольшой цикл статей, посвященных этой теме. Все, что будет написано ниже, является личным мнением по данному вопросу и подлежит критике.
В данной статье рассмотрен процесс создания планов обслуживания баз. Оповещение оператора, а так же пример восстановления базы рассмотрим в следующих статьях.

В тестовой лаборатории у нас следующее:

  • Сервер Windows Server 2008 Enterprise: SRV-1C-TEST.
  • Microsoft SQL Server 2008: SRV-1C-TEST.
  • Тестовая база BuhFirma.

Как обычно, поставим перед собой задачу:

Проводить обслуживание базы в период 00:30 - 01:00, при этом обслуживание не должно быть заметным (либо слабозаметным) для пользователей базы.

Начнём с важных моментов. MS SQL база данных может иметь один из трех типов модели восстановления:

  • Простая.
  • Полная.
  • С неполным протоколированием.

Так же при резервном копировании нам предоставляется на выбор три варианта копирования:

  • Полное.
  • Разностное.
  • Копирование журнала транзакций (логов).

При полном варианте копирования происходит сохранение базы mdf и журнала транзакций. Разностное копирование (по-другому дифференциальное) производит копирование данных, изменившихся с момента создания последней полной резервной копии. Копирование журнала транзакций соответственно производит сохранение только самого журнала транзакций.

При выборе простой модели восстановить базу данных можно с момента создания последней разностной или полной резервной копии. При выборе полной модели восстановления мы можем восстанавливать базу до минуты, создав полную резервную копию, например, ночью, и в течение дня создавать копии журнала транзакции. Ниже мы увидим, где всплывает этот момент. Хотелось так же привести некоторые выдержки из MSDN: "Модель восстановления с неполным протоколированием предназначена исключительно как дополнение к модели полного восстановления. В общем случае модель восстановления с неполным протоколированием похожа на модель полного восстановления, за исключением того, что протоколирование большинства массовых операций в ней производится в минимальной степени".

Модель восстановления своей базы вы можете посмотреть, зайдя в свойства базы данных, например BuhFirma и перейдя на строку - Параметры.

1c-mssql-maintenance-001.jpg


В MSSQL 2008 по умолчанию в созданных базах данных модель восстановления Полная.

Как выбрать модель восстановления? Надо лишь ответить на вопрос: смертельна ли потеря информации за время, прошедшее после полного резервного копирования? Если ответ да, тогда выбираем полную модель восстановления, если нет, простую. Модель с неполным протоколированием стоит применять только на время массовых операций в БД.

Таким образом, если вы выбрали простую модель, то восстановить данные вы сможете только на момент ночного полного или разностного копирования, а всю информацию после этого пользователи будут восстанавливать вручную. Выбирая Полную модель, вы обязательно должны делать резервное копирование журнала транзакций, иначе логи будут сильно расти. При любой модели восстановления вы всегда должны иметь полную резервную копию.

В начале создадим ночной план обслуживания базы, который будет включать в себя последовательность следующих действий:

  • Проверка целостности базы
  • Перестроение индекса
  • Обновление статистики
  • Очистка процедурного кэша СУБД
  • Резервное копирование базы данных
  • Очистка после обслуживания
  • Очистка журнала

Для этого подключимся к MSSQL серверу с помощью среды Microsoft SQLServer Management Studio. Запустить среду можно перейдя в Пуск - Все программы - Microsoft SQL Server 2008.
Подключимся с серверу SQL и перейдем в Управление - Планы Обслуживания. Кликнем правой кнопкой по Планы обслуживания и выберем Создать план обслуживания. Дадим ему имя: SRV1CTEST.

1c-mssql-maintenance-002.jpg

Перед нами окно SRV1CTEST, в котором мы и будем создавать последовательность действий, обозначенных раннее. Сразу видим появившейся Вложенный_План1. Справа от названия вложенного плана вы увидите иконку в виде таблички. Нажимаем на нее и попадаем в свойства расписания задания. Здесь можно менять название вложенного плана, выставить частоту повторения в Ежедневно и установить время. И так теперь осталось наполнить наш план заданиями. Для этого с Панели инструментов, которая находится справой стороны, перетаскиваем задания.

Начнем с Проверки целостности базы данных.


1c-mssql-maintenance-003.jpg


После того, как вы перетащили задание, щелкните по нему два раза. Откроется окно, в котором в строке Базы данных мы выбираем созданную нашу базу BuhFirma. Далее таким же образом добавляем задания Перестроение индекса и Обновление статистики, не забыв выбрать в них нужную базу данных.

Процедура Перестроение индекса пересоздает индекс с новым коэффициентом заполнения. За счет этого мы увеличиваем производительность работы в БД.

Задача Обновление статистики обновляет сведения о данных таблиц для MS SQL. Что тоже повышает производительность. Но после этой операции надо обязательно проводить очистку кэша.

Пока остановимся и поговорим о настройке связей между заданиями. Связи отражают последовательность выполнения. Что бы провести связь между заданиями надо нажать один раз на задание и увидите появившуюся стрелку. Её надо перетащить на следующее задание. У связи может быть 3 цвета: синий, зеленый и красный, каждый из которых означает три типа срабатывания перехода: при простом завершении предыдущего задания - Завершение, в случае успешного завершения - Успех, а в случае возникновения ошибки при выполнение предыдущего задания - Ошибка. Все эти параметры вы можете увидеть, нажав правой кнопкой мыши на проведенную между заданиями стрелку. Таким образом, если нам надо, чтобы Перестроение индекса срабатывало только после успешного завершения задания Проверка целостности базы данных, мы должны связать их стрелкой. Нажав правой кнопкой мыши на стрелку, сменим ее режим на Успешно, как видим, ее цвет изменился на зеленый.


1c-mssql-maintenance-004.jpg


На данный момент мы имеем 3 созданных задания в нашем вложенном плане. Как вы могли заметить, задания Очистка процедурного кэша СУБД в панели элементов нету. Мы воспользуемся задачей Выполнение инструкции T-SQL. Перетащим ее в план, и щелкнем на ней два раза. Мы видим окно, в которое впишем следующее:
DBCC FREEPROCCACHE
Нажмем ОК. Далее стоит добавить задание задачу Резервное копирование базы данных. Так же щелкнув на добавленном задании, увидим опции настройки задания.


1c-mssql-maintenance-005.jpg


Здесь, исходя из поставленной задачи, выбираем полное резервное копирование, место, куда будем помещать архивы, а так же не забудем установить параметр Сжимать резервные копии.
Задача Очистка после обслуживания позволяет удалять устаревшие архивы. В нем мы можем установить место расположения архивов, а так же время, по истечению которого они будут удаляться.
Задача Очистка журнала производит удаление данных журнала, связанных с процессами резервного копирования, восстановления, планами обслуживания баз, а также с деятельностью агента SQLServer.
Таким образов в конце мы получим список последовательно выполняемых задач.

1c-mssql-maintenance-006.jpg


Сохранив план обслуживания, надо удостовериться в том, что на нашем сервер запущен Агент SQL Server. Для этого перейдем в Пуск - Все программы - Microsoft SQL Server 2008 - Средства настройки - Диспетчер конфигурации SQL Server. Перейдя на строчку Службы SQLServer, проверим, что служба Агент SQLServer находится в состоянии Работает и режим запуска выставлен в Авто.

1c-mssql-maintenance-007.jpg


В конце хотелось бы сказать о том, что использование задачи Перестроение индекса можно заменить или совместить с задачей Реорганизация индекса. Реорганизация индекса представляет собой инструмент для дефрагментации индексов. Для того что бы просмотреть какие операции требуются индексу, необходимо просмотреть физическую статистику индекса. Для этого правой кнопкой мыши нажмите на базу данных, перейдите в Отчеты - Стандартные отчеты - Физическая статистика индекса.

1c-mssql-maintenance-008.jpg


Следить за состоянием выполняемых операций вы можете из Управление - Планы обслуживания. Для этого в свойствах плана SRV1CTEST выберите Просмотр журнала. Так же можно просмотреть журнал, который ведет Агент MS SQL по этому заданию. Для этого перейдите на строку Агент MS SQL и в свойствах задания SRV1CTEST выберите Просмотр журнала.

1c-mssql-maintenance-009.jpg

Рано или поздно это случается. Посыпался рейд, админ случайно удалил базу, при восстановлении наложили базу на другую и т.д. и т.п, вообще, все те ситуации, для устранения последствий которых необходимо прибегнуть к мерам спасения, а точнее, к восстановлению из резервных копий. Сегодня мы поговорим о вариантах восстановления баз данных из резервных копий на Microsoft SQL Server. Ниже будут рассмотрены варианты для баз с простой и полной моделью восстановления. Для начала нам понадобятся входные условия. Собственно, вот они:

  • SERVER-1C на Microsoft Windows Server 2008 R2
  • SERVER-1C\SERVER1C - экземпляр Microsoft SQL Server 2008 R2
  • PingvinBuh - потерянная тестовая БД с простой моделью восстановления
  • PolkaBuh - потерянная тестовая БД с полной моделью восстановления
  • I:\Архив\PingvinBuh - директория с архивами БД PingvinBuh
  • I:\Архив\ PolkaBuh - директория с архивами БД PolkaBuh

Ранее мы уже рассматривали модели восстановления для баз данных в Ms SQL Server 2008 R2 и их основные отличия между собой. Для начала попытаемся провести восстановление случайно удаленной БД PingvinBuh , имеющую простую модель восстановления. Процесс восстановления базы данных можно поделить на несколько тривиальных этапов:

  1. Создание базы данных с таким же именем, как и потерянная.
  2. Восстановление потерянной базы данных из резервной копии в созданную одноименную базу.

Создав одноименную базу данных (не забыв установить в ней нужную вам модель восстановлении и указав место хранения файлов .log и .mdf), откройте контекстное меню для всего дерева Базы данных и пройдите в Восстановить базу данных.

1c-mssql-maintenance-3-001.jpg


В открывшемся окне в Назначение для восстановления укажем В базу данных и выберем PingvinBuh, а в Источник для восстановления выберем С устройства и укажем путь к нашему архиву с БД PingvinBuh. Не забудем отметить выбранный архив галкой Восстановить в Выберите наборы резервных данных для восстановления.

Есть возможность так же выбрать желаемое время восстановление. Оно ограничено временем создания полной резервной копии. За это отвечает опция К моменту времени. Создав полную резервную копию, вы сможете восстановить базу данных на любой момент времени до момента создания этой резервной копии.

1c-mssql-maintenance-3-002.jpg


Перейдем на страницу Параметры.

В Параметрах восстановления укажем Перезаписать существующую базу данных (WITH REPLACE). Обратим внимание на возможность выбора места. Пути исходных файлов должны быть такие же, как и у новой созданной вами базы. Т.е. при восстановление мы просто запишем поверх этой пустой базы нашу потерянную. Состояние восстановления можно оставить по-умолчанию: Оставив базу данных готовой к использованию, выполнив откат незафиксированных транзакций.


1c-mssql-maintenance-3-003.jpg


После нажатия на OK мастер запустит восстановление базы данных из полной резервной копии. По окончанию процесса вы сможете воспользоваться базой.

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

Для восстановления базы данных PolkaBuh на момент времени, прошедший после последнего резервного копирования требуется в Источник для восстановления указать архивы не только с последней полной резервной копией, но еще и архивы копии журнала транзакции (если они у вас не в одном архиве с полной резервной копией),а в поле Выберите наборы резервных данных для восстановления последовательно отметить полную резервную копию и все журналы транзакции, включающие интересующий вас момент времени.


1c-mssql-maintenance-3-004.jpg


Очень важная пометка: нельзя выбрать полую резервную копию и только последнюю копию журнала транзакции. Для восстановления до последней копии журнала транзакций необходимо иметь все предыдущие резервные копии журналов от последнего полного резервного копирования.
Галерея Загрузить
Поделиться
Подписывайтесь
на новости и акции
(152) 55-11-99 Заказать звонок
2025 © Группа компаний "Четыре Д"
Компания
Наши сайты
Информация
  • О компании
  • Офисы
  • Реквизиты
  • 1С:ERP для Беларуси
  • Аренда 1С в облаке
  • Хостинг 1С
  • Новости
  • Техноблог
  • Обзоры