|
Ошибки при восстановлении БД Postgres из sql-бэкапа | ☑ | ||
|---|---|---|---|---|
|
0
zelenprog
20.01.25
✎
14:49
|
Здравствуйте!
Клиент-серверная база "Комплексная автоматизация 2.5". Сервер баз данных - PostgreSQL. Каждую ночь создается бэкап в текстовом формате в виде сжатого sql-файла. Пытаюсь сделать копию базы на том же самом сервере БД. Для этого сначала создаю чистую БД и восстанавливаю в нее данные из бэкапа средствами Postgres-а. В режиме psql выполняю команды: 1) create database db_copy; 2) \с db_copy 3) \i db_backup_2025-01-20.sql При восстановлении БД в консоль выводится текст выполняемых sql-команд. После выполнения всех команд проверяю что там вывелось в консоль, и вижу вот такие ошибки: Строка 52: psql:/var/archive/complex2020_dev_2025-01-20.sql:180: ОШИБКА: функция "datediff2" с аргументами таких типов уже существует
Строка 47841: psql:/var/archive/complex2020_dev_2025-01-20.sql:10042906: ОШИБКА: создать уникальный индекс "paramsng_pkey" не удалось DETAIL: Ключ (filename, partno)=(ibparams.inf, 0) дублируется. Строка 89817: psql:/var/archive/complex2020_dev_2025-01-20.sql:10277953: ОШИБКА: отношение "byname" уже существует Строка 89818: psql:/var/archive/complex2020_dev_2025-01-20.sql:10277960: ОШИБКА: отношение "byname_v8userpwdplcs" уже существует Не могу понять причину этих ошибок. Откуда в новой чистой базе могли появиться эти объекты? Что надо сделать, чтобы этих ошибок не было? Помогите разобраться. |
|||
|
1
vbus
20.01.25
✎
14:55
|
А какой командой каждую ночь создается резервная копия?
|
|||
|
2
zelenprog
20.01.25
✎
15:20
|
(1) pg_dump -U postgres complex2020_dev | pigz > complex2020_dev_$TIME.sql.gz
|
|||
|
3
ansh15
20.01.25
✎
15:34
|
Что-то смутно припоминается насчет datediff2 и уникальности индекса в эпоху Pg редакций от 10 до 12 - https://forum.infostart.ru/forum16/topic260082/
Может, при выгрузке в sql файл, создание функции, индекса и таблиц два раза было записано, типа глюк конкретной версии Pg... |
|||
|
4
vbus
20.01.25
✎
15:40
|
Выглядит нормально, а что в скрипте db_backup_2025-01-20.sql
|
|||
|
5
zelenprog
22.01.25
✎
08:33
|
Разобрался в чем дело...
Информационная база в кластере 1С "ссылается" на базу данных PostgreSQL. При этом кластер постоянно "лезет" в БД Postgres-а, и "мешает" восстановлению БД в Postgres-е. Для восстановления надо временно разорвать "связь" между информационной базой и базой данных. Вот здесь хорошо написано: https://helpme1s.ru/nastrojka-sql-arxivov-ms-sql-server-i-postgrgesql-v-obnovlyatore-v3#___postgres |
| Форум | Правила | Описание | Секции | Поиск |