Уведомляем пользователей об успешных операциях с базами

  оглавление  Как включить возможность динамического обновления базы

Настраиваем автоматическое восстановление базы при ошибках обновления

В чём суть

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

Зачем это нужно

Случай 1

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

Случай 2

При обновлении конфигурации базы произошёл критичный сбой платформы 1с и база оказалась разрушена. Если оставить базу в таком состоянии, то пользователи вообще не смогут в ней работать.

Случай 3

Конфигурация и база данных обновились корректно, но при выполнении обработчиков обновления возникли проблемы. На следующий день пользователи занесли в базу новые данные и теперь вы не имеете возможности откатить базу на предыдущую версию конфигурации, чтобы исправить ситуацию и повторить обновление.

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

Как настроить

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

Опция "Восстанавливать базу при ошибке обновления" для файловых баз по умолчанию установлена, а для серверных наоборот снята (из-за нюансов).

Сразу обратите внимание на ссылку "Условия для восстановления ...". В ней отмечаются фазы обновления, ошибки в которых, ведут к откату базы к первоначальному состоянию:

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

Нюансы при восстановлении серверной базы

Необходимым условием для возможности автоматического восстановления серверной базы является настройка бэкапов средствами SQL-сервера. Это делается в свойствах базы на закладке "Архивация":

Почему нельзя восстанавливать на автомате базу из dt-выгрузки:

  • выгрузку в dt нельзя считать полноценным архивом базы, она изначально задумывалась для переноса между файловым и серверным вариантом;
  • выгрузка в dt может содержать не все данные, если повреждена структура базы; да, в последних версиях платформы делаются дополнительные проверки на ошибки при выгрузке в dt, но так было не всегда и это не исключает вероятность новых ошибок; лучше "сливать" базу для архива как она есть, без дополнительных преобразований;
  • загрузка из dt в несколько раз дольше, чем загрузка из sql-архива.

Кроме того, замечено что интенсивная выгрузка в dt (если у вас много баз) приводит к проблемам в работе сервера 1с.

В общем, если у вас серверная база делайте архивы средствами sql-сервера, а от регулярной выгрузки в dt, по возможности, откажитесь. Этим вы уменьшите время монопольного доступа к базам, сбережёте ресурсы сервера 1с и  сделаете его работу более стабильной.

Ручное восстановление базы из резервной копии

Вы всегда можете сами восстановить базу из её резервной копии. Для этого нажмите на ней правой кнопкой и выберите следующий пункт:

При этом теперь обновлятор умеет восстанавливать в том числе серверные базы из копий, сделанных sql-сервером. Такие копии имеют метку full-SQL в своём имени.

При этом предусмотрена защита от случайного восстановления серверной базы из резервной копии для другой базы. При попытке восстановить базу из чужой резервной копии обновлятор (а вернее sql-сервер) выдаст следующую ошибку:

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



Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:



Уведомляем пользователей об успешных операциях с базами

  оглавление  Как включить возможность динамического обновления базы