Имя: Пароль:
1C
1С v8
postgresql восстановление из резервной копии
,
0 Александр111
 
06.08.20
14:51
Имеется резервная копия.
При восстановлении с помощью pgadmin в чистую (новую) базу все ок.
При восстановлении в рабочую базу - ошибка.
В 1с сервере блокировки на рабочую базу установлены.
С postgre раньше не работал.
Куда копать?
1 Garykom
 
гуру
06.08.20
15:36
(0) копать в остановку сервера 1С
2 bolero
 
06.08.20
15:39
(0) есть три вида людей: кто не делает бэкапы, кто уже делает, и кто теперь еще и проверяет, что из него можно восстановиться (c)

не переживай, просто перед восстановлением база должна быть пустая

например на всякий случай схороняешь рабочую, делаешь новую пустую:
alter database ut rename to ut_backup_crashed;
create database ut;

но если ты прям на рабочую уже пытался накатить бэкап, скорее всего ей кирдык
3 Philix
 
06.08.20
15:39
(0) Восстановление базы из бэкапа postgresql только в пустую базу. После восстановления можешь на сервере приложений 1С изменить имя БД на свежевосстановленную.
4 Garykom
 
гуру
06.08.20
15:40
(2) (3) это если надо чтобы сервер 1С продолжал с другими базами работать а можно просто (1)
5 Philix
 
06.08.20
15:57
Вот тут (Резервное копирование и восстановление баз 1С на postgresql) наш коллега пару лет тому назад бодался с вопросом.
6 Александр111
 
06.08.20
15:58
1 - не подходит, 2 - база экспериментальная, в mssql - можно
7 Garykom
 
гуру
06.08.20
15:59
(6) в mssql тоже нельзя просто он ошибку не пишет
8 Александр111
 
06.08.20
16:06
7- можно, не раз восстанавливал.
9 Garykom
 
гуру
06.08.20
16:08
(8) как повезет а можно словить "ошибку формата потока"
10 Garykom
 
гуру
06.08.20
16:09
"-На красный свет перекресток переходить нельзя!"
"-Фигня можно, не раз переходил..."
11 Александр111
 
06.08.20
16:32
Какие средства для резервного копирования лучше использовать (для полной копии)?
12 Fedor-1971
 
06.08.20
16:33
(8) Если к БД mssql нет сессий и используется режим Shared memory (для сетевых протоколов - могут быть служебные сессии, что-бы проверить живая БД или нет), то можно.

Но для рабочей я бы не рисковал восстанавливать данные при работающем сервере,
для тестов не вопрос, если что, можно прибить БД и залить в чистую всё равно никому не мешаешь
13 Garykom
 
гуру
06.08.20
16:41
(12) как минимум при работающем сервере хз что происходит с нумераторами
14 Fedor-1971
 
06.08.20
16:45
(11) Для файловой - копирование при сбитых сессиях (Закрыть соединение для работы регламентов и можно тупо закрыть шару и подождать пару минут)

Для SQL:
- штатная выгрузка бэкапа
- остановка сервера 1С, остановка сервисов SQL, простое копирование файлов БД, запуск назад сервисов

Есть приблуды для резевного копирования (например, Zabbix и прочие), но широкий функционал, в основном, предоставляется платно. Урезанные версии могут не иметь требуемого функционала, превышающего возможности bat или cmd

(13) достаточно легко чинится через ОбновитьНумерациюОбъектов();, иногда и  на работающей БД нумерация слетает. Но восстанавливать БД при работающем сервере 1С - зло и подстава подстав (не угадаешь что может сломаться)
15 Lexandr
 
06.08.20
20:42
Останавливать сервер - это жестоко. Проще запретить новые сессии, снести базу , создать новую и залить туда бэкап. В идеале конечно надо проверит бэкап на тестовой, если есть возможность. А если уж решил заливать в существующую, то надо использовать ключ очистки таблиц, иначе ошибки. Да в инете есть скрипты для сохранения и восстановления баз postgresql.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.