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

Материал из База знаний АО АСП
Перейти к навигации Перейти к поиску
= Сохранение и восстановление информационных баз при обновлении клиентов =

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

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

 - Если есть доступ к конфигуратору:<WRAP>
  • тестирование и исправление
  • загрузка резервной копии конфигурации

</WRAP>

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

</WRAP>

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

- Зайти в конфигуратор, нажать в меню на

'"Администрирование"

' - Выбрать пункт

'"Тестирование и исправление"

' - В разделе

'"Проверки и режимы"

' отмечаем нужные пункты:<WRAP>

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

</WRAP>

 - Кликнуть по требуемому действию:<WRAP>
  • "Только тестирование" - если требуется узнать место ошибки в базе
  • "Тестирование и исправление" - если нужно сразу все исправить. Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию, даже если база уже сломана

</WRAP>

 - Установить в столбцах требуемые параметры исправления:<WRAP>
  • Создавать объекты - 1С создаст объект заглушку, которая исправит ошибку. Вместо которой можно будет создать нужный объект.
  • Битые ссылки либо удаляются либо создаются ссылки заглушки, которая никуда не ведет.

</WRAP>

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

- Зайти в конфигуратор, нажать в меню на

'"Конфигурация"

' - Выбрать пункт

'"Загрузить конфигурацию из файла"

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

Информационная база  состоит из 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) Аварийное восстановление клиент-серверных баз

 - Если есть возможность попасть в конфигуратор:<WRAP>
  • Тестирование и исправление
  • Загрузка резервной копии конфигурации

</WRAP>

 - Если нет возможности попасть в конфигуратор:<WRAP>
  • Восстановление средствами СУБД

</WRAP>

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

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
  • 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