powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Бекап и восстановление в pgAdmin
4 сообщений из 4, страница 1 из 1
Бекап и восстановление в pgAdmin
    #40140525
prospector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Столкнулся с тем, что из бекапов, сделанных с помощью pg_dump восстановление происходит с ошибками.
База данных после такого восстановления может даже не открываться.

Далее стал экспериментировать.
Делаю бекап средствами pgAdmin. И там же восстанавливаю в целевую базу. Целевая база чистая.
При восстановлении получаю ошибки:
Спойлер
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 125521; 2606 167720210 CONSTRAINT params params_pkey postgres
pg_restore: error: could not execute query: ERROR: could not create unique index "params_pkey"
DETAIL: Key (filename, partno)=(ibparams.inf, 0) is duplicated.
...

pg_restore: from TOC entry 125532; 1259 167720384 INDEX byname postgres
pg_restore: error: could not execute query: ERROR: relation "byname" already exists
Command was: CREATE INDEX byname ON public.v8users USING btree (name);

pg_restore: creating INDEX "public.byname_v8userpwdplcs"
pg_restore: from TOC entry 125544; 1259 167720417 INDEX byname_v8userpwdplcs postgres
pg_restore: error: could not execute query: ERROR: relation "byname_v8userpwdplcs" already exists
Command was: CREATE INDEX byname_v8userpwdplcs ON public.v8userpwdplcs USING btree (name);
...

pg_restore: creating INDEX "public.byname"
pg_restore: from TOC entry 125532; 1259 167720384 INDEX byname postgres
pg_restore: error: could not execute query: ERROR: relation "byname" already exists
Command was: CREATE INDEX byname ON public.v8users USING btree (name);

pg_restore: creating INDEX "public.byname_v8userpwdplcs"
pg_restore: from TOC entry 125544; 1259 167720417 INDEX byname_v8userpwdplcs postgres
pg_restore: error: could not execute query: ERROR: relation "byname_v8userpwdplcs" already exists
Command was: CREATE INDEX byname_v8userpwdplcs ON public.v8userpwdplcs USING btree (name);
Подскажите, есть ли более надежная схема создания бекапов и восстановления из них?
...
Рейтинг: 0 / 0
Бекап и восстановление в pgAdmin
    #40140542
Участковый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
prospector  06.04.2025, 17:26
[игнорируется]
Добрый день.

Столкнулся с тем, что из бекапов, сделанных с помощью pg_dump восстановление происходит с ошибками.
База данных после такого восстановления может даже не открываться.

Далее стал экспериментировать.
Делаю бекап средствами pgAdmin. И там же восстанавливаю в целевую базу. Целевая база чистая.
При восстановлении получаю ошибки:
Спойлер
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 125521; 2606 167720210 CONSTRAINT params params_pkey postgres
pg_restore: error: could not execute query: ERROR: could not create unique index "params_pkey"
DETAIL: Key (filename, partno)=(ibparams.inf, 0) is duplicated.
...

pg_restore: from TOC entry 125532; 1259 167720384 INDEX byname postgres
pg_restore: error: could not execute query: ERROR: relation "byname" already exists
Command was: CREATE INDEX byname ON public.v8users USING btree (name);

pg_restore: creating INDEX "public.byname_v8userpwdplcs"
pg_restore: from TOC entry 125544; 1259 167720417 INDEX byname_v8userpwdplcs postgres
pg_restore: error: could not execute query: ERROR: relation "byname_v8userpwdplcs" already exists
Command was: CREATE INDEX byname_v8userpwdplcs ON public.v8userpwdplcs USING btree (name);
...

pg_restore: creating INDEX "public.byname"
pg_restore: from TOC entry 125532; 1259 167720384 INDEX byname postgres
pg_restore: error: could not execute query: ERROR: relation "byname" already exists
Command was: CREATE INDEX byname ON public.v8users USING btree (name);

pg_restore: creating INDEX "public.byname_v8userpwdplcs"
pg_restore: from TOC entry 125544; 1259 167720417 INDEX byname_v8userpwdplcs postgres
pg_restore: error: could not execute query: ERROR: relation "byname_v8userpwdplcs" already exists
Command was: CREATE INDEX byname_v8userpwdplcs ON public.v8userpwdplcs USING btree (name);
Подскажите, есть ли более надежная схема создания бекапов и восстановления из них?
Если это средство попробовать? pg_basebackup

https://postgrespro.ru/docs/postgresql/16/app-pgbasebackup
...
Рейтинг: 0 / 0
Бекап и восстановление в pgAdmin
    #40140543
Участковый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
...
Рейтинг: 0 / 0
Бекап и восстановление в pgAdmin
    #40140544
prospector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Участковый [игнорируется] 

Не подходит по причине того, что копия всего кластера мне не нужна.
Незачем бекапить тестовые базы. Да и места такой бекап займет примерно в 2 раза больше.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Бекап и восстановление в pgAdmin
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]