Сохранение и восстановление информационных баз при обновлении клиентов

Аварийное восстановление и резервное копирование информационных баз 1С

Файловые базы

  1. Если есть доступ к конфигуратору:
    • тестирование и исправление
    • загрузка резервной копии конфигурации
  2. Если нет доступ к конфигуратору:
    • утилита chdbfl.exe
    • манипуляции с кешем для доступа в конфигуратор (с дальнейшем заливанием конфигурации)

1) тестирование и исправление:

  1. Зайти в конфигуратор, нажать в меню на «Администрирование»
  2. Выбрать пункт «Тестирование и исправление»
  3. В разделе «Проверки и режимы» отмечаем нужные пункты:
    • Реиндексация таблиц информационной базы - если установлен этот флаг, будет произведена реиндексация таблиц - полное перестроение индексов для заданных таблиц. Реиндексация существенно повышает производительность системы в целом.
    • Проверка логической целостности информационной базы - система умеет проверять логическую и структурную целостность базы данных, находить ошибки в организации данных (например, страниц в файле)
    • Проверка ссылочной целостности информационной базы — подпункт логической проверки, проверяет информацию в базе данных на наличие «битых» ссылок. «Битые» ссылки появляются в базе из-за некорректной обработки информации разработчиком, чаще всего при непосредственном удалении данных или неправильно настроенном обмене данных. При нахождении ошибок можно выбрать 3 варианта действий: Создавать объекты — система создает элементы-заглушки, которые можно потом заполнить необходимой информацией, Очищать ссылки — «битые» ссылки будут очищены, Не изменять — система только покажет Вам ошибки.
    • Пересчет итогов — в платформе 1С в регистрах накопления и регистрах бухгалтерии есть понятие итогов. Итоги — таблица подсчитанных результатов, данные из которой получить быстрее, чем анализировать весь регистр сведений. Как правило, пересчет итогов увеличивает производительность системы.
    • Сжатие таблиц информационной базы — если установлен этот флаг, база данных будет сжата и уменьшится в объеме. Связанно это с тем, что при удалении данных из базы данных, 1С не удаляет физически эти объекты, а лишь «помечает» их на удаление. Т.е. пользователь не видит их, а они есть :). Вот именно сжатие базы данных и удаляет такие записи окончательно. Также такого эффекта можно достичь выгрузкой и загрузкой файла базы данных (*.dt). При удалении объектом в учетной системе, они полностью не удаляются и увеличивается вес Базы, для этого и нужна эта операция.
    • Реструктуризация таблиц информационной базы — процесс, с помощью которого система осуществляет пересоздание таблиц баз данных, обычно эта процедура вызывается при внесения изменений в структуру метаданных конфигурации. Реструктуризация всей БД — процесс долгий, будьте внимательны. (Например 2 таблицы и данные из 1 порциями копируются во 2, при этом структура таблицы меняется, а данные остаются такие же
  4. Кликнуть по требуемому действию:
    • «Только тестирование» - если требуется узнать место ошибки в базе
    • «Тестирование и исправление» - если нужно сразу все исправить. Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию, даже если база уже сломана
  5. Установить в столбцах требуемые параметры исправления:
    • Создавать объекты - 1С создаст объект заглушку, которая исправит ошибку. Вместо которой можно будет создать нужный объект.
    • Битые ссылки либо удаляются либо создаются ссылки заглушки, которая никуда не ведет.

2) Загрузка резервной копии конфигурации

  1. Зайти в конфигуратор, нажать в меню на «Конфигурация»
  2. Выбрать пункт «Загрузить конфигурацию из файла» (Предварительно сохранить конфигурацию в файл и перед началом ОБЯЗАТЕЛЬНО сделать резервную копию). Такая загрузка заменяет только скелет базы.

Информационная база 1С состоит из 2 частей из данных и скелета конфигурации

Загрузка базы из конфигуратора в полном объеме:

  1. Зайти в конфигуратор, нажать в меню на «Администрирование»
  2. Выбрать пункт «Загрузить информационную базу» (Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию) При такой загрузки идет полная замена данных

3) Утилита chdbfl.exe

Утилита chdbfl.exe расположена по пути «C:\Program Files\1cv8\<номер_версии_1с\bin\chdbfl.exe» и предназначенна для теста файла формата 1cd на ошибки

  1. Перейти в папку нужной версии 1С
  2. Зайти в папку «bin»
  3. Найти утилиту chdbfl.exe и дважды кликнуть по ней.

  1. Указываем имя базы данных.
  2. Если нужно исправление ошибок, то установить галочку в соответствующем поле.
  3. Нажать кнопку «Выполнить» (конфигуратор должен быть закрыт).

4) Подмена кеша

Если в конфигуратор нет возможности попасть и появляется ошибка

  1. Необходима чистая конфигурация той же версии что и разрушенная база (создаются бекапы базы)
  2. Очистить кеш полностью
  3. Запустить чистую базу в режиме конфигуратора и открыть конфигурацию. При этом 1С создает ее кеш.
  4. Открыть битую базу режиме конфигуратора и посмотреть кеш. (две папки с кешем)
  5. Закрыть все и подменить кеш битой базы на кеш живой базы.
  6. Запустить битую базу в режиме конфигуратора.
  7. Взять резервную копию текущей версии конфигурации и сделать полную загрузку.
  8. Очистить кеш снова.

Для очистки кеша:

В адресной строке пишем %appdata% и нажимаем кнопку «Еnter»

Возвращаемся на раздел выше, кликнув на «Appdata»

  1. Зайти в парку «Local»
  2. Перейти в папку «1С»
  3. Провалиться в папку «1Сv81»

Удалить все файлы с гуидами, кроме исключений указанных ниже. Аналогично удаляем файлы из папки «Roaming»

Когда осуществляется вход в конфигуратор, то автоматически формируется 2 одинаковых лога в папке Local и Roaming

Если есть кеш здоровой базы и кеш сломанной, то нужно скопировать наименование здоровой, удалить сам файл и переименовать кеш в сломанной в папках Local и Roaming

Резервное копирование файловых баз

  1. Копирование файлов баз данных
  2. Выгрузка информационной базы в файл
  3. Выгрузка конфигурации информационной базы в файл

1) Копирование файлов баз данных

При использовании файлового варианта 1С:Предприятия 8 можно организовать процесс создания резервной копии информационной базы путем простого копирования файла 1CV8.1CD в отдельный каталог или с использованием программного обеспечения для резервного копирования и восстановления данных. Следует учитывать, что для обеспечения целостности и согласованности данных во время создания резервной копии, работа пользователей с информационной базой должна быть запрещена,  однако время, необходимое на создание резервной копии существенно меньше, чем при использовании выгрузки информационной базы в файл.

Копируется вся папка с базой или только файл с расширением 1CD. ВАЖНО, что бы все конфигураторы и 1С предприятия были закрыты, иначе может возникнуть ситуация потери данных.

Пример скрипта, который копирует файлы базы данных:

xcopy «D:\work\Send Base_work\repository» «D:\work\Send Base_work\backup\%date%» /f /s /i

Данный скрипт помещается в планировщик заданий для выполнения через равные промежутки времени

Операция «xcopy» копирует данные из папки «D:\work\Send Base_work\repository» в папку «D:\work\Send Base_work\backup\%date%», «%date%» - означает переменную текущую дату (сегодняшний день)

2) Выгрузка информационной базы в файл

  1. Зайти в конфигуратор и в меню нажать «Администрирование».
  2. Выбрать пункт «Выгрузить информационную базу» ⇒ При этом происходит полная выгрузка базы данных (конфигурация + данные).

3) Выгрузка конфигурации информационной базы в файл

  1. Зайти в конфигуратор и в меню нажать «Конфигурация».
  2. Выбрать пункт «Сохранить конфигурацию в файл» ⇒ Происходит выгрузка только конфигурации, без данных.

4) Аварийное восстановление клиент-серверных баз

  1. Если есть возможность попасть в конфигуратор:
    • Тестирование и исправление
    • Загрузка резервной копии конфигурации
  2. Если нет возможности попасть в конфигуратор:
    • Восстановление средствами СУБД

Пункты тестирование и исправление и загрузка резервной копии конфигурации рассматривались ранее

5) Восстановление средствами СУБД

Данный способ применяется, когда зайти в конфигуратор нет возможности и возникает ошибка:

Одним из таких случаев, когда попасть в конфигуратор нельзя, является ошибка динамического обновления. Для восстановления базы нам понадобится:

  1. Резервная копия конфигурации информационной базы (cf)
  2. Доступ к серверу СУБД
  1. Открыть утилиту pgAdmin (либо «Среда SQL Server Management Studio», если у вас MS SQL) и зайти в нужную БД.
  2. Открыть схему «public».
  3. В списке «Таблицы» выбрать таблицу «Configsave» (хранятся сохраненные, но не примененные параметры конфигурации).
  4. Кликнуть правой кнопкой мышки по таблице «Configsave» и выбрать пункт «Очистить» ⇒ Удалятся все не сохраненные данные и ошибка может исчезнуть.

Если способ выше не помог, то применяется второй способ:

  1. Зайти в рабочую базу данных, со здоровой конфигурацией в клиент серверном формате. Чтобы ее получить, можно создать пустую БД и залить в нее резервную копию конфигурации, либо развернуть бекап базы данных.
  2. Найти таблицу «config» (файл содержит всю конфигурацию БД), кликнуть на нее правой кнопкой мышки.
  3. Выбрать пункт «Резервное копирование».
  4. Указать путь и наименование файла - копии.
  5. Нажать кнопку «Резервная копия».

  1. Зайти в сломанную базу.
  2. Найти таблицу «config».
  3. Кликнуть правой кнопкой мышки по таблице «сonfig» и выбрать пункт «Очистить».
  4. Кликнуть правой кнопкой мышки по таблице «сonfig» и выбрать пункт «Восстановить».
  5. Выбирать файл резервной копии.
  6. Нажать кнопку «Восстановить».

6) Резервное копирование клиент-серверных баз

  • Резервное копирование сторонними программными средствами
  • Резервное копирование скриптами
  • Выгрузка информационной базы в файл
  • Выгрузка конфигурации информационной базы в файл

Резервное копирование сторонними программными средствами

  • Существует условно бесплатная утилита PostgreSQL Backup Tool.
  • Позволяет настроить резервное копирование баз на FTP-сервер, в облако, на локальную или сетевую папку.
  • Существует ограничение бесплатной версии – резервное копирование можно настроить только на две базы.
  1. Открыть программу
  2. Подключиться к серверу, нажав кнопку «Conect»
  3. Кликнуть по кнопке «Save & Close»
  4. Выбирать таблицу, поставив галочку

Указать, где будет хранится таблица

Настроить расписание

Резервное копирование скриптами

Понадобится:

  1. Бесплатный SFTP клиент WinSCP для копирования на FTP сервер
  2. Командная строка.

Порядок действий:

  1. Скачать и установить WinSCP с официального сайта
  2. Создать папку для временного хранения SQL дампов
  3. Написать скрипты следующего содержания

Скрипт для выгрузки SQL дампов ИБ

  • cd /D C:\Program Files\PostgresPro 1C\9.6\bin
  • pg_dump -U postgres ZUP > D:\work\backups\%DATE%_ZUP.sql
  • pg_dump -U postgres UNF > D:\work\backups\%DATE%_UNF.sql
  • pg_dump -U postgres UT > D:\work\backups\%DATE%_UT.sql
  • pg_dump -U postgres bu-2 > D:\work\backups\%DATE%_bu-2.sql
  • pg_dump -U postgres bu-3 > D:\work\backups\%DATE%_bu-3.sql
  • pg_dump -U postgres bu-serv > D:\work\backups\%DATE%_bu-serv.sql
  • pg_dump -U postgres MWP > D:\work\backups\%DATE%_MWP.sql

Скрипт для выгрузки дампов на FTP сервер

Скрипт для очистки временной папки

  • cd /d D:\work\backups
  • del %DATE%_ZUP.sql
  • del %DATE%_UNF.sql
  • del %DATE%_UT.sql
  • del %DATE%_bu-2.sql
  • del %DATE%_bu-3.sql
  • del %DATE%_bu-serv.sql
  • del %DATE%_MWP.sql

Резервное копирование скриптами

Скрипты положить в папку для временного хранения SQL дампов (в данном примере это D:\work\backups\% Настроить планировщик задач на исполнение скриптов, например так:

https://www.youtube.com/watch?v=6HDFmCEZKTk&feature=youtu.be