@Nobody_Admin
Швец, жнец, дежурный фиксик, личинка эникейщика.

Почему возникает ошибка при восстановлении БД?

Использую сервер 1С в связке с Постгрессом. Настраиваю резервное копирование в Постгрессе, столкнулся с проблемой. Дамп создается командой
pg_dump.exe -U postgres -F c -f "filename.backup" db_name
и завершается успешно. Однако, при попытке восстановить в тестовую базу командой
pg_restore.exe -i -h localhost -p 5432 -U postgres -d test_db -v "filename.backup"
получаю ошибки вида
pg_restore: создаётся TABLE _documentchngr8405
pg_restore: [архиватор (БД)] Ошибка из записи оглавления 1155; 1259 3384304 TABL
E _documentchngr8405 postgres
pg_restore: [архиватор (БД)] could not execute query: Р?РЁР?Р'Р?Р?: Р?С'Р?Р?С?Р
чР?РёРч "_documentchngr8405" С?Р¶Рч С?С?С%РчС?С'Р?С?РчС'
Выполнялась команда: CREATE TABLE _documentchngr8405 (
_nodetref bytea NOT NULL,
_noderref bytea NOT NULL,
_messageno numeric(10,0),

и
pg_restore: [archiver (db)] could not execute query: РћРЁР??БКА: нераспознанный параметр конфигурации: "row_security"

Обе базы созданы средствами 1С, напрямую в Постгрессе базы не создавались. Кодировка баз одинаковая, UTF8. Для обеих баз запрос из PgAdmin выглядит так, меняется только имя базы
CREATE DATABASE test_db
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'Russian_Russia.1251'
       LC_CTYPE = 'Russian_Russia.1251'
       CONNECTION LIMIT = -1;


Где допущена ошибка? подозреваю, что дело в кодировках, но где именно?
  • Вопрос задан
  • 6582 просмотра
Решения вопроса 1
@Nobody_Admin Автор вопроса
Швец, жнец, дежурный фиксик, личинка эникейщика.
Вопрос решен, неправильно были сформированы сами дампы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
а
нераспознанный параметр конфигурации: "row_security"
уже распознал?
Ответ написан
@Dementor
программист, архитектор, аналитик
Попробуйте сделать архив с явным указанием кодировки UTF8.

-E encoding
--encoding=encoding
Create the dump in the specified character set encoding. By default, the dump is created in the database encoding. (Another way to get the same result is to set the PGCLIENTENCODING environment variable to the desired dump encoding.)
Ответ написан
SCINER
@SCINER
Просто дамп сделан в более новой версии PostgreSQL.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы