Настройка Microsoft SQL Server для 1С Предприятие (Maintenance Plans)

1 декабря, 2011 Рубрики: , HOWTO, Microsoft SQL, Windows

Доброго времени, гости и читатели блога k-max.name. Сегодня публикую небольшую мемори-записку о настройке Microsoft SQL 2005 для 1С Предприятия. Думаю для других нужд использования MS SQL данная статья тоже даст некоторую информацию. Итак, начнем…

Шаг 0. Перед установкой и настройкой MS SQL 2005 желательно иметь 3 физических диска. Один – для системы, второй – для файлов баз и третий – для журналов транзакций SQL. При этом, раздел для логов SQL и tempdb желательно чтобы был более производительным (например RAID 1+0).

Шаг 1. Установка сервера MS SQL

При установке SQL-сервера для работы с 1С достаточно следующих включенных компонентов (более подробно о компонентах Microsoft SQL тут, об установке серера тут):

выбор компонентов для установки MS SQL 2005 64bit На данном изображении:
Integration services – не обязательный элемент – необходим для управления пакетами SSIS (планами обслуживания (экспорт/импорт)), потом его можно будет отключить
Database Servises – собственно сам сервер СУБД
Client Component – Managment Tools – утилита управления

Остальные настройки при установке по Вашему вкусу. Единственный нюанс – необходимо правильно установить способ сортировки collate. Для автоматической и правильной работы необходимо в “Языке и региональных стандартах” операционной системы  выбрать “Русский”. В этом случае при установке SQL Server сам предложит правильную сортировку Cyrillic_General_CI_AS. Выбор режима проверки подлинности пользователей укажите смешанный (mixed). Остальные параметры всегда можно скорректировать после установки – 1С:Предприятие будет работать независимо от них.

Более подробно об установке (ахтунг – English):

Желательно обновить сервер MS SQL до актуального релиза (на текущий момент – SP4 для 2005 SQL). Кроме того, на многопроцессорных системах сервер Microsoft SQL 2005 может отказаться устанавливаться с ошибкой 1053 (The error is (1053) The service did not respond to the start or control request in a timely fashion). Решение этой проблемы описано тут.

Шаг 2. Настройка сервера Microsoft SQL 2005

2.1. Настройка протоколов подключения

Для настройки протоколов взаимодействия сервера и клиента Microsoft SQL необходимо запустить “SQL Server Configuration Manager”:

SQL Server Configuration Manager

…и  оставить для работы только протоколы TCP/IP и Shared Memory:

протоколы для MS SQL 2005

Если устанавливается версия MS SQL Express по-умолчанию выключен протокол TCP/IP, нужный для работы с 1С:Предприятие 8 – его необходимо включить. Протокол именнованных каналов (Named Pipe) выключите совсем (и для “клиента” тоже на сервере приложений).

2.2. Перенос tempdb на быстрый независимый массив/диски

Для переноса tempdb необходимо запустить  sql-скрипт примерно следующего содержания:

USE master
GO
ALTER DATABASE tempdb
modify file (NAME=tempdev, FILENAME='E:\Temp\tempdb_data.mdf')
GO
ALTER DATABASE tempdb
modify file (NAME=templog, FILENAME='E:\Temp\tempdb_log.ldf')
GO

где, E:\Temp\ – каталог, в котором будут лежать tempdb, а tempdb_data.mdf и tempdb_log.ldf имя файла базы данных и лога соответственно.

2.3. Настройка параметров сервера SQL

Для настройки сервера запускаем “SQL Server Management Studio”, подключаемся к установленному серверу Database Engine‘ом и открываем свойства (Server Properties). Тут нам нужно настроить 3 пункта:

Память (Memory)

Настройки памяти для MS SQLПараметр “Maximum server memory (in MB)” задает максимально отведенное серверу количество памяти из расчета: [Общее количество оперативной памяти сервера] [3ГБ под систему(1,5ГБ если Win2k3)][сколько_нужно ГБ * количество процессов работающих на данном сервере (если SQL еще какой-то важный сервис крутится на этом же сервере)]. Например, если у нас на сервере всего 24 ГБ оперативной памяти, стоит Windows 2003 и запущен сервер 1С Предприятия с 2мя процессами rphost (которым нужна память хотябы по 1,5Гб) то рассчет будет следующим: 24 – 1,5 – 1,5*2 = 19,5 ГБ ставит параметр “Maximum server memory (in MB)”. Это необходимо для того, чтобы sql-сервер рассчитывал на заданный объем и освобождал память заблаговременно, т.к. если поставить неограниченный объем, и сервер попробует получить память, которой нет, он начинает лезть в файл подкачки, что сильно замедлит работу.

Процессоры (Processors)

Настройка CPU для MS SQLМаксимальное количество потоков (Maximum worker threads) стОит регулировать только при большом количестве клиентов (более 255) и для 1С это не актуально, поэтому оставим по-умолчанию. (хотя некоторые утверждают обратное :) ).  Также выставляем галку повышенного приоритета сервера (Boost SQL Server priority).

Database Settings

Общие настройки баз данных MS SQLВ данном пункте можно настроить каталоги для файлов Данных и логов, чтобы новые базы данных создавались именно там.

2.4. Дополнительные “приседания”

Желательно просканировать СКЛ утилитой SQL Server 2005 Best Practices Analyzer и избавиться от ошибок и сообщений (как? и еще раз как?).

Шаг 3. Настройка рабочих баз данных Ms SQL

настройка рабочих баз данных MS SQLЕсли база еще не развернута из .dt файла, и вы знаете примерный ее размер, то первичному файлу размер инициализации лучше сразу указать больший или равный размеру базы, но это дело вкуса, он все равно вырастет при развертке до нужных размеров. А вот Автоувеличение (Autogrowth) размера надо обязательно указать примерно по 200 МБ на базу и по 50 МБ на лог (можно увеличить/уменьшить, в зависимости от размера конечной базы и наличия места на диске), т.к. значения по умолчанию – рост по 1МБ и по 10% очень сильно тормозят работу сервера, когда ему при каждой 3й транзакции надо файл увеличивать. В этом же параметре можно ограничить размер файла лога, чтоб сильно не разрастался, хотя это очень спорный параметр…

Остальные параметры можно оставить по умолчанию, за исключением некоторых:

Остальные опции базы данных 1C ПредприятиеНапример, параметр AutoShrink советуют отключить, ибо он приводит к постоянным скачкам размера лога. Лучше его держать в узде с помощью Планов обслуживания (они же Регламентные задания, они же Maintenance Plans).

Шаг 4. Настройка Планов обслуживания (Maintenance Plans, Регламентных заданий)

Создание Плана обслуживанияДля работы регламентных заданий необходимо создать план обслуживания:

Итак, приведу свой пример настроенного Maintenance Plans с комментариями. Мой план состоит из 5 подпланов:

Первый подплан (ежедневное еженочное обслуживание сервера и резервных копий):

 Создание плана обслуживания Ms SQL - первый подплан

Данный подплан состоит из нескольких шагов. Связи зеленого цвета задают переход к следующему заданию при удачном завершении (т.е. без ошибок), связи синего цвета задают переход к следующему заданию при любом результате выполнения текущего. Параметры шагов видны на размещенных в редакторе заданиях. Параметры некоторых заданий нужно описать отдельно. Первым шагом выполняется “Проверка целостности базы данных” (Check Database Integrity Task), которая выполняется для всех баз системы и следующие задания выполняются только при отсутствии ошибок при проверке баз. Следующим шагом выполняется “Перестроение индексов баз данных” (Rebuild Index Task) для всех баз данных сервера. Данная процедура довольно ресурсоемкая, но в последствии ускоряет работу базы, т.к. если фрагментированость индексов > 25%, это резко снижает производительность сервера. Если размер баз не позволяет выполнять данную задачу, т.к. она занимает много времени, то рекомендуется делать данное действие хотябы раз в неделю, при этом, на ночные задания заменить задачу Перестроение индексов баз данных (Rebuild Index Task) на Дефрагментацию индекса (Reorganize Index Task), которая менее  ресурсоемка. Далее происходит “Обновление статистики базы данных” (Update Statistics Task) для всех баз данных, опять же для оптимизации. После этого задания рекомендуется выполнить “Очистку процедурного кэша“:

DBCC FREEPROCCACHEПри этом, запускается процедура

DBCC FREEPROCCACHE

После оптимизации работы желательно сделать резервную копию журналов транзакций. Этот шаг делать не обязательно, но желательно.  Во время выполнения предыдущих шагов (Перестроение индексов баз данных (Rebuild Index Task) и Обновление статистики базы данных (Update Statistics Task)) файлы журналов вырастают примерно до размера базы данных, а то и более. В результате, в следующих подпланах при выполнении первого резервного копирования журнала транзакций, размер копии имеет довольно большой объем. Это может сильно увеличить вермя восстановления базы. Таким образом, делая копию логов до полной копии, мы избавляемся от данной проблемы. (спасибо за идею комментатору Kyoshiro)

создание резервной копии журнала транзакций MS SQL

Далее можно выполнить полный бэкап заданием Создание резервной копии базы данных (Back Up Database Task):

создание польной резервной копии MS SQLПри выполнении данного задания копии складываются в сетевую папку на файловом сервере с расширением bak, при этом, для каждой базы создается своя папка:

SAMBA ~ # ls -1 /backup/full/
database1
database2
...
SAMBA ~ # ls -1 /backup/full/satabase1/
database1_backup_201111210250.bak
database1_backup_201111220251.bak
...

После заверешения создания резервной копии параллельно запускается 3 задания: очистка резервных копий журналов транзакция (о создании таких копий – ниже) старее 5 дней, очистка полных бэкапов старее 1 недели и очистка истории старше 1 месяца (сюда входит в основном – очистка служебной информации MS SQL, такой как журналы):

очистка full backup Ms SQLДанный подплан у меня запускается каждую ночь в нерабочее время по будням:

задание расписания для Регламентного задания

Второй, третий, четвертый подплан (обновление статистики 3 раза в день):

Следующие 3 подплана одинаковы по содержимому и различаются лишь временем выполнения. Выполняются 3 раза в день – в 6, 13 и 19 часов:

Update Statistics для баз данных

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

Пятый подплан (резервное копирование журнала транзакций):

Данный план выполняет инкрементальное копирование транзакционного лога Microsoft SQL Server:

Резервное копирование логов MS SQLКопирование выполняется каждые пол часа в рабочее время и сохраняется в сеть с расширением trn:

Сохранение файлов журнала транзакций

После настройки данного плана мы имеем регулярное резервное копирование с необходимым регламентным обслуживанием, с хранением копий базы данных за последние 7 дней с возможностью восстановления базы интервалом до 30 минут.

Более подробно о выборе и планировании плана обслуживания можно посмотреть данный подкаст(временно убран по причине заражения сайта s.rpod.ru):

Шаг 5.  Траблешуттинг

Периодически необходимо анализировать фрагментированность индекса для снижения нагрузки. Для больших баз данных нужно уменьшать ненужные операции по дефрагментации тех индексов, для которых это не требуется. То есть дефрагментацию выполнять не для всей базы, а для избранных таблиц, например. Если значение avg_fragmentation_in_percent в этом столбце превышает 25%, то для восстановления исходных параметров производительности рекомендуется выполнить дефрагментацию/реиндексацию этого индекса. Чтобы просмотреть текущую фрагментированность, можно воспользоваться отчетом:

фрагментация индексов MS SQL Server

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

просмотр ошибок выполнения maintenance plan

 

FAQ MS SQL для 1С Предприятие

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

Q: Сегодня настроил SQL и создал план обслуживания. Все в точности по данной статье, но бэкапы не создаются. Почему? (ведь настроено создание бэкапов каждые 30 минут)
A: Потому что бэкапы каждые 30 минут создают копии журналов транзакций. Данный вид копий может создаваться только от полной копии. Соответственно, пятый подплан (бэкап лога транзакций) будет выполнен только после выполнения первого подплана и только после удачного выполнения шага полного бэкапа в первом подплане!!! Соответственно, выход из ситуации – дождаться выполнения первого подплана.

Q: Почему файл жарнала транзакций растет? Как от этого избавиться? Что делать?
A: Самый правильный выход из ситуации – увеличить раздел жесткого диска, на котором размещен файл журнала. Уменьшать размер файла с помощью операции shrink только вызовет лишние обращения сервера к жесткому диску. Сервер увеличивает размер этого файла до того размера, который ему необходим для выполнения транзакций. Соответственно, обрезав файл журнала мы заставляем SQL сервер лишний раз насиловать жесткий диск – снова увеличивая размер журнала при очередной ресурсоемкой транзакции. Данный нюанс я обсуждал в этой теме – советую перечитать ее. Есть еще выход – “если не очень сыкотно – можно перед ребилдом делать “финальный” бакап (можно только логов), ставить симпл модель, после ребилда – возвращать фулл рекавери и опять делать фулл бакап” отпять же отсюда (с).

Q: Почему не делается shrink для лога? многие советуют…
A: см предыдущий вопрос\ответ

Дополнительно почитать:

– обслуживание базы данных MS SQL (регламентные задания и резервное копирование) от мекрософт тут и тут.
установка MS SQL 2005
Лучшие советы по эффективному обслуживанию баз данных
Настройка почтовых уведомлений об ошибках выполнения плана MS SQL серера

Удачных Вам бэкапов :)

upd 2012.12.09: добавлен FAQ

С Уважением, Mc.Sim!




Теги: , ,

138 комментариев к “Настройка Microsoft SQL Server для 1С Предприятие (Maintenance Plans)”

  1. Sergio
    31 января, 2012 at 15:38
    1

    Спасибо за статью. Познавательно.
    Вот вопрос по “ночному бэкапу” у вас сначала выполняется проверка базы данных, потом переиндексация и очистка кэша. А не случается ли так что во время выполнения переиндексации происходит сбой? не лучше ли сразу после проверки выполнить бэкап? или есть какие-то другие беглонезримые основания для такой схемы?

    • 1 февраля, 2012 at 14:11
      2

      За статью пожалуйста.
      Проверка базы делается как раз для того, чтобы переиндексация не порушила поломанную базу. Если во время переиндексации произойдет сбой, то база продолжит работать, но без корректного индекса, что немного скажется на скорости и не более.
      При создании копий журнала транзакций я указал время с 8.00 до 23.59. А так же при условии что ночное обслуживание запускается в 00.30 – это позволит в случае каких-либо проблем с СУБД при ночном обслуживании откатиться как раз к моменту перед ночным обслуживанием.

      • Sergio
        1 февраля, 2012 at 16:53
        3

        Где то я читал что переиндексация вызывает неявную транзакцию и что в случае неудачи все состояние базы откатывается. Но в целом стретегия понятна.
        Вот еще вопрос, возможно покажется слишком наивным. Но я не могу понять в какой момент “обнуляется” лог транзакций?

        • 1 февраля, 2012 at 16:58
          4

          Лог транзакций обнуляется при завершении “Пятый подплан (резервное копирование журнала транзакций):” каждые пол часа.

          • Sergio
            1 февраля, 2012 at 17:35
            5

            Ага понятно и в это же время происходит создание контрольной точки. Так как очистка журнала подразумевает запись “грязных страниц” на диск.
            Спасибо за ответы.

            • 1 февраля, 2012 at 17:38
              6

              Пожалуйста! Приходите еще!

      • Sergio
        1 февраля, 2012 at 17:33
        7

        Еще вопрос, я не совсем понял процесс создания контрольных точек. Настройку частоты создания контрольных точек нужно выполнять через тот же Maintenance Plans? или же это параметр который задается где-то в настройках сервера?

        • 1 февраля, 2012 at 17:35
          8

          Что имеется ввиду под “контрольными точками”?

          • Sergio
            1 февраля, 2012 at 17:38
            9

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

            • 1 февраля, 2012 at 17:39
              10

              Ясно :)
              Об этом хорошо рассказано в видео-подкасте.

  2. Kyoshiro
    9 февраля, 2012 at 21:51
    11

    Спасибо за отличную статью.

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

    Второй вытекает из первого – если я восстановлю полный бэкап (который после переиндексации), а следом восстановлю лог, сервер ведь не будет производить все операции, что записаны в логе?

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

    • 10 февраля, 2012 at 16:30
      12

      C большим размером лога я тоже столкнулся. Но после долгах обсуждений на форумах – оставил как есть.
      Как вариант мне посоветовали – перед переиндексацией делать “финальный” бакап (можно только логов), ставить Simple модель в базе данных, после переиндексации – возвращать Full и опять делать полный бэкап.
      Но что-то я побоялся ставить эксперименты с переключением режимов восстановления и оставил как есть.
      По второму вопросу – сервер будет делать все, что описано в логе, ибо переиндексация – логируемая операция.
      Если под словом “снимать” имеется ввиду – пропускать/удалять лог, то восстановление последующих логов будет невозможно.

      • Kyoshiro
        10 февраля, 2012 at 21:16
        13

        “Снимать”, в данном случае – делать бэкап.

        Как это делать всё? Бэкап же сделан после переиндексации. Как он может всё заново сделать? Я думал там метки какие-то и скуль относительно них накатывает лог, т.е. ищет в логе место, которое после бэкапа, и оттуда начинает проводить операции.

        • 10 февраля, 2012 at 22:39
          14

          Хм… А ведь действительно, во время полного бэкапа создается контрольная точка… И теоретически после полного бэкапа – бэкап лога должен быть минимален.
          На следующей недели попробую выполнить Вашу идею:

          перед полным бэкапом снимать бэкап лога, тогда следующий лог будет маленьким, соответственно мы сможем быстрее восстановиться из бэкапа. Я правильно мыслю?

          • Kyoshiro
            10 февраля, 2012 at 23:27
            15

            И теоретически после полного бэкапа — бэкап лога должен быть минимален.

            Я был очень удивлён, когда это оказалось не так.

            • 14 февраля, 2012 at 21:19
              16

              Дополнил статью еще одним шагом обслуживания. Спасибо за идею, Kyoshiro!

    • Sergio
      10 февраля, 2012 at 16:31
      17

      Мне кажется ты делаешь дописываюший лог транзакций, попробуй поменять на перезапись(overwrite).

      • 10 февраля, 2012 at 17:17
        18

        можно об этом поподробней?

        • Sergio
          13 февраля, 2012 at 09:15
          19

          При создании задания резервного копирования лога, если выбирать сохранение в один или более файлов, есть опция “если файл резеврной копии существует – if backup file exist” и действия “дописывать – append” или “перезаписывать – overwrite”.
          Я лично не обратил на этот пункт никакого внимания, но после того как увидел размер лога, начал было суетится и решил отключить резервную копию этого лога, потом обратил внимание на эту опцию, выбрал перезапись и размер лога стал более вменяемый.

          • 13 февраля, 2012 at 12:50
            20

            Это при создании копии “на устройство”, а в моем примере создается копия в сетевой каталог, поэтому нет такой опции.

            • Sergio
              13 февраля, 2012 at 13:09
              21

              Да в твоем случае каждый бэкап делается в отдельный файл. А вот как у Kyoshiro это делается?

              • Kyoshiro
                13 февраля, 2012 at 21:42
                22

                У меня тоже на сетевую шару.

  3. Ren
    24 февраля, 2012 at 13:27
    23

    Отличная статья, оч познавательно.
    Поделитесь, каким образом вы боретесь с фрагментацией бд?.
    У меня три базы, в двух из них фрагментация не превышает 2%, а с третьей базой (торговля), просто беда. Фрагментация растет и уже составляет 67%. План обслуживания проходит без ошибок, в конфигураторе 1с тоже выполнял все нужные операции, а воз и ныне там. :(

    • 24 февраля, 2012 at 14:00
      24

      Давайте определимся о чем мы говорим? Что есть “Фрагментация бд” в вашем вопросе?
      Имеется ввиду фрагментация индекса?

      • Ren
        24 февраля, 2012 at 14:05
        25

        Именно о ней идет речь

        • 24 февраля, 2012 at 14:21
          26

          Дефрагментация в моем случае не делается. НО при ночном обслуживании делается “Перестроение индексов баз данных” (Rebuild Index Task). То есть весь индекс полностью удаляется и создается по новой. По идее он должен создаваться без фрагментации, но тем не менее, на некоторых таблицах в базе данных 1С торговли у меня фрагментация индекса зашкаливает. Но в целом, производительность не падает, даже при зашкаливающих процентах фрагментации на некоторых таблицах. Например, dbo._AccumRg5048 фрагментация некоторых индексов 50%, в dbo._AccumRg7072 – 88% ну и т.д.

          • Ren
            24 февраля, 2012 at 14:37
            27

            Аналогично, с производительностью проблем нет, просто хотелось довести до “идеала”. Спасибо за конструктивный ответ.

            • 24 февраля, 2012 at 14:42
              28

              Пожалуйста! Буду рад Вас видеть снова тут.
              Если найдете решение, которое доведет до идеала – буду благодарен и внесу в статью :)

  4. Sever
    1 марта, 2012 at 16:03
    29

    Добрый день.
    Цитирую:MS SQL 2005 желательно иметь 3 физических диска. Один – для системы, второй – для файлов баз и третий – для журналов транзакций SQL.

    А если у меня 8 дисков – все в рейде 10,разделены на 3 логических диска.Даст ли какой-нибудь прирост разнесение данных и логов на разные лог.диски?

    • 1 марта, 2012 at 16:45
      30

      Если на 3 логических разбит силами венды, то прирост производительности очень спорный, а если силами RAID разбит на LUN, то прирост будет, но все же лучше разделить их на раздельные RAID.

  5. Евгений
    18 апреля, 2012 at 10:16
    31

    Mc.Sim, а размер лога в настройках базы данных ограничивать стоит или нет?
    и ещё вопрос, модель восстановления у вас полная стоит?

    • 18 апреля, 2012 at 11:14
      32

      Думаю, что в ограничении смысла большего – нет. Т.к. если лог захочет вырасти больше ограниченного размера, то выдаст пользователям ошибку, чтоо размер лога ограничен и выкинет пользователя.
      модель восстановления установлена Full. На скриншоте это видно: https://www.k-max.name/wp-content/uploads/2011/11/SQL-server-options-database.png

  6. Денис
    24 апреля, 2012 at 10:32
    33

    Привет!

    Столкнулся с проблемой бэкапа логов, он не хочет делать без фулл бэкапа. Это можно как то обойти?

  7. Алексей
    1 июня, 2012 at 10:40
    35

    есть большой и важный вопрос. нужен человек хорошо понимающий защиту базы 1с с помощью SQL и как ее обойти. возможен заработок) скайп vzlom1cSQL

    • 4 июня, 2012 at 16:55
      36

      в MSSQL не глубоко силен…

  8. sisdba
    12 июля, 2012 at 00:02
    37

    Видео-подкасте неработает.

    • 14 июля, 2012 at 01:26
      38

      Да, действительно… Может поправят со временем…

  9. Юрий
    30 июля, 2012 at 17:59
    39

    Спасибо за статью *THUMBS UP* . Хочу настроить план обслуживания. Но не знаю, как уменьшить файл транзакций. В настоящее время при размере базы 53Гб, файл транзакций занимает 175Гб. Выполняется ежедневное полное копирование базы. Копии добавляются в резервный набор. + ещё вопрос: Хоть в параметрах и стоит, что действие резервного набора истекает через 2 дня, но он он всё равно пополняется, пока не забъёт весь диск. Есть информация по настройке резервного копирования с использованием резервных наборов или этим лучше не пользоваться?

    • 30 июля, 2012 at 19:42
      40

      175 Гб для лога такой базы – довольно нормальный размер, особенно если обрабатываются большие таблицы из базы. С резервным набором дела иметь не приходилось, поэтому вряд ли подскажу…
      И под рукой sql пока, к сожалению, нет (

    • Kyoshiro
      31 июля, 2012 at 10:25
      41

      Как вариант – бэкапить логи каждый час (или чаще).

    • 31 июля, 2012 at 18:14
      42

      А чем не устраивает тот метод, который я в статье описал?

      • Юрий
        10 сентября, 2012 at 22:34
        43

        Большое спасибо! Настроил план обслуживания по предлагаемой схеме, но лог был 175Гб и меньше не стал (размер базы 60Гб). Пробовал в ручную выставить размер лога в свойства базы – ставлю 50Гб, но он автоматически меняется 110Гб. Есть подозрение на незавершенные транзакции. Как в этом убедиться и как избавиться?

        • 11 сентября, 2012 at 12:10
          44

          Доброго времени, Юрий!
          Уменьшать размер лога крайне не рекомендуется. Это скажется на производительности. MS SQL использует лог такого размера, который ему необходим для работы.
          Тут выход только использовать simple модель, вместо full логирования.

          • Юрий
            18 сентября, 2012 at 09:14
            45

            Лог продолжает расти и уже мешает выполнению плана обслуживания (недостаточно места на диске). У меня MSSQLSRV2008. Нашел следующий способ обрезки физического файла транзакций:
            USE ИмяБазы
            ALTER DATABASE ИмяБазы SET RECOVERY SIMPLE
            DBCC SHRINKFILE (ИмяФайлаЛога, ЖелаемыйРазмер);
            ALTER DATABASE ИмяБазы SET RECOVERY FULL
            Пробовал – работает. Что думаете, добавить как выполнение инструкции T-SQL в план обслуживания? Напр. после бэкапа лога, перед бэкапом баз???

            • 18 сентября, 2012 at 11:28
              46

              Добрый день, Юрий.
              На Вашем месте я бы добавил еще жестких дисков.
              В данной теме (http://www.sql.ru/forum/actualthread.aspx?tid=859632) я обсуждал похожую проблему. Для интереса можно почитать.
              В целом, вам предложенное решение – вполне себе решение, но опасное.
              Туда-сюда (SIMPLE – FULL) переключать режим базы данных – можно все порушить ).
              ДА и смысл FULL модели восстановления при выполнения данного скрипта несколько размывается.

        • человек
          17 апреля, 2013 at 13:31
          47

          Лично я решаю проблему больших логов так – не даю им разростаться бесконтрольно. Не ограничиваю размер лога – это тупо, просто перестанет работать база. Делаю регулярный бекап логов (например каждые 5-60 минут). Бекап логов их урезает. Он конечно размер файла логов менять не будет :). Но и расти лог перестанет. Так как если файл лога скажем 1 гиг, но после бекапа логов данных там остается 10 метров, то к следующему бекапу логов их обьем до 1 гига просто не доростает, и опять обрезается бекапом лога. Таким образом файл лога определяется на какой-то отметке и потом просто не увеличивается.
          Варианты с доп винтами и сменой модели бекапарования по моему мнению от невозможности найти другие решения :).

  10. Александр
    28 августа, 2012 at 14:00
    48

    Большое спасибо за статью!
    позвольте задать дополнительные вопросы по настройве SQL Server:
    1) под какими пользователями должны запускаться службы SQL server
    2) как настроить возможность резервного копирования в сетевые папки

    спрашиваю потому как есть проблемы с сетевыми доступами (в/из сервера)

    • 6 сентября, 2012 at 20:03
      49

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

  11. Anonim2005
    25 сентября, 2012 at 13:22
    50

    Спасибо за статью – оч полезная инфа, только вот проблема с бэкапами…. сделал все как вы описали, только бэкапы не делаются никакие…. папки создались, отчеты пишуться а бэкапов нет, хотя пишет что бэкап прошел успешно

    • 25 сентября, 2012 at 13:31
      51

      Сколько времени прошло с момента создания плана?

      • Anonim2005
        25 сентября, 2012 at 13:36
        52

        больше дня, нажимаю execute на плане бэкапа – ничего не происходит, и чтото не дошло как делать подплан, точнее как его создать

        • 25 сентября, 2012 at 13:47
          53

          Подожди сутки. Я думаю, что пока у тебя не выполнится полный бэкап – ничего не появится в каталогах.
          План создается кликом правой кнопкой мыши на подраздел Maintenance Plans в разделе Management. И выбрать Create (если я не ошибаюсь…)

          • Anonim2005
            25 сентября, 2012 at 13:55
            54

            Спасибо, подождем день-два, будем посмотреть) а вот создать подплан так и не нашел(

          • Anonim2005
            25 сентября, 2012 at 13:56
            55

            и мне не план надо создать, а подплан))))

            • 25 сентября, 2012 at 14:02
              56

              подпланы MS sql

              • Anonim2005
                25 сентября, 2012 at 14:15
                57

                Спасибо, будем смотреть)

              • Anonim2005
                25 сентября, 2012 at 14:16
                58

                только чтото нету у меня таких кнопочек(((

              • 25 сентября, 2012 at 14:24
                59

                скриншот в студию.

              • Anonim2005
                25 сентября, 2012 at 14:58
                60
              • 25 сентября, 2012 at 15:03
                61

                Ох как интересно… А что за версия SQL? 2000?

              • Anonim2005
                25 сентября, 2012 at 15:12
                62

                да нет, 2005

              • 25 сентября, 2012 at 15:24
                63

                А что показывает меню Help – About?

              • Anonim2005
                25 сентября, 2012 at 15:33
                64

                2005й пишет

                Microsoft SQL Server Management Studio 9.00.1399.00
                Microsoft Analysis Services Client Tools 2005.090.1399.00
                Microsoft Data Access Components (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
                Microsoft MSXML 2.6 3.0 5.0 6.0
                Microsoft Internet Explorer 8.0.6001.18702
                Microsoft .NET Framework 2.0.50727.3634
                Operating System 5.2.3790

              • 25 сентября, 2012 at 15:37
                65

                А натяни ка ты себе SP4 http://www.microsoft.com/en-us/download/details.aspx?id=7218

              • Anonim2005
                25 сентября, 2012 at 15:57
                66

                надо попробывать будет, сервак перегружать не надо будет? ато у меня народ в 1Ске висит))))

              • 25 сентября, 2012 at 16:15
                67

                Перегружать будет нужно. Мало того, не один раз. Возможно, потребуется установка SP1, SP2, SP3 последовательно перед SP4.

            • Anonim2005
              25 сентября, 2012 at 16:17
              68

              эмммм, до 3 СП включительно у меня все стоит. Значит вечером буду пробывать ставить и эксперементировать)

              • 25 сентября, 2012 at 16:33
                69

                Версия 9.00.1399.00 – это версия без сервис паков.
                Возможно, что просто установлена Management Studio старая…
                Новую можно взять с дистрибутива MS SQL SP4.

  12. Anonim2005
    2 октября, 2012 at 12:11
    70

    Спасибо, заработало))) делает бэкапы каждую ночь))))

  13. Михаил
    5 октября, 2012 at 11:41
    71

    Всё настроил по инструкции ,но бэкапов нет, можно ли расчитывать на Вашу помощь по удаленному доступу к нашему серверу? Вохможно таким способом можно сэкономить кучу времени.

    • 5 октября, 2012 at 11:56
      72

      Сколько времени прошло после создания планов обслуживания?

  14. Михаил
    5 октября, 2012 at 13:44
    73

    Начало плана обслуживания поставили на 1 ночи, прошло уже 13 часов с указанной даты.

    • 5 октября, 2012 at 20:05
      74

      Первые копии будут созданы только после выполнения первого полного резервного копирования.

  15. Anonim2005
    15 октября, 2012 at 18:08
    75

    вопрос следующий, не делает бэкап транзакций…..
    вот репорт:

    Microsoft(R) Server Maintenance Utility (Unicode) Version 9.0.1399
    Report was generated on “SERVER”.
    Maintenance Plan: MaintenancePlan
    Duration: 00:00:00
    Status: Warning: One or more tasks failed..
    Details:
    Back Up Database (Transaction Log) (SERVER)
    Backup Database on Target server connection
    Databases: All databases
    Type: Transaction Log
    Append existing
    Task start: 10.09.2012 16:11.
    Task end: 10.09.2012 16:11.
    Failed:(-1073548784) Executing the query “BACKUP LOG [model] TO DISK = N’D:\\Backup\\Transact\\model\\model_backup_201210091611.trn’ WITH NOFORMAT, NOINIT, NAME = N’model_backup_20121009161146′, SKIP, REWIND, NOUNLOAD, STATS = 10
    ” failed with the following error: “BACKUP LOG cannot be performed because there is no current database backup.
    BACKUP LOG is terminating abnormally.”. Possible failure reasons: Problems with the query, “ResultSet” property not set correctly, parameters not set correctly, or connection not established correctly.

    Command:EXECUTE master.dbo.xp_create_subdir N”D:\Backup\Transact\master”
    GO
    EXECUTE master.dbo.xp_create_subdir N”D:\Backup\Transact\model”
    GO
    EXECUTE master.dbo.xp_create_subdir N”D:\Backup\Transact\msdb”
    GO
    EXECUTE master.dbo.xp_create_subdir N”D:\Backup\Transact\AdventureWorksDW”
    GO
    EXECUTE master.dbo.xp_create_subdir N”D:\Backup\Transact\AdventureWorks”
    GO
    EXECUTE master.dbo.xp_create_subdir N”D:\Backup\Transact\WORK”
    GO
    BACKUP LOG [model] TO DISK = N”D:\Backup\Transact\model\model_backup_201210091611.trn” WITH NOFORMAT, NOINIT, NAME = N”model_backup_20121009161146”, SKIP, REWIND, NOUNLOAD, STATS = 10

    • 16 октября, 2012 at 10:58
      76

      А сейчас?

      • Anonim2005
        16 октября, 2012 at 12:14
        77

        Тож самое

        • 18 октября, 2012 at 08:24
          78

          Ну вообще, в логе сообщение “BACKUP LOG cannot be performed because there is no current database backup.” говорит о том, что бэкап лога не может быть выполнен, т.к. не выполнен бэкап базы данных. Нужно смотреть, что за ошибка при полном бэкапе и выполнился ли он вообще…

          • anonim2005
            30 ноября, 2012 at 18:53
            79

            Через пару дней все начало делаться нормально, бэкап баз делался а вот транзакций нет, и почемуто проходит неделя и все – план не работает.

            Заново создал план. Будем смотреть. Просто раньше стояло почемуто target server connection, а не Local, может быть проблема была в этом?

            • 2 декабря, 2012 at 19:18
              80

              А что в логах было, когда бэкап не выполнялся?

              • anonim2005
                3 декабря, 2012 at 11:12
                81

                ничего не было – писало что все прошло усчпешно. сейчас бэкап не делается….
                Сейчас пишет при нажатии Execute следующие:
                Execute Maintenance Plan

                – Execute maintenance plan. Service (Error)
                Messages
                * Execution failed. See the maintenance plan and SQL Server Agent job history logs for details.

                ——————————
                ADDITIONAL INFORMATION:

                Execution failed. See the maintenance plan and SQL Server Agent job history logs for details. (SqlManagerUI)

              • 9 декабря, 2012 at 15:09
                82

                приветствую, anonim2005.
                SQL нам как бы намекает, посмотреть лог выполнения задания для большей информации “See the maintenance plan and SQL Server Agent job history logs for details.”. ))
                Покажите скриншот лога выполнения заданий плана обслуживания. еще можно настроить уведомления от SQL сервера.
                Чтобы вручную на отслеживать ошибки.

  16. Сергей
    3 декабря, 2012 at 01:14
    83

    А почему Вы нигде и никогда не делаете шринк базе?
    Советуют что надо делать, только не могу понять куда его втавить в ваш план обслуживания (ночной субплан)?

    • 9 декабря, 2012 at 15:04
      84

      Приветствую, Сергей.
      Добавил FAQ – там ответ.

  17. igor
    6 декабря, 2012 at 14:39
    85

    Спасибо за интересную статью!
    Но есть вопрос по разрастающемуся лог файлу.
    Он растет в одном из первых 3 заданий (Первый подплан (ежедневное еженочное обслуживание сервера и резервных копий))
    Что делать?

    • 9 декабря, 2012 at 15:05
      86

      igor, добавлен FAQ содержащий ответ.

  18. ДимДим
    16 мая, 2013 at 18:45
    87

    День добрый. Спасибо за интересную и полезную статью!

    Установлен SQL 2008 r2. При создании данного плана ночью создались фуллы, а у транзакций только папки с названиями баз. Однако, днем “поперло”. Но вместо ожидаемого ежеполу-часно подрастающего файла обнаружил кучу мелких. С чем окромя радиуча кривизны рук может быть связано? :) На кошках всё работало (30 минутку там не использовал).

    Вопрос номер два – почему не используем проверку полученных бэкапов?

    • 17 мая, 2013 at 14:29
      88

      ДимДим,
      приветствую.
      > ожидаемого ежеполу-часно подрастающего файла
      ожидания были не верны. )))
      Для каждого архива создается отдельный файл. Мне это было удобно, тк.к позволяет визуально контролировать количество, объем и время созданных бэкапов.
      > почему не используем проверку полученных бэкапов?
      дабы не создавать лишнюю нагрузку на сеть, диски и СУБД. Ну и я не совсем могу представить ситуацию, когда архив может получиться битым…

  19. Fakir
    10 августа, 2013 at 22:24
    89

    А почему после Ребилда индексов не уменьшается их процент фрагментированости?

    процент смотрю при помощи кода:

    DECLARE @db_id SMALLINT;
    SET @db_id = DB_ID(N'BASE_NAME');
    SELECT * FROM sys.dm_db_index_physical_stats (@db_id, NULL, NULL, NULL, NULL) ORDER BY avg_fragmentation_in_percent ASC;
    GO

    ЗЫ отчет не работает, т.к. уровень совместимости базы, 2000.

    • 16 августа, 2013 at 14:41
      90

      мне тоже был интересен ответ на этот вопрос )
      Почему-то на моей базе, по которой писал данную статью изначальный процент фрагментированности был около 60-70%. После обслуживания стал около 23-25% и ниже не снижался. Скорей всего это вопрос к разработчикам 1С.

  20. Алексей
    3 декабря, 2013 at 10:21
    91

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

    Источник: Задача “Перестроение индекса” Выполнение запроса “USE [buh] “.: 0% завершено Конец выполнения Выполнение: 2013-12-03 00:04:51.22
    Источник: Задача “Перестроение индекса” Выполнение запроса “ALTER INDEX [_Acc16_ByField480_SR] ON [dbo].[_Acc1…”.: 0% завершено Конец выполнения Выполнение: 2013-12-03 00:04:51.22
    Источник: Задача “Перестроение индекса” Выполнение запроса “USE [buh] “.: 0% завершено Конец выполнения Выполнение: 2013-12-03 00:04:51.22
    Источник: Задача “Перестроение индекса” Выполнение запроса “ALTER INDEX [_Acc16_ByOrder_SR] ON [dbo].[_Acc16] …”.: 0% завершено Конец выполнения Выполнение: 2013-12-03 00:04:51.22
    Источник: Задача “Перестроение индекса” Выполнение запроса “USE [buh] “.: 0% завершено Конец выполнения Выполнение: 2013-12-03 00:04:51.23
    Источник: Задача “Перестроение индекса” Выполнение запроса “ALTER INDEX [_Acc16_ByParentCode_RSR] ON [dbo].[_A…”.: 0% завершено Конец выполнения Выполнение: 2013-12-03 00:04:51.23
    Источник: Задача “Перестроение индекса” Выполнение запроса “USE [bu… Не удалось выполнить п… Шаг завершился с ошибкой.

    • 3 декабря, 2013 at 11:29
      92

      Добрый день.
      К сожалению, не видно полного текста сообщения.

  21. Ольга
    13 января, 2014 at 00:24
    93

    Добрый день! У меня база mdf 26Г, а логи 279Г.Модель базы полная.Ежедневное сохранение. Размер bak файла 34Г. И вот после последнего обновления конфигурации базы архив вырос до 92Г. Встречались ли Вы с таким и как справиться, как посмотреть что такое лишнее добавляется в bak файл? В содержании архива вижу только свою базу. Да сохраняем Backup with init,nounload. Спасибо за ответ

    • 17 января, 2014 at 15:24
      94

      Вероятно, при обновлении конфигурации 1С произвела какие-то манипуляции по резервированию таблиц БД. Как вариант, можно выгрузить базу силами 1С в md файл и попробовать импортировать в новую созданную чистую базу. Теоретически, размер должен уменьшиться.

  22. Ольга
    29 января, 2014 at 15:35
    95

    Добрый день! Размер файлов базы и файла транзакции mdf и ldf вообще не меняется, т.к. базу перенесла на отладочный сервер,а размер сохраняемого bak файла катастрофически растет, при базе 26Г и файл транзакций 289Г, размер full buckup -179Г.Уже перестраивала средствами 1С таблицы, выгружала базу, загружала, увеличение размеров buckup идет еще интенсивнее. Просто катастрофа!

    • 12 февраля, 2014 at 15:42
      96

      Думаю, что это говорит лишь о том, что клиенты довольно интенсивно работают с базой. Когда я администрировал 1С порядок цифр был примерно таким же… база – 40, логи – 300. при этом, выгруженный dt файл был около 2Гб. Вообще, пользуйтесь архиватором. Логи особенно хорошо жмутся.

  23. Михаил
    4 февраля, 2014 at 07:36
    97

    Добрый день!
    Нашел вашу статью уже после того как сам сделал план заданий.
    Вкратце – sql 2008 r2;
    Создал два плана, перед этим обрезав лог:
    В воскресенье в 2 ночи делается Обслуживание – ЧекДБ, Перестройка индекса – Обновление статистики – DBCC FREEPROCCACHE – (уже отсюда скопировал – Копия журнала) – Очистка журнала и удаление старых баков
    Также в воскресенье в 12 ночи делается полный бак; раз в день в 12 ночи (кроме вск) – дифференцированный бак; и раз в час по будням – бак журнала.
    Так вот после операции Обслуживания (в 2 ночи) лог вырос в 10 раз (местами и больше mdf). И при дальнейших снятиях баков не уменьшается. Подскажите что в таком случае делать? По всем прочитанным статьям лог должен был урезаться – но не уменьшился ни разу

  24. 12 февраля, 2014 at 16:06
    98

    ВНИМАНИЕ!
    Для всех, задающих вопросы про логи, я специалоно выделил красным в FAQ:
    Q: Почему файл жарнала транзакций растет? Как от этого избавиться? Что делать?
    A: Самый правильный выход из ситуации – увеличить раздел жесткого диска, на котором размещен файл журнала. Уменьшать размер файла с помощью операции shrink только вызовет лишние обращения сервера к жесткому диску. Сервер увеличивает размер этого файла до того размера, который ему необходим для выполнения транзакций. Соответственно, обрезав файл журнала мы заставляем SQL сервер лишний раз насиловать жесткий диск – снова увеличивая размер журнала при очередной ресурсоемкой транзакции. Данный нюанс я обсуждал в этой теме – советую перечитать ее. Есть еще выход – “если не очень сыкотно – можно перед ребилдом делать “финальный” бакап (можно только логов), ставить симпл модель, после ребилда – возвращать фулл рекавери и опять делать фулл бакап” отпять же отсюда (с).

  25. Ольга
    13 февраля, 2014 at 23:15
    99

    Добрый день! Пробую задать вопрос еще раз. Файл базы и файл логов растет очень медленно, но оно и понятно были праздники и народ почти не работал. НО!!! Архивирование базы едет ежедневно. так вот файл бак растет гараздо быстрее файлов лога и базы. Выгружаю ,базу в DT, загружаю в новую базу и все класс, bak файл размером с MDF и файл логов не растет. Модель базы SIMPLE. Странно, неужели с этим никто не сталкивался? Я уже предпологаю, что несмотря на то, что у меня при архивировании в BAK, стоит INIT, где глюк в SQL server и он делает NOINIT, но я бы это наверно видела при просмотре содержимого архива. Спасибо

    • 14 февраля, 2014 at 11:24
      100

      Ольга, покажите полную команду (Transact-SQL) для создания архива?

  26. Ольга
    16 февраля, 2014 at 13:19
    101

    ДОБРЫЙ ДЕНЬ! Команда архивации сама простая, может Вы увидете увидите что не так…
    osql /Q “BUCKUP DATABASE [TTT] TO DISK= N’E:\TTT.BAK’ WITH INIT, NOUNLOAD, NAME=N’TTT BACKUP’,NOSKIP,STATS=10,NOFORMAT” /U SA /P 12345

    • 4 марта, 2014 at 13:42
      102

      Есть несколько вопросов:
      1. зачем указан NOUNLOAD? Это же параметр для лент?
      2. Кроме BUCKUP DATABASE у вас выполняется BACKUP LOG?
      3. Какая версия сервера SQL?

  27. Ольга
    4 марта, 2014 at 13:50
    103

    Добрый день! Nounload это вроде действительно лишнее, но как бы не должно мешать. а сохранение логов не делаем, но дело в том, что размер файла лога не меняется, вернее меняется ,но незначительно, т.к.модель Simple а размер архива BAK увеличивается на несколько ГБ ежедневно. спасибо за внимание к вопросу

    • 4 марта, 2014 at 14:12
      104

      Дополнительно для будущей оптимизации, Microsoft рекомендует (http://technet.microsoft.com/ru-ru/library/ms162806(v=sql.100).aspx) вместо osql использовать sqlcmd.
      Если я правильно понял конечную задачу: иметь последнюю копию базы в файле E:\TTT.BAK и при следующем архивировании перезаписывать имеющуюся копию новой (независимо от заголовков и времени устаревания существующей резервной копии). Могу порекомендовать следующий набор параметров.
      BUCKUP DATABASE [TTT] TO DISK= N’E:\TTT.BAK’ WITH INIT, NAME=N’TTT BACKUP’,STATS=10,FORMAT» /U SA /P 12345

    • 4 марта, 2014 at 14:17
      105

      Ну или оставить имеющийся набор параметров без nounload, но добавить EXPIREDATE = ‘date’ или RETAINDAYS = days. Которые укажут, сколько времени хранить созданную копию.

  28. Ольга
    4 марта, 2014 at 13:52
    106

    Да, сервео 2008, только нет обновления

    • 4 марта, 2014 at 15:08
      107

      Ольга, оба Ваши комментария опубликованы. Видимо страница у вас из кеша загружалась. Выше, я написал свои рекомендации.

  29. Ольга
    4 марта, 2014 at 15:35
    108

    Прочитала Ваши комменты через RSS. попробую. Меня только смущает FORMAT. Команда не начнет форматировать весь носитель? мы архивируем на тот же диск, где и база и только потом переносим архив. Спасибо

    • 4 марта, 2014 at 22:18
      109

      Я сам не пользовался форматом, но на сколько я понял, данная опция очищает именно E:\TTT.BAK.
      Если страшно, то можно следовать этому совету:

      Ну или оставить имеющийся набор параметров без nounload, но добавить EXPIREDATE = ‘date’ или RETAINDAYS = days. Которые укажут, сколько времени хранить созданную копию.

      В таком случае INIT должен отработать корректно.

  30. Aidar
    25 марта, 2014 at 11:09
    110

    возможно “Второй, третий, четвертый подплан (обновление статистики 3 раза в день)” можно было совместить в одном подплане – в расписании выставить – выполнять каждые 6 часов в период с 7:00 до 20:00

    • 26 марта, 2014 at 00:23
      111

      Да, вполне.
      Но мне удобней явно задать время, т.к. оно выпадает на минимальную нагрузку на базу.

  31. Aidar
    27 марта, 2014 at 09:49
    112

    при попытке воспользоваться отчетом (шаг 5) выходит ошибка
    Error:
    Incorrect syntax near ‘(‘.
    прошу подсказать с чем это связано.

    • 27 марта, 2014 at 21:02
      113

      Увидеть бы скриншот ошибки…
      Могу предположить, что у вас не соответствует версия SQL Server Management Studio и SQL сервера.

  32. Aidar
    31 марта, 2014 at 09:41
    114

    скриншот ошибки – https://drive.google.com/file/d/0B1uhKDMeGeb1anEwSjhFOXlQckk/edit?usp=sharing

    версия
    Microsoft SQL Server Management Studio 9.00.5000.00
    Microsoft Analysis Services Client Tools 2005.090.5000.00
    Microsoft Data Access Components (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
    Microsoft MSXML 2.6 3.0 5.0 6.0
    Microsoft Internet Explorer 8.0.6001.18702
    Microsoft .NET Framework 2.0.50727.3655
    Operating System 5.2.3790

    • 24 июня, 2014 at 19:24
      115

      Aidar, проблема еще актуальна?

  33. Aidar
    24 июня, 2014 at 19:29
    116

    да, еще актуальна

    • 24 июня, 2014 at 21:22
      117

      Тогда, кроме версии Microsoft SQL Server Management Studiо, покажите версию самого SQL сервера?

  34. Aidar
    30 июня, 2014 at 13:25
    118

    Microsoft SQL Server 2005 – 9.00.5000.00 (Intel X86) Dec 10 2010 10:56:29 Copyright (c) 1988-2005 Microsoft Corporation Workgroup Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

    • 3 июля, 2014 at 19:11
      119

      Даже затрудняюсь что-либо сказать… В таких случаях говорят – попробуйте переустановить ОС )))
      А если серьезно, можно попробовать спросить на форуме sql.ru.
      Но в целом, я склоняюсь к ошибке при установке либо managment studio, либо самого SQL сервера.

  35. art
    24 июля, 2014 at 12:35
    120

    Клиент-сервер 1С. Windows server 2012. SQL server 2012. Возникает проблема конфликт блокировок и не дает проводить документы, помогает только рестарт сервера 1С. В журнале windows пишет что Система Windows обнаружила, что файл регистра используется другими приложениями или службами. Связано это с увеличение лог файла? Сама База 4 гига, лог около 50 гигов.

    • 7 августа, 2014 at 08:48
      121

      Это связано с недостаточной производительностью вашего сервера.

  36. Игорь
    31 июля, 2014 at 22:35
    122

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

    • 7 августа, 2014 at 09:21
      123

      Здравствуйте.
      В данной статье как раз рассматривается сохранение резервных копий на сетевой диск.
      Точнее будет сказать – в сетевую папку.

      • Михаил
        31 октября, 2014 at 12:44
        124

        Здравствуйте. Подскажите пожалуйста чайнику))
        В журнале приложений выскакивает часто сообщение: “Автоматическое увеличение размера файла “Base1C2011_log” в базе данных “BASE1C” было отменено пользователем или истек период его ожидания после 15569 миллисекунд. Командой ALTER DATABASE установите меньшее значение FILEGROWTH для этого файла или явно задайте его новый размер”
        Значения стоят по умолчанию (1Мб и 10% для лога).
        Какое лучше поставить значение? База 3Гб, лог 21Гб
        База растет максимум 0.5Гб в год.
        Спасибо.

        • 18 декабря, 2014 at 13:48
          125

          Думаю, что можно поставить рост файла в 50 или 100Мб. Следите за свободным местом на диске с логом.

  37. Дмитрий
    23 октября, 2014 at 14:47
    126

    Сделал по Вашему примеру план обслуживания. Подскажите пожалуйста, почему не выполняется подплан “Ночное обслуживание”? Точнее, выполняется операция проверки целостности с успехом и далее джобик завершает свою работу. При этом ошибок в логе никаких нет, т.е. до дефрагментации дело вообще не доходит. (MSSQL 2012 R2)

    • 18 декабря, 2014 at 13:40
      127

      Вопрос еще актуален?

  38. Владимир
    20 января, 2015 at 09:46
    128

    Добрый день уважаемый. Использую 1C 7.7 в связке c MSSQL 2005 SP4 на w2k3 x64. Терминальный сервер, одноранг. 50 пользователей.
    В примере настройки базы у вас стоит Model: FULL и Compatibility level – 90.
    У меня в базе 7.7, Simple и 80, соответственно. Размер базы 14 Гб. Тормозит сильно.
    Хотел оптимизировать работу сервера и по жестким дискам и по настройкам, согласно вашего руководства.

    1й вопрос: могу ли я поставить модель FULL для базы 1с 7.7? и что это даст? У меня 5й шаг из вашего плана обслуживания “Бэкап логов” пишет что базы с Simple моделью восстановления будут пропущены.

    2й вопрос: могу ли я уровень совместимости повысить до 90?

    • 9 апреля, 2015 at 17:05
      129

      Я с 7.7 SQL не работал, но принцип описанный в статье, думаю, будет полезен.
      ответ на первый вопрос: то, что бэкап логов не делается для FULL – это нормальное поведение. Т.к. логов как таковых нет. Да, для того чтобы план обслуживания работал, необходимо переключить в режим FULL.
      Имейте ввиду, что файл лога будет занимать значительное место, возможно в несколько раз больше базы.
      ответ на второй вопрос: повышать уровень совместимости нет никакой необходимости. К тому же, 7.7 может некорректно взаимодействовать или вообще не работать с таким режимом. Я могу ошибаться, нужно читать документацию 1С, которой у меня нет.

  39. Карим
    7 июля, 2016 at 09:18
    130

    День добрый, после каждого ночного обслуживания журнал транзакций выростал по 6-7 гигов, бэкапы ЖТ не помогали, убрал шаг “Перестроение индексов баз данных” вроде стало норм? Насколько важен этот шаг? В вашем уроке написано что можно заменить эту задачу на “Дефрагментацию индекса” не могли бы вы подробнее описать функции этих задач? Или в чем их отличия?

    • 4 августа, 2016 at 21:50
      131

      Перестроение индекса – это его удаление и создание с нуля.
      Дефрагментация – это его оптимизация. Можно заменить перестроение на дефрагментацию.

  40. Михаил
    5 октября, 2016 at 13:27
    132

    База 11 гиг, лог 780 гиг. База синхронизирована с другим сервером в режиме высокой безопасности. Соответственно модель восстановления Полная. Что можно придумать в данном случае для уменьшения лога?

    • 17 мая, 2018 at 09:15
      133

      В данном случае, нужно смотреть в сторону приложения, которое делает транзакции, увеличивающие лог.
      P.S. при условии, что полное резервное копирование и резервное копирование логов не уменьшает размер.

  41. Михаил
    14 октября, 2016 at 16:32
    134

    После недельных бэкапов логов и фул бэкапов баз, запустил сжатие баз и о чудо – лог с 780 гиг сжался до 29 гиг.

    • Михаил
      25 октября, 2016 at 12:09
      135

      А нонче лог ужался до размера базы. Таким образом получается, что делая полный бэкап логов транзакций, как в комплексе – ночью, так и по расписанию днем через некоторое время можно сжать раздувшиеся логи до вполне адекватных размеров.
      Кстати, это можно и в фак внести. И обязательно необходимо ограничивать прожорливость SQL, плановые задания по перестройке индекса, обновление статистики сжирают память. Даже при 128 гигах – через неделю памяти не хватает.

      • 17 мая, 2018 at 09:20
        136

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

  42. Михаил
    24 сентября, 2019 at 15:44
    137

    Вопрос к автору: если Check Database Integrity Task например на одной из баз закончится с ошибкой, то дальше по зеленой стрелке пойдет выполнение ?

    • 23 октября, 2019 at 19:39
      138

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

Написать комментарий