Итак в продолжении темы обслуживания баз 1С присмотримся к системе управления реляционными базами данных Microsoft SQL Server. Этот продукт предоставляет нам большие возможности обработки, хранения, резервирования и восстановления баз. Я начну небольшой цикл статей, посвященных этой теме. Все, что будет написано ниже, является личным мнением по данному вопросу и подлежит критике.
В данной статье рассмотрен процесс создания планов обслуживания баз. Оповещение оператора, а так же пример восстановления базы рассмотрим в следующих статьях.
В тестовой лаборатории у нас следующее:
Как обычно, поставим перед собой задачу:
Проводить обслуживание базы в период 00:30 - 01:00, при этом обслуживание не должно быть заметным (либо слабозаметным) для пользователей базы.
Начнём с важных моментов. MS SQL база данных может иметь один из трех типов модели восстановления:
Так же при резервном копировании нам предоставляется на выбор три варианта копирования:
При полном варианте копирования происходит сохранение базы mdf и журнала транзакций. Разностное копирование (по-другому дифференциальное) производит копирование данных, изменившихся с момента создания последней полной резервной копии. Копирование журнала транзакций соответственно производит сохранение только самого журнала транзакций.
При выборе простой модели восстановить базу данных можно с момента создания последней разностной или полной резервной копии. При выборе полной модели восстановления мы можем восстанавливать базу до минуты, создав полную резервную копию, например, ночью, и в течение дня создавать копии журнала транзакции. Ниже мы увидим, где всплывает этот момент. Хотелось так же привести некоторые выдержки из MSDN: "Модель восстановления с неполным протоколированием предназначена исключительно как дополнение к модели полного восстановления. В общем случае модель восстановления с неполным протоколированием похожа на модель полного восстановления, за исключением того, что протоколирование большинства массовых операций в ней производится в минимальной степени".
Модель восстановления своей базы вы можете посмотреть, зайдя в свойства базы данных, например BuhFirma и перейдя на строку - Параметры.
В MSSQL 2008 по умолчанию в созданных базах данных модель восстановления Полная.
Как выбрать модель восстановления? Надо лишь ответить на вопрос: смертельна ли потеря информации за время, прошедшее после полного резервного копирования? Если ответ да, тогда выбираем полную модель восстановления, если нет, простую. Модель с неполным протоколированием стоит применять только на время массовых операций в БД.
Таким образом, если вы выбрали простую модель, то восстановить данные вы сможете только на момент ночного полного или разностного копирования, а всю информацию после этого пользователи будут восстанавливать вручную. Выбирая Полную модель, вы обязательно должны делать резервное копирование журнала транзакций, иначе логи будут сильно расти. При любой модели восстановления вы всегда должны иметь полную резервную копию.
В начале создадим ночной план обслуживания базы, который будет включать в себя последовательность следующих действий:
Для этого подключимся к MSSQL серверу с помощью среды Microsoft SQLServer Management Studio. Запустить среду можно перейдя в Пуск - Все программы - Microsoft SQL Server 2008.
Подключимся с серверу SQL и перейдем в Управление - Планы Обслуживания. Кликнем правой кнопкой по Планы обслуживания и выберем Создать план обслуживания. Дадим ему имя: SRV1CTEST.
Начнем с Проверки целостности базы данных.
После того, как вы перетащили задание, щелкните по нему два раза. Откроется окно, в котором в строке Базы данных мы выбираем созданную нашу базу BuhFirma. Далее таким же образом добавляем задания Перестроение индекса и Обновление статистики, не забыв выбрать в них нужную базу данных.
Процедура Перестроение индекса пересоздает индекс с новым коэффициентом заполнения. За счет этого мы увеличиваем производительность работы в БД.
Задача Обновление статистики обновляет сведения о данных таблиц для MS SQL. Что тоже повышает производительность. Но после этой операции надо обязательно проводить очистку кэша.
Пока остановимся и поговорим о настройке связей между заданиями. Связи отражают последовательность выполнения. Что бы провести связь между заданиями надо нажать один раз на задание и увидите появившуюся стрелку. Её надо перетащить на следующее задание. У связи может быть 3 цвета: синий, зеленый и красный, каждый из которых означает три типа срабатывания перехода: при простом завершении предыдущего задания - Завершение, в случае успешного завершения - Успех, а в случае возникновения ошибки при выполнение предыдущего задания - Ошибка. Все эти параметры вы можете увидеть, нажав правой кнопкой мыши на проведенную между заданиями стрелку. Таким образом, если нам надо, чтобы Перестроение индекса срабатывало только после успешного завершения задания Проверка целостности базы данных, мы должны связать их стрелкой. Нажав правой кнопкой мыши на стрелку, сменим ее режим на Успешно, как видим, ее цвет изменился на зеленый.
На данный момент мы имеем 3 созданных задания в нашем вложенном плане. Как вы могли заметить, задания Очистка процедурного кэша СУБД в панели элементов нету. Мы воспользуемся задачей Выполнение инструкции T-SQL. Перетащим ее в план, и щелкнем на ней два раза. Мы видим окно, в которое впишем следующее:
Здесь, исходя из поставленной задачи, выбираем полное резервное копирование, место, куда будем помещать архивы, а так же не забудем установить параметр Сжимать резервные копии.
Задача Очистка после обслуживания позволяет удалять устаревшие архивы. В нем мы можем установить место расположения архивов, а так же время, по истечению которого они будут удаляться.
Задача Очистка журнала производит удаление данных журнала, связанных с процессами резервного копирования, восстановления, планами обслуживания баз, а также с деятельностью агента SQLServer.
Таким образов в конце мы получим список последовательно выполняемых задач.
Сохранив план обслуживания, надо удостовериться в том, что на нашем сервер запущен Агент SQL Server. Для этого перейдем в Пуск - Все программы - Microsoft SQL Server 2008 - Средства настройки - Диспетчер конфигурации SQL Server. Перейдя на строчку Службы SQLServer, проверим, что служба Агент SQLServer находится в состоянии Работает и режим запуска выставлен в Авто.
В конце хотелось бы сказать о том, что использование задачи Перестроение индекса можно заменить или совместить с задачей Реорганизация индекса. Реорганизация индекса представляет собой инструмент для дефрагментации индексов. Для того что бы просмотреть какие операции требуются индексу, необходимо просмотреть физическую статистику индекса. Для этого правой кнопкой мыши нажмите на базу данных, перейдите в Отчеты - Стандартные отчеты - Физическая статистика индекса.
Следить за состоянием выполняемых операций вы можете из Управление - Планы обслуживания. Для этого в свойствах плана SRV1CTEST выберите Просмотр журнала. Так же можно просмотреть журнал, который ведет Агент MS SQL по этому заданию. Для этого перейдите на строку Агент MS SQL и в свойствах задания SRV1CTEST выберите Просмотр журнала.
Ранее мы уже рассматривали модели восстановления для баз данных в Ms SQL Server 2008 R2 и их основные отличия между собой. Для начала попытаемся провести восстановление случайно удаленной БД PingvinBuh , имеющую простую модель восстановления. Процесс восстановления базы данных можно поделить на несколько тривиальных этапов:
Создав одноименную базу данных (не забыв установить в ней нужную вам модель восстановлении и указав место хранения файлов .log и .mdf), откройте контекстное меню для всего дерева Базы данных и пройдите в Восстановить базу данных.
В открывшемся окне в Назначение для восстановления укажем В базу данных и выберем PingvinBuh, а в Источник для восстановления выберем С устройства и укажем путь к нашему архиву с БД PingvinBuh. Не забудем отметить выбранный архив галкой Восстановить в Выберите наборы резервных данных для восстановления.
Есть возможность так же выбрать желаемое время восстановление. Оно ограничено временем создания полной резервной копии. За это отвечает опция К моменту времени. Создав полную резервную копию, вы сможете восстановить базу данных на любой момент времени до момента создания этой резервной копии.
Перейдем на страницу Параметры.
В Параметрах восстановления укажем Перезаписать существующую базу данных (WITH REPLACE). Обратим внимание на возможность выбора места. Пути исходных файлов должны быть такие же, как и у новой созданной вами базы. Т.е. при восстановление мы просто запишем поверх этой пустой базы нашу потерянную. Состояние восстановления можно оставить по-умолчанию: Оставив базу данных готовой к использованию, выполнив откат незафиксированных транзакций.
После нажатия на OK мастер запустит восстановление базы данных из полной резервной копии. По окончанию процесса вы сможете воспользоваться базой.
Последовательность действий в процессе восстановления базы данных с полной моделью восстановления почти полностью аналогичная вышеописанному, но с небольшими дополнениями.
Для восстановления базы данных PolkaBuh на момент времени, прошедший после последнего резервного копирования требуется в Источник для восстановления указать архивы не только с последней полной резервной копией, но еще и архивы копии журнала транзакции (если они у вас не в одном архиве с полной резервной копией),а в поле Выберите наборы резервных данных для восстановления последовательно отметить полную резервную копию и все журналы транзакции, включающие интересующий вас момент времени.
Очень важная пометка: нельзя выбрать полую резервную копию и только последнюю копию журнала транзакции. Для восстановления до последней копии журнала транзакций необходимо иметь все предыдущие резервные копии журналов от последнего полного резервного копирования.
В данной статье рассмотрен процесс создания планов обслуживания баз. Оповещение оператора, а так же пример восстановления базы рассмотрим в следующих статьях.
В тестовой лаборатории у нас следующее:
- Сервер Windows Server 2008 Enterprise: SRV-1C-TEST.
- Microsoft SQL Server 2008: SRV-1C-TEST.
- Тестовая база BuhFirma.
Как обычно, поставим перед собой задачу:
Проводить обслуживание базы в период 00:30 - 01:00, при этом обслуживание не должно быть заметным (либо слабозаметным) для пользователей базы.
Начнём с важных моментов. MS SQL база данных может иметь один из трех типов модели восстановления:
- Простая.
- Полная.
- С неполным протоколированием.
Так же при резервном копировании нам предоставляется на выбор три варианта копирования:
- Полное.
- Разностное.
- Копирование журнала транзакций (логов).
При полном варианте копирования происходит сохранение базы mdf и журнала транзакций. Разностное копирование (по-другому дифференциальное) производит копирование данных, изменившихся с момента создания последней полной резервной копии. Копирование журнала транзакций соответственно производит сохранение только самого журнала транзакций.
При выборе простой модели восстановить базу данных можно с момента создания последней разностной или полной резервной копии. При выборе полной модели восстановления мы можем восстанавливать базу до минуты, создав полную резервную копию, например, ночью, и в течение дня создавать копии журнала транзакции. Ниже мы увидим, где всплывает этот момент. Хотелось так же привести некоторые выдержки из MSDN: "Модель восстановления с неполным протоколированием предназначена исключительно как дополнение к модели полного восстановления. В общем случае модель восстановления с неполным протоколированием похожа на модель полного восстановления, за исключением того, что протоколирование большинства массовых операций в ней производится в минимальной степени".
Модель восстановления своей базы вы можете посмотреть, зайдя в свойства базы данных, например BuhFirma и перейдя на строку - Параметры.
В MSSQL 2008 по умолчанию в созданных базах данных модель восстановления Полная.
Как выбрать модель восстановления? Надо лишь ответить на вопрос: смертельна ли потеря информации за время, прошедшее после полного резервного копирования? Если ответ да, тогда выбираем полную модель восстановления, если нет, простую. Модель с неполным протоколированием стоит применять только на время массовых операций в БД.
Таким образом, если вы выбрали простую модель, то восстановить данные вы сможете только на момент ночного полного или разностного копирования, а всю информацию после этого пользователи будут восстанавливать вручную. Выбирая Полную модель, вы обязательно должны делать резервное копирование журнала транзакций, иначе логи будут сильно расти. При любой модели восстановления вы всегда должны иметь полную резервную копию.
В начале создадим ночной план обслуживания базы, который будет включать в себя последовательность следующих действий:
- Проверка целостности базы
- Перестроение индекса
- Обновление статистики
- Очистка процедурного кэша СУБД
- Резервное копирование базы данных
- Очистка после обслуживания
- Очистка журнала
Для этого подключимся к MSSQL серверу с помощью среды Microsoft SQLServer Management Studio. Запустить среду можно перейдя в Пуск - Все программы - Microsoft SQL Server 2008.
Подключимся с серверу SQL и перейдем в Управление - Планы Обслуживания. Кликнем правой кнопкой по Планы обслуживания и выберем Создать план обслуживания. Дадим ему имя: SRV1CTEST.
Перед нами окно SRV1CTEST, в котором мы и будем создавать последовательность действий, обозначенных раннее. Сразу видим появившейся Вложенный_План1. Справа от названия вложенного плана вы увидите иконку в виде таблички. Нажимаем на нее и попадаем в свойства расписания задания. Здесь можно менять название вложенного плана, выставить частоту повторения в Ежедневно и установить время. И так теперь осталось наполнить наш план заданиями. Для этого с Панели инструментов, которая находится справой стороны, перетаскиваем задания.
Начнем с Проверки целостности базы данных.
После того, как вы перетащили задание, щелкните по нему два раза. Откроется окно, в котором в строке Базы данных мы выбираем созданную нашу базу BuhFirma. Далее таким же образом добавляем задания Перестроение индекса и Обновление статистики, не забыв выбрать в них нужную базу данных.
Процедура Перестроение индекса пересоздает индекс с новым коэффициентом заполнения. За счет этого мы увеличиваем производительность работы в БД.
Задача Обновление статистики обновляет сведения о данных таблиц для MS SQL. Что тоже повышает производительность. Но после этой операции надо обязательно проводить очистку кэша.
Пока остановимся и поговорим о настройке связей между заданиями. Связи отражают последовательность выполнения. Что бы провести связь между заданиями надо нажать один раз на задание и увидите появившуюся стрелку. Её надо перетащить на следующее задание. У связи может быть 3 цвета: синий, зеленый и красный, каждый из которых означает три типа срабатывания перехода: при простом завершении предыдущего задания - Завершение, в случае успешного завершения - Успех, а в случае возникновения ошибки при выполнение предыдущего задания - Ошибка. Все эти параметры вы можете увидеть, нажав правой кнопкой мыши на проведенную между заданиями стрелку. Таким образом, если нам надо, чтобы Перестроение индекса срабатывало только после успешного завершения задания Проверка целостности базы данных, мы должны связать их стрелкой. Нажав правой кнопкой мыши на стрелку, сменим ее режим на Успешно, как видим, ее цвет изменился на зеленый.
На данный момент мы имеем 3 созданных задания в нашем вложенном плане. Как вы могли заметить, задания Очистка процедурного кэша СУБД в панели элементов нету. Мы воспользуемся задачей Выполнение инструкции T-SQL. Перетащим ее в план, и щелкнем на ней два раза. Мы видим окно, в которое впишем следующее:
DBCC FREEPROCCACHE
Нажмем ОК. Далее стоит добавить задание задачу Резервное копирование базы данных. Так же щелкнув на добавленном задании, увидим опции настройки задания.
Здесь, исходя из поставленной задачи, выбираем полное резервное копирование, место, куда будем помещать архивы, а так же не забудем установить параметр Сжимать резервные копии.
Задача Очистка после обслуживания позволяет удалять устаревшие архивы. В нем мы можем установить место расположения архивов, а так же время, по истечению которого они будут удаляться.
Задача Очистка журнала производит удаление данных журнала, связанных с процессами резервного копирования, восстановления, планами обслуживания баз, а также с деятельностью агента SQLServer.
Таким образов в конце мы получим список последовательно выполняемых задач.
Сохранив план обслуживания, надо удостовериться в том, что на нашем сервер запущен Агент SQL Server. Для этого перейдем в Пуск - Все программы - Microsoft SQL Server 2008 - Средства настройки - Диспетчер конфигурации SQL Server. Перейдя на строчку Службы SQLServer, проверим, что служба Агент SQLServer находится в состоянии Работает и режим запуска выставлен в Авто.
В конце хотелось бы сказать о том, что использование задачи Перестроение индекса можно заменить или совместить с задачей Реорганизация индекса. Реорганизация индекса представляет собой инструмент для дефрагментации индексов. Для того что бы просмотреть какие операции требуются индексу, необходимо просмотреть физическую статистику индекса. Для этого правой кнопкой мыши нажмите на базу данных, перейдите в Отчеты - Стандартные отчеты - Физическая статистика индекса.
Следить за состоянием выполняемых операций вы можете из Управление - Планы обслуживания. Для этого в свойствах плана SRV1CTEST выберите Просмотр журнала. Так же можно просмотреть журнал, который ведет Агент MS SQL по этому заданию. Для этого перейдите на строку Агент MS SQL и в свойствах задания SRV1CTEST выберите Просмотр журнала.
Рано или поздно это случается. Посыпался рейд, админ случайно удалил базу, при восстановлении наложили базу на другую и т.д. и т.п, вообще, все те ситуации, для устранения последствий которых необходимо прибегнуть к мерам спасения, а точнее, к восстановлению из резервных копий. Сегодня мы поговорим о вариантах восстановления баз данных из резервных копий на 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 , имеющую простую модель восстановления. Процесс восстановления базы данных можно поделить на несколько тривиальных этапов:
- Создание базы данных с таким же именем, как и потерянная.
- Восстановление потерянной базы данных из резервной копии в созданную одноименную базу.
Создав одноименную базу данных (не забыв установить в ней нужную вам модель восстановлении и указав место хранения файлов .log и .mdf), откройте контекстное меню для всего дерева Базы данных и пройдите в Восстановить базу данных.
В открывшемся окне в Назначение для восстановления укажем В базу данных и выберем PingvinBuh, а в Источник для восстановления выберем С устройства и укажем путь к нашему архиву с БД PingvinBuh. Не забудем отметить выбранный архив галкой Восстановить в Выберите наборы резервных данных для восстановления.
Есть возможность так же выбрать желаемое время восстановление. Оно ограничено временем создания полной резервной копии. За это отвечает опция К моменту времени. Создав полную резервную копию, вы сможете восстановить базу данных на любой момент времени до момента создания этой резервной копии.
Перейдем на страницу Параметры.
В Параметрах восстановления укажем Перезаписать существующую базу данных (WITH REPLACE). Обратим внимание на возможность выбора места. Пути исходных файлов должны быть такие же, как и у новой созданной вами базы. Т.е. при восстановление мы просто запишем поверх этой пустой базы нашу потерянную. Состояние восстановления можно оставить по-умолчанию: Оставив базу данных готовой к использованию, выполнив откат незафиксированных транзакций.
После нажатия на OK мастер запустит восстановление базы данных из полной резервной копии. По окончанию процесса вы сможете воспользоваться базой.
Последовательность действий в процессе восстановления базы данных с полной моделью восстановления почти полностью аналогичная вышеописанному, но с небольшими дополнениями.
Для восстановления базы данных PolkaBuh на момент времени, прошедший после последнего резервного копирования требуется в Источник для восстановления указать архивы не только с последней полной резервной копией, но еще и архивы копии журнала транзакции (если они у вас не в одном архиве с полной резервной копией),а в поле Выберите наборы резервных данных для восстановления последовательно отметить полную резервную копию и все журналы транзакции, включающие интересующий вас момент времени.
Очень важная пометка: нельзя выбрать полую резервную копию и только последнюю копию журнала транзакции. Для восстановления до последней копии журнала транзакций необходимо иметь все предыдущие резервные копии журналов от последнего полного резервного копирования.
Галерея | Загрузить |