Сохранение и восстановление инф. баз при обновлении клиентов: различия между версиями

Новая страница: «======= Сохранение и восстановление информационных баз при обновлении клиентов ======= === Аварийное восстановление и резервное копирование информационных баз 1С === __Файловые базы__ - Если есть доступ к конфигуратору:<WRAP> * тестирование и исправление * загру...»
 
Нет описания правки
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
======= Сохранение и восстановление информационных баз при обновлении клиентов =======
====== Сохранение и восстановление информационных баз при обновлении клиентов ======


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


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


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


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


  - Зайти в конфигуратор, нажать в меню на <syntaxhighlight lang='bash'>
Зайти в конфигуратор, нажать в меню на '''"Администрирование"'''
'"Администрирование"
Выбрать пункт '''"Тестирование и исправление"'''
</syntaxhighlight>'
В разделе '''"Проверки и режимы"''' отмечаем нужные пункты:
  - Выбрать пункт <syntaxhighlight lang='bash'>
'"Тестирование и исправление"
</syntaxhighlight>'
  - В разделе <syntaxhighlight lang='bash'>
'"Проверки и режимы"
</syntaxhighlight>' отмечаем нужные пункты:<WRAP>
* <syntaxhighlight lang='bash'>
* <syntaxhighlight lang='bash'>
Реиндексация таблиц информационной базы
Реиндексация таблиц информационной базы
Строка 43: Строка 37:
Реструктуризация таблиц информационной базы
Реструктуризация таблиц информационной базы
</syntaxhighlight> — процесс, с помощью которого система осуществляет пересоздание таблиц баз данных, обычно эта процедура вызывается при внесения изменений в структуру метаданных конфигурации. Реструктуризация всей БД — процесс долгий, будьте внимательны. (Например 2 таблицы и данные из 1 порциями копируются во 2, при этом структура таблицы меняется, а данные остаются такие же
</syntaxhighlight> — процесс, с помощью которого система осуществляет пересоздание таблиц баз данных, обычно эта процедура вызывается при внесения изменений в структуру метаданных конфигурации. Реструктуризация всей БД — процесс долгий, будьте внимательны. (Например 2 таблицы и данные из 1 порциями копируются во 2, при этом структура таблицы меняется, а данные остаются такие же
</WRAP>
 
  - Кликнуть по требуемому действию:<WRAP>
Кликнуть по требуемому действию:
* "Только тестирование" - если требуется узнать место ошибки в базе  
* "Только тестирование" - если требуется узнать место ошибки в базе  
* "Тестирование и исправление" - если нужно сразу все исправить. Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию, даже если база уже сломана
* "Тестирование и исправление" - если нужно сразу все исправить. Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию, даже если база уже сломана
</WRAP>
 
  - Установить в столбцах требуемые параметры исправления:<WRAP>
Установить в столбцах требуемые параметры исправления:
* Создавать объекты - 1С создаст объект заглушку, которая исправит ошибку. Вместо которой можно будет создать нужный объект.
* Создавать объекты - 1С создаст объект заглушку, которая исправит ошибку. Вместо которой можно будет создать нужный объект.
* Битые ссылки либо удаляются либо создаются ссылки заглушки, которая никуда не ведет.
* Битые ссылки либо удаляются либо создаются ссылки заглушки, которая никуда не ведет.
</WRAP>
 


[[File:1_бекап.png]]
[[File:1_бекап.png]]
Строка 57: Строка 51:
2) Загрузка резервной копии конфигурации
2) Загрузка резервной копии конфигурации


  - Зайти в конфигуратор, нажать в меню на <syntaxhighlight lang='bash'>
Зайти в конфигуратор, нажать в меню на '''"Конфигурация"'''
'"Конфигурация"
Выбрать пункт '''"Загрузить конфигурацию из файла"''' (Предварительно сохранить конфигурацию в файл и перед началом ОБЯЗАТЕЛЬНО сделать резервную копию). Такая загрузка заменяет только скелет базы.
</syntaxhighlight>'
  - Выбрать пункт <syntaxhighlight lang='bash'>
'"Загрузить конфигурацию из файла"
</syntaxhighlight>' (Предварительно сохранить конфигурацию в файл и перед началом ОБЯЗАТЕЛЬНО сделать резервную копию). Такая загрузка заменяет только скелет базы.


<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Строка 72: Строка 62:
Загрузка базы из конфигуратора в полном объеме:
Загрузка базы из конфигуратора в полном объеме:


  - Зайти в конфигуратор, нажать в меню на <syntaxhighlight lang='bash'>
Зайти в конфигуратор, нажать в меню на '''"Администрирование"'''
'"Администрирование"
Выбрать пункт '''"Загрузить информационную базу"''' (Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию) При такой загрузки идет полная замена данных
</syntaxhighlight>'
  - Выбрать пункт <syntaxhighlight lang='bash'>
'"Загрузить информационную базу"
</syntaxhighlight>' (Перед началом ОБЯЗАТЕЛЬНО сделать резервную копию) При такой загрузки идет полная замена данных


[[File:3_бекап.png]]
[[File:3_бекап.png]]
Строка 83: Строка 69:
3) Утилита chdbfl.exe
3) Утилита chdbfl.exe


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


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


[[File:4_бекап.png]]
[[File:4_бекап.png]]


  - Указываем имя базы данных.
Указываем имя базы данных.
  - Если нужно исправление ошибок, то установить галочку в соответствующем поле.
Если нужно исправление ошибок, то установить галочку в соответствующем поле.
  - Нажать кнопку <syntaxhighlight lang='bash'>
Нажать кнопку '''"Выполнить"''' (конфигуратор должен быть закрыт).
'"Выполнить"
</syntaxhighlight>' (конфигуратор должен быть закрыт).


[[File:5_бекап.png]]
[[File:5_бекап.png]]
Строка 105: Строка 89:
[[File:6_бекап.png]]
[[File:6_бекап.png]]


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


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


В адресной строке пишем %appdata% и нажимаем кнопку <syntaxhighlight lang='bash'>
В адресной строке пишем %appdata% и нажимаем кнопку '''"Еnter"'''
'"Еnter"
</syntaxhighlight>'


[[File:7_бекап.png]]
[[File:7_бекап.png]]


Возвращаемся на раздел выше, кликнув на <syntaxhighlight lang='bash'>
Возвращаемся на раздел выше, кликнув на '''"Appdata"'''
'"Appdata"
</syntaxhighlight>'


[[File:8_бекап.png]]
[[File:8_бекап.png]]


  - Зайти в парку "Local"
Зайти в парку "Local"
  - Перейти в папку "1С"
Перейти в папку "1С"
  - Провалиться в папку "1Сv81"
Провалиться в папку "1Сv81"


[[File:9_бекап.png]]
[[File:9_бекап.png]]
Строка 142: Строка 122:
Если есть кеш здоровой базы и кеш сломанной, то нужно скопировать наименование здоровой, удалить сам файл и переименовать кеш в сломанной в папках Local  и  Roaming
Если есть кеш здоровой базы и кеш сломанной, то нужно скопировать наименование здоровой, удалить сам файл и переименовать кеш в сломанной в папках Local  и  Roaming


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


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


1) Копирование файлов баз данных
1) Копирование файлов баз данных
Строка 158: Строка 138:
Пример скрипта, который копирует файлы базы данных:
Пример скрипта, который копирует файлы базы данных:


xcopy "D:<br/>work<br/>Send Base_work<br/>repository" "D:<br/>work<br/>Send Base_work<br/>backup<br/>%date%" /f /s /i
xcopy "D:\work\Send Base_work\repository" "D:\work\Send Base_work\backup\%date%" /f /s /i


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


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


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


  - Зайти в конфигуратор и в меню нажать <syntaxhighlight lang='bash'>
Зайти в конфигуратор и в меню нажать '''"Администрирование"'''.
'"Администрирование"
Выбрать пункт '''"Выгрузить информационную базу"''' => При этом происходит полная выгрузка базы данных (конфигурация + данные).
</syntaxhighlight>'.
  - Выбрать пункт <syntaxhighlight lang='bash'>
'"Выгрузить информационную базу"
</syntaxhighlight>' => При этом происходит полная выгрузка базы данных (конфигурация + данные).


[[File:11_бекап.png]]
[[File:11_бекап.png]]
Строка 177: Строка 153:
3) Выгрузка конфигурации информационной базы в файл
3) Выгрузка конфигурации информационной базы в файл


  - Зайти в конфигуратор и в меню нажать <syntaxhighlight lang='bash'>
Зайти в конфигуратор и в меню нажать '''"Конфигурация"'''.
'"Конфигурация"
Выбрать пункт '''"Сохранить конфигурацию в файл"''' => Происходит выгрузка только конфигурации, без данных.
</syntaxhighlight>'.
  - Выбрать пункт <syntaxhighlight lang='bash'>
'"Сохранить конфигурацию в файл"
</syntaxhighlight>' => Происходит выгрузка только конфигурации, без данных.


[[File:12_бекап.png]]
[[File:12_бекап.png]]
Строка 188: Строка 160:
4) Аварийное восстановление клиент-серверных баз
4) Аварийное восстановление клиент-серверных баз


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


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


  - Резервная копия конфигурации информационной базы (cf)
Резервная копия конфигурации информационной базы (cf)
  - Доступ к серверу СУБД
Доступ к серверу СУБД


  - Открыть утилиту pgAdmin (либо «Среда SQL Server Management Studio», если у вас MS SQL) и зайти в нужную БД.
Открыть утилиту pgAdmin (либо «Среда SQL Server Management Studio», если у вас MS SQL) и зайти в нужную БД.
  - Открыть схему <syntaxhighlight lang='bash'>
Открыть схему '''"public"'''.
'"public"
В списке '''"Таблицы"''' выбрать таблицу '''"Configsave"''' (хранятся сохраненные, но не примененные параметры конфигурации).
</syntaxhighlight>'.
Кликнуть правой кнопкой мышки по таблице '''"Configsave"''' и выбрать пункт '''"Очистить"''' => Удалятся все не сохраненные данные и ошибка может исчезнуть.
  - В списке <syntaxhighlight lang='bash'>
'"Таблицы"
</syntaxhighlight>' выбрать таблицу <syntaxhighlight lang='bash'>
'"Configsave"
</syntaxhighlight>' (хранятся сохраненные, но не примененные параметры конфигурации).
  - Кликнуть правой кнопкой мышки по таблице <syntaxhighlight lang='bash'>
'"Configsave"
</syntaxhighlight>' и выбрать пункт <syntaxhighlight lang='bash'>
'"Очистить"
</syntaxhighlight>' => Удалятся все не сохраненные данные и ошибка может исчезнуть.


[[File:20_бекап.png]]
[[File:20_бекап.png]]
Строка 228: Строка 190:
Если способ выше не помог, то применяется второй способ:
Если способ выше не помог, то применяется второй способ:


  - Зайти в рабочую базу данных, со здоровой конфигурацией в клиент серверном формате. Чтобы ее получить, можно создать пустую БД и залить в нее резервную копию конфигурации, либо развернуть бекап базы данных.
Зайти в рабочую базу данных, со здоровой конфигурацией в клиент серверном формате. Чтобы ее получить, можно создать пустую БД и залить в нее резервную копию конфигурации, либо развернуть бекап базы данных.
  - Найти таблицу <syntaxhighlight lang='bash'>
Найти таблицу '''"config"''' (файл содержит всю конфигурацию БД), кликнуть на нее правой кнопкой мышки.
'"config"
Выбрать пункт '''"Резервное копирование"'''.
</syntaxhighlight>' (файл содержит всю конфигурацию БД), кликнуть на нее правой кнопкой мышки.
Указать путь и наименование файла - копии.
  - Выбрать пункт <syntaxhighlight lang='bash'>
Нажать кнопку '''"Резервная копия"'''.
'"Резервное копирование"
</syntaxhighlight>'.
  - Указать путь и наименование файла - копии.
  - Нажать кнопку <syntaxhighlight lang='bash'>
'"Резервная копия"
</syntaxhighlight>'.


[[File:21_бекап.png]]
[[File:21_бекап.png]]


  - Зайти в сломанную базу.
Зайти в сломанную базу.
  - Найти таблицу <syntaxhighlight lang='bash'>
Найти таблицу '''"config"'''.
'"config"
Кликнуть правой кнопкой мышки по таблице '''"сonfig"''' и выбрать пункт '''"Очистить"'''.
</syntaxhighlight>'.
Кликнуть правой кнопкой мышки по таблице '''"сonfig"''' и выбрать пункт '''"Восстановить"'''.
  - Кликнуть правой кнопкой мышки по таблице <syntaxhighlight lang='bash'>
Выбирать файл резервной копии.
'"сonfig"
Нажать кнопку '''"Восстановить"'''.
</syntaxhighlight>' и выбрать пункт <syntaxhighlight lang='bash'>
'"Очистить"
</syntaxhighlight>'.
  - Кликнуть правой кнопкой мышки по таблице <syntaxhighlight lang='bash'>
'"сonfig"
</syntaxhighlight>' и выбрать пункт <syntaxhighlight lang='bash'>
'"Восстановить"
</syntaxhighlight>'.
  - Выбирать файл резервной копии.
  - Нажать кнопку <syntaxhighlight lang='bash'>
'"Восстановить"
</syntaxhighlight>'.


[[File:22_бекап.png]]
[[File:22_бекап.png]]
Строка 269: Строка 213:
* Выгрузка конфигурации информационной базы в файл
* Выгрузка конфигурации информационной базы в файл


__ Резервное копирование сторонними программными средствами__
''' Резервное копирование сторонними программными средствами'''
* Существует условно бесплатная утилита PostgreSQL Backup Tool.
* Существует условно бесплатная утилита PostgreSQL Backup Tool.
* Позволяет настроить резервное копирование баз на FTP-сервер, в облако, на локальную или сетевую папку.
* Позволяет настроить резервное копирование баз на FTP-сервер, в облако, на локальную или сетевую папку.
* Существует ограничение бесплатной версии – резервное копирование можно настроить только на две базы.
* Существует ограничение бесплатной версии – резервное копирование можно настроить только на две базы.


  - Открыть программу
Открыть программу
  - Подключиться к серверу, нажав кнопку <syntaxhighlight lang='bash'>
Подключиться к серверу, нажав кнопку '''"Conect"'''  
'"Conect"
Кликнуть по кнопке '''"Save & Close"'''
</syntaxhighlight>'  
Выбирать таблицу, поставив галочку
  - Кликнуть по кнопке <syntaxhighlight lang='bash'>
'"Save & Close"
</syntaxhighlight>'
  - Выбирать таблицу, поставив галочку


[[File:30_бекап.png]]
[[File:30_бекап.png]]
Строка 293: Строка 233:
[[File:32_бекап.png]]
[[File:32_бекап.png]]


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


Понадобится:
Понадобится:
  - Бесплатный SFTP клиент WinSCP для копирования на FTP сервер
Бесплатный SFTP клиент WinSCP для копирования на FTP сервер
  - Командная строка.
Командная строка.


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


Скрипт для выгрузки SQL дампов ИБ
Скрипт для выгрузки SQL дампов ИБ
* cd /D C:<br/>Program Files<br/>PostgresPro 1C<br/>9.6<br/>bin
* cd /D C:\Program Files\PostgresPro 1C<br/>9.6\bin
* pg_dump -U postgres ZUP > D:<br/>work<br/>backups<br/>%DATE%_ZUP.sql
* pg_dump -U postgres ZUP > D:\work\backups\%DATE%_ZUP.sql
* pg_dump -U postgres UNF > D:<br/>work<br/>backups<br/>%DATE%_UNF.sql
* pg_dump -U postgres UNF > D:\work\backups\%DATE%_UNF.sql
* pg_dump -U postgres UT > D:<br/>work<br/>backups<br/>%DATE%_UT.sql
* pg_dump -U postgres UT > D:\work\backups\%DATE%_UT.sql
* pg_dump -U postgres bu-2 > D:<br/>work<br/>backups<br/>%DATE%_bu-2.sql
* pg_dump -U postgres bu-2 > D:\work\backups\%DATE%_bu-2.sql
* pg_dump -U postgres bu-3 > D:<br/>work<br/>backups<br/>%DATE%_bu-3.sql
* pg_dump -U postgres bu-3 > D:\work\backups\%DATE%_bu-3.sql
* pg_dump -U postgres bu-serv > D:<br/>work<br/>backups<br/>%DATE%_bu-serv.sql
* pg_dump -U postgres bu-serv > D:\work\backups\%DATE%_bu-serv.sql
* pg_dump -U postgres MWP > D:<br/>work<br/>backups<br/>%DATE%_MWP.sql
* pg_dump -U postgres MWP > D:\work\backups\%DATE%_MWP.sql


Скрипт для выгрузки дампов на FTP сервер
Скрипт для выгрузки дампов на FTP сервер
* cd /d D:<br/>work<br/>backups
* cd /d D:\work\backups
* "C:<br/>Program Files (x86)<br/>WinSCP<br/>WinSCP.exe" /command ^
* "C:\Program Files (x86)\WinSCP\WinSCP.exe" /command ^
* "option confirm on" ^
* "option confirm on" ^
* "option batch abort" ^
* "option batch abort" ^
* "open ftp://u141841:dJic0o0ed02s3Jto@u141841.your-storagebox.de" ^
* "open ftp://u141841:dJic0o0ed02s3Jto@u141841.your-storagebox.de" ^
* "synchronize remote -criteria=time ..<br/>backups<br/>/arhiv" ^
* "synchronize remote -criteria=time ..\backups\/arhiv" ^
* "cd /arhiv"^
* "cd /arhiv"^
* "rm *<4D"
* "rm *<4D"


Скрипт для очистки временной папки
Скрипт для очистки временной папки
* cd /d D:<br/>work<br/>backups
* cd /d D:\work\backups
* del %DATE%_ZUP.sql
* del %DATE%_ZUP.sql
* del %DATE%_UNF.sql
* del %DATE%_UNF.sql
Строка 336: Строка 276:
Резервное копирование скриптами
Резервное копирование скриптами


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


Строка 342: Строка 282:


https://www.youtube.com/watch?v=6HDFmCEZKTk&feature=youtu.be
https://www.youtube.com/watch?v=6HDFmCEZKTk&feature=youtu.be
[[Category:1 основная инструкция]]
<vote type=1 />