Сохранение и восстановление информационных баз при обновлении клиентов
Аварийное восстановление и резервное копирование информационных баз 1С
Файловые базы
- Если есть доступ к конфигуратору:
- тестирование и исправление
- загрузка резервной копии конфигурации
- Если нет доступ к конфигуратору:
- утилита chdbfl.exe
- манипуляции с кешем для доступа в конфигуратор (с дальнейшем заливанием конфигурации)
1) тестирование и исправление:
- Зайти в конфигуратор, нажать в меню на «Администрирование»
- Выбрать пункт «Тестирование и исправление»
- В разделе «Проверки и режимы» отмечаем нужные пункты:
- Реиндексация таблиц информационной базы - если установлен этот флаг, будет произведена реиндексация таблиц - полное перестроение индексов для заданных таблиц. Реиндексация существенно повышает производительность системы в целом.
- Проверка логической целостности информационной базы - система умеет проверять логическую и структурную целостность базы данных, находить ошибки в организации данных (например, страниц в файле)
- Проверка ссылочной целостности информационной базы — подпункт логической проверки, проверяет информацию в базе данных на наличие «битых» ссылок. «Битые» ссылки появляются в базе из-за некорректной обработки информации разработчиком, чаще всего при непосредственном удалении данных или неправильно настроенном обмене данных. При нахождении ошибок можно выбрать 3 варианта действий: Создавать объекты — система создает элементы-заглушки, которые можно потом заполнить необходимой информацией, Очищать ссылки — «битые» ссылки будут очищены, Не изменять — система только покажет Вам ошибки.
- Пересчет итогов — в платформе 1С в регистрах накопления и регистрах бухгалтерии есть понятие итогов. Итоги — таблица подсчитанных результатов, данные из которой получить быстрее, чем анализировать весь регистр сведений. Как правило, пересчет итогов увеличивает производительность системы.
- Сжатие таблиц информационной базы — если установлен этот флаг, база данных будет сжата и уменьшится в объеме. Связанно это с тем, что при удалении данных из базы данных, 1С не удаляет физически эти объекты, а лишь «помечает» их на удаление. Т.е. пользователь не видит их, а они есть :). Вот именно сжатие базы данных и удаляет такие записи окончательно. Также такого эффекта можно достичь выгрузкой и загрузкой файла базы данных (*.dt). При удалении объектом в учетной системе, они полностью не удаляются и увеличивается вес Базы, для этого и нужна эта операция.
- Реструктуризация таблиц информационной базы — процесс, с помощью которого система осуществляет пересоздание таблиц баз данных, обычно эта процедура вызывается при внесения изменений в структуру метаданных конфигурации. Реструктуризация всей БД — процесс долгий, будьте внимательны. (Например 2 таблицы и данные из 1 порциями копируются во 2, при этом структура таблицы меняется, а данные остаются такие же
- Кликнуть по требуемому действию:
- «Только тестирование» - если требуется узнать место ошибки в базе
- «Тестирование и исправление» - если нужно сразу все исправить. Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию, даже если база уже сломана
- Установить в столбцах требуемые параметры исправления:
- Создавать объекты - 1С создаст объект заглушку, которая исправит ошибку. Вместо которой можно будет создать нужный объект.
- Битые ссылки либо удаляются либо создаются ссылки заглушки, которая никуда не ведет.
2) Загрузка резервной копии конфигурации
- Зайти в конфигуратор, нажать в меню на «Конфигурация»
- Выбрать пункт «Загрузить конфигурацию из файла» (Предварительно сохранить конфигурацию в файл и перед началом ОБЯЗАТЕЛЬНО сделать резервную копию). Такая загрузка заменяет только скелет базы.
Информационная база 1С состоит из 2 частей из данных и скелета конфигурации
Загрузка базы из конфигуратора в полном объеме:
- Зайти в конфигуратор, нажать в меню на «Администрирование»
- Выбрать пункт «Загрузить информационную базу» (Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию) При такой загрузки идет полная замена данных
3) Утилита chdbfl.exe
Утилита chdbfl.exe расположена по пути «C:\Program Files\1cv8\<номер_версии_1с\bin\chdbfl.exe» и предназначенна для теста файла формата 1cd на ошибки
- Перейти в папку нужной версии 1С
- Зайти в папку «bin»
- Найти утилиту chdbfl.exe и дважды кликнуть по ней.
- Указываем имя базы данных.
- Если нужно исправление ошибок, то установить галочку в соответствующем поле.
- Нажать кнопку «Выполнить» (конфигуратор должен быть закрыт).
4) Подмена кеша
Если в конфигуратор нет возможности попасть и появляется ошибка
- Необходима чистая конфигурация той же версии что и разрушенная база (создаются бекапы базы)
- Очистить кеш полностью
- Запустить чистую базу в режиме конфигуратора и открыть конфигурацию. При этом 1С создает ее кеш.
- Открыть битую базу режиме конфигуратора и посмотреть кеш. (две папки с кешем)
- Закрыть все и подменить кеш битой базы на кеш живой базы.
- Запустить битую базу в режиме конфигуратора.
- Взять резервную копию текущей версии конфигурации и сделать полную загрузку.
- Очистить кеш снова.
Для очистки кеша:
В адресной строке пишем %appdata% и нажимаем кнопку «Еnter»
Возвращаемся на раздел выше, кликнув на «Appdata»
- Зайти в парку «Local»
- Перейти в папку «1С»
- Провалиться в папку «1Сv81»
Удалить все файлы с гуидами, кроме исключений указанных ниже. Аналогично удаляем файлы из папки «Roaming»
Когда осуществляется вход в конфигуратор, то автоматически формируется 2 одинаковых лога в папке Local и Roaming
Если есть кеш здоровой базы и кеш сломанной, то нужно скопировать наименование здоровой, удалить сам файл и переименовать кеш в сломанной в папках Local и Roaming
Резервное копирование файловых баз
- Копирование файлов баз данных
- Выгрузка информационной базы в файл
- Выгрузка конфигурации информационной базы в файл
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) Выгрузка информационной базы в файл
- Зайти в конфигуратор и в меню нажать «Администрирование».
- Выбрать пункт «Выгрузить информационную базу» ⇒ При этом происходит полная выгрузка базы данных (конфигурация + данные).
3) Выгрузка конфигурации информационной базы в файл
- Зайти в конфигуратор и в меню нажать «Конфигурация».
- Выбрать пункт «Сохранить конфигурацию в файл» ⇒ Происходит выгрузка только конфигурации, без данных.
4) Аварийное восстановление клиент-серверных баз
- Если есть возможность попасть в конфигуратор:
- Тестирование и исправление
- Загрузка резервной копии конфигурации
- Если нет возможности попасть в конфигуратор:
- Восстановление средствами СУБД
Пункты тестирование и исправление и загрузка резервной копии конфигурации рассматривались ранее
5) Восстановление средствами СУБД
Данный способ применяется, когда зайти в конфигуратор нет возможности и возникает ошибка:
Одним из таких случаев, когда попасть в конфигуратор нельзя, является ошибка динамического обновления. Для восстановления базы нам понадобится:
- Резервная копия конфигурации информационной базы (cf)
- Доступ к серверу СУБД
- Открыть утилиту pgAdmin (либо «Среда SQL Server Management Studio», если у вас MS SQL) и зайти в нужную БД.
- Открыть схему «public».
- В списке «Таблицы» выбрать таблицу «Configsave» (хранятся сохраненные, но не примененные параметры конфигурации).
- Кликнуть правой кнопкой мышки по таблице «Configsave» и выбрать пункт «Очистить» ⇒ Удалятся все не сохраненные данные и ошибка может исчезнуть.
Если способ выше не помог, то применяется второй способ:
- Зайти в рабочую базу данных, со здоровой конфигурацией в клиент серверном формате. Чтобы ее получить, можно создать пустую БД и залить в нее резервную копию конфигурации, либо развернуть бекап базы данных.
- Найти таблицу «config» (файл содержит всю конфигурацию БД), кликнуть на нее правой кнопкой мышки.
- Выбрать пункт «Резервное копирование».
- Указать путь и наименование файла - копии.
- Нажать кнопку «Резервная копия».
- Зайти в сломанную базу.
- Найти таблицу «config».
- Кликнуть правой кнопкой мышки по таблице «сonfig» и выбрать пункт «Очистить».
- Кликнуть правой кнопкой мышки по таблице «сonfig» и выбрать пункт «Восстановить».
- Выбирать файл резервной копии.
- Нажать кнопку «Восстановить».
6) Резервное копирование клиент-серверных баз
- Резервное копирование сторонними программными средствами
- Резервное копирование скриптами
- Выгрузка информационной базы в файл
- Выгрузка конфигурации информационной базы в файл
Резервное копирование сторонними программными средствами
- Существует условно бесплатная утилита PostgreSQL Backup Tool.
- Позволяет настроить резервное копирование баз на FTP-сервер, в облако, на локальную или сетевую папку.
- Существует ограничение бесплатной версии – резервное копирование можно настроить только на две базы.
- Открыть программу
- Подключиться к серверу, нажав кнопку «Conect»
- Кликнуть по кнопке «Save & Close»
- Выбирать таблицу, поставив галочку
Указать, где будет хранится таблица
Настроить расписание
Резервное копирование скриптами
Понадобится:
- Бесплатный SFTP клиент WinSCP для копирования на FTP сервер
- Командная строка.
Порядок действий:
- Скачать и установить WinSCP с официального сайта
- Создать папку для временного хранения SQL дампов
- Написать скрипты следующего содержания
Скрипт для выгрузки 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
- «C:\Program Files (x86)\WinSCP\WinSCP.exe» /command ^
- «option confirm on» ^
- «option batch abort» ^
- «synchronize remote -criteria=time ..\backups\ /arhiv» ^
- «cd /arhiv»^
- «rm *<4D»
Скрипт для очистки временной папки
- 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