I have a Postgres 8.4 database on a linux server that I have dumped using the following command:
pg_dump --format=c --exclude-table=log --file=/path/to/output my_db
I then ftp the created file to my local Windows 7 machine and attempt to restore the file to my local Postgres 8.4 instance using the following command:
pg_restore --create --exit-on-error --verbose c:\path\to\file
The restore command generates plenty of output claiming it created my database, connected to it, and then created all the other tables as expected. However, when I view the databases on my local machine through pgAdmin the restored database doesn’t exist at all.
In an attempt to troubleshoot I tried the following command:
pg_restore --create --exit-on-error --verbose --host=blahblah --username=no_one c:\path\to\file
When I run this command even though the host and username given are complete nonsense I still get the exact same output from the command without any errors.
Has anyone run into this before or know what could by causing this?
asked May 5, 2011 at 16:09
0
You have to add the name of a valid database to initially connect to or it will just dump the contents to STDOUT:
pg_restore --create --exit-on-error --verbose --dbname=postgres <backup_file>
answered May 5, 2011 at 16:31
Matthew WoodMatthew Wood
16k5 gold badges46 silver badges35 bronze badges
8
This is still confusing, I attempted to execute this thing that the —dbname should be the db I want to create.
pg_restore --create --exit-on-error --verbose --dbname=jiradb jiradb.tar
WRONG!!
It should literally be —dbname=postgres, the —create then will create the real db from the name in the file. In my case, I restored from a tar backup with
pg_restore --create --exit-on-error --verbose --dbname=postgres jiradb.tar
icyerasor
5,0031 gold badge43 silver badges52 bronze badges
answered Dec 14, 2018 at 19:12
tgunrtgunr
1,54017 silver badges31 bronze badges
2
I’m trying to backup up an entire postgres database and restore it properly, however I am seeing a list of errors when trying to restore the backup.
I am using pg_dump to create a backup sql file. (I have a .pgpass file for password)
sudo -u postgres pg_dump -d db-w > backup.sql
When I try to restore the database with:
sudo -u postgres psql db < backup.sql
I get a list of errors like:
ERROR: duplicate key value violates unique constraint
ERROR: multiple primary keys for table
ERROR: relation <relation> already exists
ERROR: trigger <trigger> for relation <relation> already exist
I haven’t made any changes to the database. I simply performed a backup and restore the backup right after.
What am I doing wrong?
asked Dec 7, 2016 at 19:55
1
your restoring on an existing database, if you want and sure to replace database with the backup you can use option —clean and —create
-c, —clean
Clean (drop) database objects before recreating them. (This might
generate some harmless error messages, if any objects were not
present in the destination database.)-C, —create
Create the database before restoring into it. If —clean is also
specified, drop and recreate the target database before connecting
to it.
answered Dec 7, 2016 at 21:47
2
I have a Postgres 8.4 database on a linux server that I have dumped using the following command:
pg_dump --format=c --exclude-table=log --file=/path/to/output my_db
I then ftp the created file to my local Windows 7 machine and attempt to restore the file to my local Postgres 8.4 instance using the following command:
pg_restore --create --exit-on-error --verbose c:\path\to\file
The restore command generates plenty of output claiming it created my database, connected to it, and then created all the other tables as expected. However, when I view the databases on my local machine through pgAdmin the restored database doesn’t exist at all.
In an attempt to troubleshoot I tried the following command:
pg_restore --create --exit-on-error --verbose --host=blahblah --username=no_one c:\path\to\file
When I run this command even though the host and username given are complete nonsense I still get the exact same output from the command without any errors.
Has anyone run into this before or know what could by causing this?
asked May 5, 2011 at 16:09
0
You have to add the name of a valid database to initially connect to or it will just dump the contents to STDOUT:
pg_restore --create --exit-on-error --verbose --dbname=postgres <backup_file>
answered May 5, 2011 at 16:31
Matthew WoodMatthew Wood
16k5 gold badges46 silver badges35 bronze badges
8
This is still confusing, I attempted to execute this thing that the —dbname should be the db I want to create.
pg_restore --create --exit-on-error --verbose --dbname=jiradb jiradb.tar
WRONG!!
It should literally be —dbname=postgres, the —create then will create the real db from the name in the file. In my case, I restored from a tar backup with
pg_restore --create --exit-on-error --verbose --dbname=postgres jiradb.tar
icyerasor
5,0031 gold badge43 silver badges52 bronze badges
answered Dec 14, 2018 at 19:12
tgunrtgunr
1,54017 silver badges31 bronze badges
2
Хочу поделиться с вами моим первым успешным опытом восстановления полной работоспособности базы данных Postgres. С СУБД Postgres я познакомился пол года назад, до этого опыта администрирования баз данных у меня не было совсем.
Я работаю полу-DevOps инженером в крупной IT-компании. Наша компания занимается разработкой программного обеспечения для высоконагруженных сервисов, я же отвечаю за работоспособность, сопровождение и деплой. Передо мной поставили стандартную задачу: обновить приложение на одном сервере. Приложение написано на Django, во время обновления выполняются миграции (изменение структуры базы данных), и перед этим процессом мы снимаем полный дамп базы данных через стандартную программу pg_dump на всякий случай.
Во время снятия дампа возникла непредвиденная ошибка (версия Postgres – 9.5):
pg_dump: Oumping the contents of table “ws_log_smevlog” failed: PQgetResult() failed.
pg_dump: Error message from server: ERROR: invalid page in block 4123007 of relatton base/16490/21396989
pg_dump: The command was: COPY public.ws_log_smevlog [...]
pg_dunp: [parallel archtver] a worker process dled unexpectedly
Ошибка «invalid page in block» говорит о проблемах на уровне файловой системы, что очень нехорошо. На различных форумах предлагали сделать FULL VACUUM с опцией zero_damaged_pages для решения данной проблемы. Что же, попрробеум…
Подготовка к восстановлению
ВНИМАНИЕ! Обязательно сделайте резервную копию Postgres перед любой попыткой восстановить базу данных. Если у вас виртуальная машина, остановите базу данных и сделайте снепшот. Если нет возможности сделать снепшот, остановите базу и скопируйте содержимое каталога Postgres (включая wal-файлы) в надёжное место. Главное в нашем деле – не сделать хуже. Прочтите это.
Поскольку в целом база у меня работала, я ограничился обычным дампом базы данных, но исключил таблицу с повреждёнными данными (опция -T, —exclude-table=TABLE в pg_dump).
Сервер был физическим, снять снепшот было невозможно. Бекап снят, двигаемся дальше.
Проверка файловой системы
Перед попыткой восстановления базы данных необходимо убедиться, что у нас всё в порядке с самой файловой системой. И в случае ошибок исправить их, поскольку в противном случае можно сделать только хуже.
В моём случае файловая система с базой данных была примонтирована в «/srv» и тип был ext4.
Останавливаем базу данных: systemctl stop postgresql@9.5-main.service и проверяем, что файловая система никем не используется и её можно отмонтировать с помощью команды lsof:
lsof +D /srv
Мне пришлось ещё остановить базу данных redis, так как она тоже исползовала «/srv». Далее я отмонтировал /srv (umount).
Проверка файловой системы была выполнена с помощью утилиты e2fsck с ключиком -f (Force checking even if filesystem is marked clean):
Далее с помощью утилиты dumpe2fs (sudo dumpe2fs /dev/mapper/gu2—sys-srv | grep checked) можно убедиться, что проверка действительно была произведена:
e2fsck говорит, что проблем на уровне файловой системы ext4 не найдено, а это значит, что можно продолжать попытки восстановить базу данных, а точнее вернуться к vacuum full (само собой, необходимо примонтирвоать файловую систему обратно и запустить базу данных).
Если у вас сервер физический, то обязательно проверьте состояние дисков (через smartctl -a /dev/XXX) либо RAID-контроллера, чтобы убедиться, что проблема не на аппаратном уровне. В моём случае RAID оказался «железный», поэтому я попросил местного админа проверить состояние RAID (сервер был в нескольких сотнях километров от меня). Он сказал, что ошибок нет, а это значит, что мы точно можем начать восстановление.
Попытка 1: zero_damaged_pages
Подключаемся к базе через psql аккаунтом, обладающим правами суперпользователя. Нам нужен именно суперпользователь, т.к. опцию zero_damaged_pages может менять только он. В моём случае это postgres:
psql -h 127.0.0.1 -U postgres -s [database_name]
Опция zero_damaged_pages нужна для того, чтобы проигнорировать ошибки чтения (с сайта postgrespro):
При выявлении повреждённого заголовка страницы Postgres Pro обычно сообщает об ошибке и прерывает текущую транзакцию. Если параметр zero_damaged_pages включён, вместо этого система выдаёт предупреждение, обнуляет повреждённую страницу в памяти и продолжает обработку. Это поведение разрушает данные, а именно все строки в повреждённой странице.
Включаем опцию и пробуем делать full vacuum таблицы:
VACUUM FULL VERBOSE
К сожалению, неудача.
Мы столкнулись с аналогичной ошибкой:
INFO: vacuuming "“public.ws_log_smevlog”
WARNING: invalid page in block 4123007 of relation base/16400/21396989; zeroing out page
ERROR: unexpected chunk number 573 (expected 565) for toast value 21648541 in pg_toast_106070
pg_toast – механизм хранения «длинных данных» в Postgres, если они не помещаются в одну страницу (по умолчанию 8кб).
Попытка 2: reindex
Первый совет из гугла не помог. После нескольких минут поиска я нашёл второй совет – сделать reindex повреждённой таблицы. Этот совет я встречал во многих местах, но он не внушал доверия. Сделаем reindex:
reindex table ws_log_smevlog
reindex завершился без проблем.
Однако это не помогло, VACUUM FULL аварийно завершался с аналогичной ошибкой. Поскольку я привык к неудачам, я стал искать советов в интернете дальше и наткнулся на довольно интересную статью.
Попытка 3: SELECT, LIMIT, OFFSET
В статье выше предлагали посмотреть таблицу построчно и удалить проблемные данные. Для начала необходимо было просмотреть все строки:
for ((i=0; i<"Number_of_rows_in_nodes"; i++ )); do psql -U "Username" "Database Name" -c "SELECT * FROM nodes LIMIT 1 offset $i" >/dev/null || echo $i; done
В моём случае таблица содержала 1 628 991 строк! По-хорошему необходимо было позаботиться о партициирвоании данных, но это тема для отдельного обсуждения. Была суббота, я запустил вот эту команду в tmux и пошёл спать:
for ((i=0; i<1628991; i++ )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog LIMIT 1 offset $i" >/dev/null || echo $i; done
К утру я решил проверить, как обстоят дела. К моему удивлению, я обнаружил, что за 20 часов было просканировано только 2% данных! Ждать 50 дней я не хотел. Очередной полный провал.
Но я не стал сдаваться. Мне стало интересно, почему же сканирование шло так долго. Из документации (опять на postgrespro) я узнал:
OFFSET указывает пропустить указанное число строк, прежде чем начать выдавать строки.
Если указано и OFFSET, и LIMIT, сначала система пропускает OFFSET строк, а затем начинает подсчитывать строки для ограничения LIMIT.Применяя LIMIT, важно использовать также предложение ORDER BY, чтобы строки результата выдавались в определённом порядке. Иначе будут возвращаться непредсказуемые подмножества строк.
Очевидно, что вышенаписанная команда была ошибочной: во-первых, не было order by, результат мог получиться ошибочным. Во-вторых, Postgres сначала должен был просканировать и пропустить OFFSET-строк, и с возрастанием OFFSET производительность снижалась бы ещё сильнее.
Попытка 4: снять дамп в текстовом виде
Далее мне в голову пришла, казалось бы, гениальная идея: снять дамп в текстовом виде и проанализировать последнюю записанную строку.
Но для начала, ознакомимся со структурой таблицы ws_log_smevlog:
В нашем случае у нас есть столбец «id», который содержал уникальный идентификатор (счётчик) строки. План был такой:
- Начинаем снимать дамп в текстовом виде (в виде sql-команд)
- В определённый момент времени снятия дампа бы прервалось из-за ошибки, но тектовый файл всё равно сохранился бы на диске
- Смотрим конец текстового файла, тем самым мы находим идентификатор (id) последней строки, которая снялась успешно
Я начал снимать дамп в текстовом виде:
pg_dump -U my_user -d my_database -F p -t ws_log_smevlog -f ./my_dump.dump
Снятия дампа, как и ожидалось, прервался с той же самой ошибкой:
pg_dump: Error message from server: ERROR: invalid page in block 4123007 of relatton base/16490/21396989
Далее через tail я просмотрел конец дампа (tail -5 ./my_dump.dump) обнаружил, что дамп прервался на строке с id 186 525. «Значит, проблема в строке с id 186 526, она битая, её и надо удалить!» – подумал я. Но, сделав запрос в базу данных:
«select * from ws_log_smevlog where id=186529» обнаружилось, что с этой строкой всё нормально… Строки с индексами 186 530 — 186 540 тоже работали без проблем. Очередная «гениальная идея» провалилась. Позже я понял, почему так произошло: при удаленииизменении данных из таблицы они не удаляются физически, а помечаются как «мёртвые кортежи», далее приходит autovacuum и помечает эти строки удалёнными и разрешает использовать эти строки повторно. Для понимания, если данные в таблице меняются и включён autovacuum, то они не хранятся последовательно.
Попытка 5: SELECT, FROM, WHERE id=
Неудачи делают нас сильнее. Не стоит никогда сдаваться, нужно идти до конца и верить в себя и свои возможности. Поэтому я решил попробовать ешё один вариант: просто просмотреть все записи в базе данных по одному. Зная структуру моей таблицы (см. выше), у нас есть поле id, которое является уникальным (первичным ключом). В таблице у нас 1 628 991 строк и id идут по порядку, а это значит, что мы можем просто перербрать их по одному:
for ((i=1; i<1628991; i=$((i+1)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done
Если кто не понимает, команда работает следующим образом: просматривает построчно таблицу и отправляет stdout в /dev/null, но если команда SELECT проваливается, то выводится текст ошибки (stderr отправляется в консоль) и выводится строка, содержащая ошибку (благодаря ||, которая означает, что у select возникли проблемы (код возврата команды не 0)).
Мне повезло, у меня были созданы индексы по полю id:
А это значит, что нахождение строки с нужным id не должен занимать много времени. В теории должно сработать. Что же, запускаем команду в tmux и идём спать.
К утру я обнаружил, что просмотрено около 90 000 записей, что составляет чуть более 5%. Отличный результат, если сравнивать с предыдущим способом (2%)! Но ждать 20 дней не хотелось…
Попытка 6: SELECT, FROM, WHERE id >= and id <
У заказчика под БД был выделен отличный сервер: двухпроцессорный Intel Xeon E5-2697 v2, в нашем расположении было целых 48 потоков! Нагрузка на сервере была средняя, мы без особых проблем могли забрать около 20-ти потоков. Оперативной памяти тоже было достаточно: аж 384 гигабайт!
Поэтому команду нужно было распараллелить:
for ((i=1; i<1628991; i=$((i+1)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done
Тут можно было написать красивый и элегантный скрипт, но я выбрал наиболее быстрый способ распараллеливания: разбить диапазон 0-1628991 вручную на интервалы по 100 000 записей и запустить отдельно 16 команд вида:
for ((i=N; i<M; i=$((i+1)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done
Но это не всё. По идее, подключение к базе данных тоже отнимает какое-то время и системные ресурсы. Подключать 1 628 991 было не очень разумно, согласитесь. Поэтому давайте при одном подключении извлекать 1000 строк вместо одной. В итоге команда преобразилоась в это:
for ((i=N; i<M; i=$((i+1000)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done
Открываем 16 окон в сессии tmux и запускаем команды:
1) for ((i=0; i<100000; i=$((i+1000)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done 2) for ((i=100000; i<200000; i=$((i+1000)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done … 15) for ((i=1400000; i<1500000; i=$((i+1000)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done 16) for ((i=1500000; i<1628991; i=$((i+1000)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done
Через день я получил первые результаты! А именно (значения XXX и ZZZ уже не сохранились):
ERROR: missing chunk number 0 for toast value 37837571 in pg_toast_106070
829000
ERROR: missing chunk number 0 for toast value XXX in pg_toast_106070
829000
ERROR: missing chunk number 0 for toast value ZZZ in pg_toast_106070
146000
Это значит, что у нас три строки содержат ошибку. id первой и второй проблемной записи находились между 829 000 и 830 000, id третьей – между 146 000 и 147 000. Далее нам предстояло просто найти точное значение id проблемных записей. Для этого просматриваем наш диапазон с проблемными записями с шагом 1 и идентифицируем id:
for ((i=829000; i<830000; i=$((i+1)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done 829417 ERROR: unexpected chunk number 2 (expected 0) for toast value 37837843 in pg_toast_106070 829449 for ((i=146000; i<147000; i=$((i+1)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done 829417 ERROR: unexpected chunk number ZZZ (expected 0) for toast value XXX in pg_toast_106070 146911
Счастливый финал
Мы нашли проблемные строки. Заходим в базу через psql и пробуем их удалить:
my_database=# delete from ws_log_smevlog where id=829417;
DELETE 1
my_database=# delete from ws_log_smevlog where id=829449;
DELETE 1
my_database=# delete from ws_log_smevlog where id=146911;
DELETE 1
К моему удивлению, записи удалились без каких-либо проблем даже без опции zero_damaged_pages.
Затем я подключился к базе, сделал VACUUM FULL (думаю делать было необязательно), и, наконец, успешно снял бекап с помощью pg_dump. Дамп снялся без каких либо ошибок! Проблему удалось решить таким вот тупейшим способом. Радости не было предела, после стольких неудач удалось найти решение!
Благодарности и заключение
Вот такой получился мой первый опыт восстановления реальной базы данных Postgres. Этот опыт я запомню надолго.
Ну и напоследок, хотел бы сказать спасибо компании PostgresPro за переведённую документацию на русский язык и за полностью бесплатные online-курсы, которые очень сильно помогли во время анализа проблемы.
I’m trying to backup up an entire postgres database and restore it properly, however I am seeing a list of errors when trying to restore the backup.
I am using pg_dump to create a backup sql file. (I have a .pgpass file for password)
sudo -u postgres pg_dump -d db-w > backup.sql
When I try to restore the database with:
sudo -u postgres psql db < backup.sql
I get a list of errors like:
ERROR: duplicate key value violates unique constraint
ERROR: multiple primary keys for table
ERROR: relation <relation> already exists
ERROR: trigger <trigger> for relation <relation> already exist
I haven’t made any changes to the database. I simply performed a backup and restore the backup right after.
What am I doing wrong?
asked Dec 7, 2016 at 19:55
1
your restoring on an existing database, if you want and sure to replace database with the backup you can use option —clean and —create
-c, —clean
Clean (drop) database objects before recreating them. (This might
generate some harmless error messages, if any objects were not
present in the destination database.)-C, —create
Create the database before restoring into it. If —clean is also
specified, drop and recreate the target database before connecting
to it.
answered Dec 7, 2016 at 21:47
2
I’m trying to backup up an entire postgres database and restore it properly, however I am seeing a list of errors when trying to restore the backup.
I am using pg_dump to create a backup sql file. (I have a .pgpass file for password)
sudo -u postgres pg_dump -d db-w > backup.sql
When I try to restore the database with:
sudo -u postgres psql db < backup.sql
I get a list of errors like:
ERROR: duplicate key value violates unique constraint
ERROR: multiple primary keys for table
ERROR: relation <relation> already exists
ERROR: trigger <trigger> for relation <relation> already exist
I haven’t made any changes to the database. I simply performed a backup and restore the backup right after.
What am I doing wrong?
asked Dec 7, 2016 at 19:55
1
your restoring on an existing database, if you want and sure to replace database with the backup you can use option —clean and —create
-c, —clean
Clean (drop) database objects before recreating them. (This might
generate some harmless error messages, if any objects were not
present in the destination database.)-C, —create
Create the database before restoring into it. If —clean is also
specified, drop and recreate the target database before connecting
to it.
answered Dec 7, 2016 at 21:47
2
I’m taking an intro to SQL course and I can’t get my very first database loaded. I have a file dvdrental.tar, I create a new database dvdrental > right click > Restore > Select File > Pick «Data» under Restore options, and I get the error below.
I’m on Mac OSX and the pgAmin instance is being loaded in Chrome if that helps. I’ve tried deleting and re-adding the database twice and I still get the same error. I also tried reinstalling pgAdmin and fully reinstalling postgresql including removing the user account. I just tried doing it on a fresh install in a Windows environment and I get the exact same error.
I’ve also completely rebooted the computer several times since then. I also just verified that other tar files and a sql file aren’t working.
Here’s the full error, I have no idea what any of it means, as I’m brand new to SQL and just setting it up:
/Library/PostgreSQL/10/bin/pg_restore --host "localhost" --port "5432" --username "postgres" --no-password --dbname "dvdrental" --section=data --verbose "/Users/chasehippen/Downloads/Postgresql/dvdrental.tar"
pg_restore: connecting to database for restore
pg_restore: implied data-only restore
pg_restore: processing data for table "public.actor"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2610; 0 16430 TABLE DATA actor postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "actor" does not exist
Command was: COPY actor (actor_id, first_name, last_name, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET actor_actor_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2643; 0 0 SEQUENCE SET actor_actor_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "actor_actor_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('actor_actor_id_seq', 200, true);
^
Command was: SELECT pg_catalog.setval('actor_actor_id_seq', 200, true);
pg_restore: processing data for table "public.address"
pg_restore: [archiver (db)] Error from TOC entry 2618; 0 16471 TABLE DATA address postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "address" does not exist
Command was: COPY address (address_id, address, address2, district, city_id, postal_code, phone, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET address_address_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2644; 0 0 SEQUENCE SET address_address_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "address_address_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('address_address_id_seq', 605, true...
^
Command was: SELECT pg_catalog.setval('address_address_id_seq', 605, true);
pg_restore: processing data for table "public.category"
pg_restore: [archiver (db)] Error from TOC entry 2612; 0 16437 TABLE DATA category postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "category" does not exist
Command was: COPY category (category_id, name, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET category_category_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2645; 0 0 SEQUENCE SET category_category_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "category_category_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('category_category_id_seq', 16, tru...
^
Command was: SELECT pg_catalog.setval('category_category_id_seq', 16, true);
pg_restore: processing data for table "public.city"
pg_restore: [archiver (db)] Error from TOC entry 2620; 0 16478 TABLE DATA city postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "city" does not exist
Command was: COPY city (city_id, city, country_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET city_city_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2646; 0 0 SEQUENCE SET city_city_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "city_city_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('city_city_id_seq', 600, true);
^
Command was: SELECT pg_catalog.setval('city_city_id_seq', 600, true);
pg_restore: processing data for table "public.country"
pg_restore: [archiver (db)] Error from TOC entry 2622; 0 16485 TABLE DATA country postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "country" does not exist
Command was: COPY country (country_id, country, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET country_country_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2647; 0 0 SEQUENCE SET country_country_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "country_country_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('country_country_id_seq', 109, true...
^
Command was: SELECT pg_catalog.setval('country_country_id_seq', 109, true);
pg_restore: processing data for table "public.customer"
pg_restore: [archiver (db)] Error from TOC entry 2608; 0 16419 TABLE DATA customer postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "customer" does not exist
Command was: COPY customer (customer_id, store_id, first_name, last_name, email, address_id, activebool, create_date, last_update, active) FROM stdin;
pg_restore: executing SEQUENCE SET customer_customer_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2648; 0 0 SEQUENCE SET customer_customer_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "customer_customer_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('customer_customer_id_seq', 599, tr...
^
Command was: SELECT pg_catalog.setval('customer_customer_id_seq', 599, true);
pg_restore: processing data for table "public.film"
pg_restore: [archiver (db)] Error from TOC entry 2614; 0 16444 TABLE DATA film postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "film" does not exist
Command was: COPY film (film_id, title, description, release_year, language_id, rental_duration, rental_rate, length, replacement_cost, rating, last_update, special_features, fulltext) FROM stdin;
pg_restore: processing data for table "public.film_actor"
pg_restore: [archiver (db)] Error from TOC entry 2615; 0 16456 TABLE DATA film_actor postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "film_actor" does not exist
Command was: COPY film_actor (actor_id, film_id, last_update) FROM stdin;
pg_restore: processing data for table "public.film_category"
pg_restore: [archiver (db)] Error from TOC entry 2616; 0 16460 TABLE DATA film_category postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "film_category" does not exist
Command was: COPY film_category (film_id, category_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET film_film_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2649; 0 0 SEQUENCE SET film_film_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "film_film_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('film_film_id_seq', 1000, true);
^
Command was: SELECT pg_catalog.setval('film_film_id_seq', 1000, true);
pg_restore: processing data for table "public.inventory"
pg_restore: [archiver (db)] Error from TOC entry 2624; 0 16502 TABLE DATA inventory postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "inventory" does not exist
Command was: COPY inventory (inventory_id, film_id, store_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET inventory_inventory_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2650; 0 0 SEQUENCE SET inventory_inventory_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "inventory_inventory_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('inventory_inventory_id_seq', 4581,...
^
Command was: SELECT pg_catalog.setval('inventory_inventory_id_seq', 4581, true);
pg_restore: processing data for table "public.language"
pg_restore: [archiver (db)] Error from TOC entry 2626; 0 16509 TABLE DATA language postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "language" does not exist
Command was: COPY language (language_id, name, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET language_language_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2651; 0 0 SEQUENCE SET language_language_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "language_language_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('language_language_id_seq', 6, true...
^
Command was: SELECT pg_catalog.setval('language_language_id_seq', 6, true);
pg_restore: processing data for table "public.payment"
pg_restore: [archiver (db)] Error from TOC entry 2628; 0 16521 TABLE DATA payment postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "payment" does not exist
Command was: COPY payment (payment_id, customer_id, staff_id, rental_id, amount, payment_date) FROM stdin;
pg_restore: executing SEQUENCE SET payment_payment_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2652; 0 0 SEQUENCE SET payment_payment_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "payment_payment_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('payment_payment_id_seq', 32098, tr...
^
Command was: SELECT pg_catalog.setval('payment_payment_id_seq', 32098, true);
pg_restore: processing data for table "public.rental"
pg_restore: [archiver (db)] Error from TOC entry 2630; 0 16527 TABLE DATA rental postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "rental" does not exist
Command was: COPY rental (rental_id, rental_date, inventory_id, customer_id, return_date, staff_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET rental_rental_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2653; 0 0 SEQUENCE SET rental_rental_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "rental_rental_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('rental_rental_id_seq', 16049, true...
^
Command was: SELECT pg_catalog.setval('rental_rental_id_seq', 16049, true);
pg_restore: processing data for table "public.staff"
pg_restore: [archiver (db)] Error from TOC entry 2632; 0 16539 TABLE DATA staff postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "staff" does not exist
Command was: COPY staff (staff_id, first_name, last_name, address_id, email, store_id, active, username, password, last_update, picture) FROM stdin;
pg_restore: executing SEQUENCE SET staff_staff_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2654; 0 0 SEQUENCE SET staff_staff_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "staff_staff_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('staff_staff_id_seq', 2, true);
^
Command was: SELECT pg_catalog.setval('staff_staff_id_seq', 2, true);
pg_restore: processing data for table "public.store"
pg_restore: [archiver (db)] Error from TOC entry 2634; 0 16550 TABLE DATA store postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "store" does not exist
Command was: COPY store (store_id, manager_staff_id, address_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET store_store_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2655; 0 0 SEQUENCE SET store_store_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "store_store_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('store_store_id_seq', 2, true);
^
Command was: SELECT pg_catalog.setval('store_store_id_seq', 2, true);
WARNING: errors ignored on restore: 28
I have a Postgres 8.4 database on a linux server that I have dumped using the following command:
pg_dump --format=c --exclude-table=log --file=/path/to/output my_db
I then ftp the created file to my local Windows 7 machine and attempt to restore the file to my local Postgres 8.4 instance using the following command:
pg_restore --create --exit-on-error --verbose c:pathtofile
The restore command generates plenty of output claiming it created my database, connected to it, and then created all the other tables as expected. However, when I view the databases on my local machine through pgAdmin the restored database doesn’t exist at all.
In an attempt to troubleshoot I tried the following command:
pg_restore --create --exit-on-error --verbose --host=blahblah --username=no_one c:pathtofile
When I run this command even though the host and username given are complete nonsense I still get the exact same output from the command without any errors.
Has anyone run into this before or know what could by causing this?
Модератор: Дмитрий Юхтимовский
Postgresql ошибки при восстановлении
Доброго времени суток!
Прошу не пинать сильно и сразу, тк с postgre работаю не так давно.
Есть кластер 1С , база крутится на postgresql
Каждый день делается бэкап :
pg_dump -U postgres -Fc -Z9 -v -f ${BACKUPDIR}/${YEAR}/${MONTH}/${DAY}/${DB_NAME}.gz ${DB_NAME} &>> $BACKUPDIR/$YEAR/$MONTH/$DAY/log
При восстановлении базы из бэкапа
sudo -H -u postgres /usr/bin/pg_restore -i -U postgres -d BASE -v /PATH/TO/BACKUPDIR
вылазиют ошибки
WARNING: errors ignored on restore: 1886
1С при том запускается но со сл ошибками:
скрины ошибок во вложеннии
- Вложения
-
- 1c_restore_errorrr.jpg (29.05 KiB) Просмотров: 6333
-
- 1c_restore_error.jpg (241.69 KiB) Просмотров: 6333
- redbull05689
- Сообщений: 3
- Зарегистрирован: 16 сен 2015, 13:48
Re: Postgresql ошибки при восстановлении
Slynko Alexey » 16 сен 2015, 17:18
1) Огласите версию PostgreSQL
2) Хорошо бы увидеть все, что выводит pg_restore
3) Попробуйте pg_restore с ключиком -c
- Slynko Alexey
- Сообщений: 1
- Зарегистрирован: 16 сен 2015, 17:18
Re: Postgresql ошибки при восстановлении
Гилёв Вячеслав » 16 сен 2015, 17:58
redbull05689 писал(а): вылазиют ошибки
WARNING: errors ignored on restore: 18861С при том запускается но со сл ошибками:
скрины ошибок во вложеннии
логично, что 1С в шоке
надо разобраться в чем проблема при восстановлении
выложите результаты сообщений в >logs.txt
- Гилёв Вячеслав
- Сообщений: 2543
- Зарегистрирован: 11 фев 2013, 15:40
- Откуда: Россия, Москва
Re: Postgresql ошибки при восстановлении
Dmitry Vasiliyev » 16 сен 2015, 19:53
Скорее всего вы сдампили данные с postgresql-1c а пытаетесь возможно востановить данные на postgresql без 1c патчей: pg_restore у вас прошел, а 1c приложение падает, так как не может найти указаный тип (mvchar который создается во время создания базы).
Не могли бы вы: востановить дамп заново и прислать вывод в консоли всех комманд которые вы выполняли,
(если у вас bash), то можете добавить в командную строчку востановления: &> /tmp/log.txt и прислать содержимое файла /tmp/log.txt
- Dmitry Vasiliyev
- Сообщений: 9
- Зарегистрирован: 16 сен 2015, 19:45
Re: Postgresql ошибки при восстановлении
redbull05689 » 17 сен 2015, 09:03
Спасибо всем откликнувшимся
Версия
postgresql-9.1
Попробовал восстановить с ключем -с
sudo -H -u postgres /usr/bin/pg_restore -c -i -U postgres -d kop_bakkagenko_1709 -v /DB/reserv/2015/Сен/17/baklagenko.gz &> /tmp/log.txt
ну и собственно лог
- redbull05689
- Сообщений: 3
- Зарегистрирован: 16 сен 2015, 13:48
Re: Postgresql ошибки при восстановлении
Гилёв Вячеслав » 17 сен 2015, 10:17
redbull05689 писал(а):ну и собственно лог
выложите пожалуйста лог на какой-нибудь яндекс-диск и киньте сюда пожалуйста ссылку
- Гилёв Вячеслав
- Сообщений: 2543
- Зарегистрирован: 11 фев 2013, 15:40
- Откуда: Россия, Москва
Re: Postgresql ошибки при восстановлении
Dmitry Vasiliyev » 17 сен 2015, 10:38
К сожалению, 9.1 — это очень старая версия. Поддержка 9.2 со стороны сообщества например заканчивается в сентябре, если я не ошибаюсь.
И да, к сожалению, не получиться воспользоваться версией старыми данными и новым сервером, для этого нужно воспользоваться утилитой pg_upgrade.
Наша компания постепенно переводит документацию по PostgreSQL на русский:
http://postgrespro.ru/doc
Как я понял, ее давно не актуализировали, в течении дня попрошу выложить свежую версию, возможно там уже будет про backup/restore и pg_upgrade
- Dmitry Vasiliyev
- Сообщений: 9
- Зарегистрирован: 16 сен 2015, 19:45
Re: Postgresql ошибки при восстановлении
Dmitry Vasiliyev » 17 сен 2015, 18:25
попробуйте сделать так:
sudo -H -u postgres /usr/bin/dropdb -c -i -U postgres kop_bakkagenko_1709
sudo -H -u postgres /usr/bin/pg_restore -c -i -U postgres -d kop_bakkagenko_1709 -v /DB/reserv/2015/Сен/17/baklagenko.gz &> /tmp/log.txt
- Dmitry Vasiliyev
- Сообщений: 9
- Зарегистрирован: 16 сен 2015, 19:45
Вернуться в Прочее
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Ошибка формата потока — одна из самых неприятных ошибок в работе 1С и вызывает панический ужас у многих администраторов и пользователей данной учетной системы. Ее появление обычно говорит о серьезных повреждениях базы данных и, чаще всего, наиболее верным решением будет восстановить базу из резервной копии. В случаях, когда это нежелательно или невозможно придется заняться восстановлением базы, но большинство инструкций в сети рассматривают данный вопрос только на примере MS SQL Server, а PostgreSQL если и касаются, то очень вскользь. Поэтому в данной статье мы постараемся исправить данный пробел.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Начнем с того, что именно обозначает эта ошибка. Разработчики немногословны, никаких подробностей сообщение об ошибке не содержит:
Столь же скупа и информация для технической поддержки:
Обычно это вызывает у пользователей и неподготовленных администраторов тихую панику, особенно если под рукой нет актуальной резервной копии. А судорожные попытки восстановления базы, обычно без понимания смысла выполняемых действий приводят как правило к ее полному разрушению.
К возникновению данной ошибки приводит повреждение основной конфигурации информационной базы. Реже — кеша конфигурации информационной базы, в последнем случае устранить ошибку можно путем очистки кеша, для этого можете воспользоваться нашей утилитой 1:Tools (кто хочет поддержать нас — может скачать ее по ссылке с Инфостарта)
1:Tools (Зеркало на Инфостарте)
MD5: 448277422B59EFA426CC51E4F3A52F53
В остальных случаях придется заниматься восстановлением непосредственно базы. В этом месте мы сразу внесем ясность и разделим сущности: информационная база 1С — это хранилище данных на уровне логики 1С:Предприятия которое описывается конфигурацией информационной базы. Т.е. именно здесь содержатся документы, справочники, регистры и т.д. и т.п., а повреждение конфигурации информационной базы делает невозможной работу с ними на этом уровне абстракции. База данных СУБД — это набор таблиц в которых хранятся как данные, так и конфигурация информационной базы 1С.
Повреждение основной конфигурации информационной базы происходит именно на уровне логики 1С:Предприятия, база данных СУБД остается работоспособной и не содержит ошибок с точки зрения СУБД. Если это не так, то мы будем иметь дело с повреждением самой базы данных СУБД, а это уже совсем иная ситуация.
В зависимости от того, какая именно часть конфигурации ИБ оказалась повреждена база может не загружаться в обычном режиме, но загружаться в Конфигуратор, либо вообще не загружаться никак. Если доступен режим конфигуратора, то можно попробовать снять базу с поддержки и загрузить в нее исправную конфигурацию из файла, в некоторых случаях это приведет к успеху, в других может потребоваться сначала выявить и удалить сбойный элемент метаданных.
Все это достаточно сложно и не всегда приносит требуемый результат, поэтому проще и надежнее заменить конфигурацию информационной базы на заведомо исправную используя инструменты СУБД, в нашем случае PostgreSQL. В зависимости от используемой ОС (Windows или Linux) некоторые аспекты работы с PostgreSQL могут отличаться и это будет оговорено отдельно, в остальных случаях указанные команды применяются вне зависимости от платформы.
Перед тем как начинать работу с PostgreSQL в Linuх последовательно повысим свои права для суперпользователя и затем войдем в систему от имени пользователя postgres:
sudo -s
su postgres
Если утилита sudo не установлена (такой вариант может быть в Debian), то:
su -
su postgres
В первом случае вам потребуется ввести пароль от текущей учетной записи, во втором — от учетной записи суперпользователя (root).
Затем обязательно сделаем копию информационной базы средствами СУБД. Получить список баз данных в кластере СУБД можно командой:
psql -l
В Windows вам потребуется ввести пароль пользователя postgres.
Выяснив имя необходимой базы данных выгрузим ее дамп командой:
#Linux
pg_dump basename > ~/basename.psql#Windows
pg_dump basename > D:backupbasename.psql
Где basename — имя нужной базы данных. Обратите внимание, что в Windows мы можем явно задать путь выгрузки дампа, а в Linux выгружаем его в домашнюю директорию пользователя postgres, т.е. /var/lib/postgresql.
Для дальнейших действий нам потребуется развернуть на этом же сервере СУБД еще одну базу с точно такой же конфигурацией информационной базы, это может быть как старый бекап поврежденной базы, так и другая база такой же конфигурации, чистая установка или демо база. Главное, чтобы конфигурация новой базы с точностью до релиза совпадала с конфигурацией поврежденной.
После чего откроем интерактивный терминал PostgreSQL в котором будем производить все последующие действия:
psql
В Windows вы можете получить сообщение:
ПРЕДУПРЕЖДЕНИЕ: Кодовая страница консоли (866) отличается от основной
страницы Windows (1251).
8-битовые (русские) символы могут отображаться некорректно.
В этом случае выполните:
! chcp 1251
Теперь подключимся к исправной базе:
с newbasename
где newbasename — имя исправной базы данных. При этом в строке приглашения появится имя подключенной базы.
Из нее мы выгрузим таблицу config в которой находится основная конфигурация информационной базы.
#Linux
COPY config TO '/var/lib/postgresql/config_OK.txt';#Windows
COPY config TO 'D:/backup/config_OK.txt';
Обратите внимание, при указании пути для операционной системы Windows вы также должны использовать прямой, а не обратный слеш. Также служба СУБД должна иметь права на запись в целевую аудиторию, проще всего это сделать выдав полные разрешения для пользователя Все.
Переподключимся к поврежденной базе:
с basename
На всякий случай, также сохраним содержимое таблицы config:
#Linux
COPY config TO '/var/lib/postgresql/config_ERR.txt';#Windows
COPY config TO 'D:/backup/config_ERR.txt';
После чего очистим сбойную таблицу:
DELETE FROM config;
И загрузим в нее данные из исправной информационной базы:
#Linux
COPY config FROM '/var/lib/postgresql/config_OK.txt';#Windows
COPY config FROM 'D:/backup/config_OK.txt';
Для выхода из терминала PostgreSQL введите:
q
Если все сделано правильно, то поврежденная конфигурация информационной базы будет заменена на исправную и ее работоспособность будет восстановлена.
В некоторых случаях оказывается повреждена не основная конфигурация информационной базы, а конфигурация, открытая на редактирование в Конфигураторе. Внешне это проявляется как невозможность загрузить информационную базу в этом режиме. Для исправления этой ошибки достаточно очистить таблицу configsave:
DELETE FROM configsave;
Как видим, устранение ошибки формата потока средствами СУБД PostgreSQL достаточно несложно, однако требует некоторых навыков работы с данной СУБД. Но если вы будете внимательно и вдумчиво следовать нашей инструкции, то проблем у вас возникнуть не должно.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Sergio-ps
17.09.12 — 19:09
Добрый вечер. на Win Server 2003 установлен сервер 1с, PostgreSQL.
Делаются резервные копии каждый день. Но столкнулся с проблемой. необходимо восстановить базу на определенное число, а он при восстановлении выдает кучу ошибок на то что таблица существует, метод существует и тд , невозможно перезаписать. и в итоге Процесс вернул код выхода 1.
Соответсвенно в пустую базу он ничего не восстанавливает, она остается пустой. пробовал как создавать новую базу из управления серверами 1с, так и средствами postgres.
Sergio-ps
1 — 17.09.12 — 19:12
бэкап делается по команде
«C:Program Files (x86)PostgreSQL8.4.3-3.1Cbinpg_dump.exe» -i -h localhost -p 5432 -U postgres -Fc -b -f «F:postgres_backup%datetemp%.backup» Base
Восстанавливать пробовал из PgAdmin и командой
«C:Program Files (x86)PostgreSQL8.4.3-3.1Cbinpg_restore.exe» -i -h localhost -U postgres -c -d BuhTemp «F:postgres_backupBUHBUH_120803.backup»
глазковыколупыватель
2 — 17.09.12 — 19:37
Base сначала очистить надо. Или удалить, а потом — опять создать.
Ben_art
3 — 17.09.12 — 19:39
схему дропни или только таблицы
Sergio-ps
4 — 17.09.12 — 20:32
Я пустую базу создаю и в нее пытаюсь восстанавливать, наверно не имеет значения что у нее имя другое?
ansh15
5 — 17.09.12 — 21:51
(4) Не имеет.
Попробуйте без флага -с в созданную пустую базу. Сейчас проверял, с флагом -с (-c —clean Clean (drop) database objects before recreating them) выдает ошибки, без него нормально восстанавливает.
Sergio-ps
6 — 17.09.12 — 22:09
хорошо попробую.
Вот создал новую базу и в нее восстановил с помощью pgAdmin/ он по умолчанию сделал такой командой:
C:Program Files (x86)PostgreSQL8.4.3-3.1Cbinpg_restore.exe -i -h localhost -p 5432 -U postgres -d «BuhTemp» -v «F:postgres_backupBUH_120725.backup»
В итоге куча ошибок. и база не восстановлена, даже конфигуратор не открывается.
…..
pg_restore: connecting to database for restore
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 5256; 2612 16386 PROCEDURAL LANGUAGE plpgsql postgres
pg_restore: [archiver (db)] could not execute query: ERROR: language «plpgsql» already exists
Command was:
CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: creating SHELL TYPE chkpass
pg_restore: [archiver (db)] Error from TOC entry 1230; 0 0 SHELL TYPE chkpass postgres
pg_restore: [archiver (db)] could not execute query: ERROR: type «chkpass» already exists
……..
pg_restore: creating FUNCTION isnge(ean13, upc)
pg_restore: [archiver (db)] Error from TOC entry 391; 1255 17237 FUNCTION isnge(ean13, upc) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: function «isnge» already exists with same argument types
Command was: CREATE FUNCTION isnge(ean13, upc) RETURNS boolean
LANGUAGE internal IMMUTABLE STRICT
AS $$int8ge$$;
……
pg_restore: setting owner and privileges for INDEX byosname
pg_restore: setting owner and privileges for INDEX byrolesid
pg_restore: setting owner and privileges for INDEX byshow
WARNING: errors ignored on restore: 6866
Процесс вернул код выхода 1.
ansh15
7 — 17.09.12 — 22:54
А базу чем создаете? Из консоли администрирования 1С? Или в PgAdmin?
Sergio-ps
8 — 17.09.12 — 23:26
уже и тем и другим способом пробовал. Все равно не восстанавливает. причем пробовал уже и другой архив брать, тоже самое. может не правильная команда создания копии?
ansh15
9 — 18.09.12 — 10:17
Посомтри содержимое архива, вдруг он текстовый, блокнотом каким-нибудь.
Архив, созданный с флагом «-F c» начинается со слова PGDUMP, текстовый начинается со строк
—
— PostgreSQL database dump
—
и дальше команды SQL. Можно попробовать явно задать custom формат в pg_restore «-F c». Кстати, у тебя в командной строке «-Fc», без пробела, может в Windows как-то влияет, в Linux без разницы.
Sergio-ps
10 — 18.09.12 — 11:54
Хорошо, попытаюсь посмотреть, уже 5 минут WordPad открывает.
Кстати, не могли бы выложить рабочую комбинацию команд архивации и восстановления. на будущее хотя бы поменять. потому как походу ни один архив не восстанавливается.
Sergio-ps
11 — 18.09.12 — 12:29
архив начинается с
PGDMP
потмо название базы, кодировка и наверное команды. правда все так висит, что даже скопировать оттуда не удается.
Кстакти вот например строка
2200 — public — SCHEMA T CREATE SCHEMA public;
?I DROP SCHEMA public;
o postgres | false
странно как то, получается он сначала создает а потом удаляет?
Sergio-ps
12 — 18.09.12 — 12:36
и интересно что значит строчка
postgres | false? там много таких, или User1c | false. что то с пользователями связано
ansh15
13 — 18.09.12 — 12:36
Базу рукам попробуй создать, в командной строке на сервере. creаtedb.exe -U postgres testbuh1, например.
Потом pg_restore.exe -U postgres -d testbuh1 имя_архива.
Sergio-ps
14 — 18.09.12 — 13:55
создал пустую базу, почему то опять ругается на существующие элементы. и в самом конце вот что выдал:
pg_restore: [archiver (db)] COPY failed: ERROR: out of memory
DETAIL: Failed on request of size 536870912.
CONTEXT: COPY config, line 9419: «e0666db2-45d6-49b4-a200-061c6ba7
-8696-411f-95a1-ef011fdf8da9 2012-03-28 16:49:37 2012-0…»
WARNING: errors ignored on restore: 1130
В итоге база не запускается. конфигуратор открывается но видит пустую конфигурацию
Sergio-ps
15 — 18.09.12 — 14:06
если только попробовать загрузить сначала в базу дтшник старый, а потом попробовать через постгрес восстановить только данные?
BigHarry
16 — 18.09.12 — 15:20
«COPY failed: ERROR: out of memory» — проходили, вылечили только загрузкой дампа в постгри, установленный на линуксе, на виндовый постгря дамп упорно не хотел заливаться, вылезала «out of memory», никакие манипуляции с конфигом не помогали.
BigHarry
17 — 18.09.12 — 15:22
А корень зла — бинарники, хранимые в БД, большие фотографии или pdf-ки…
Sergio-ps
18 — 18.09.12 — 15:56
Бухгалтерия предприятия. вроде нет файлов. если только документы.
Sergio-ps
19 — 18.09.12 — 15:58
а на виртуалке если поднять постгри, думаете поможет?
Sergio-ps
20 — 18.09.12 — 16:21
pg_restore: [archiver (db)] Error from TOC entry 13847; 0 361139 TABLE DATA config user1c
pg_restore: [archiver (db)] COPY failed: ERROR: duplicate key value violates unique constraint «config_pkey»
CONTEXT: COPY config, line 1: «d4a1f489-2fba-41f6-ab57-3986f22c7403 2012-03-28 16:50:37 2012-03-28 16:50:37 0 89 {\277{\177\265…»
pg_restore: restoring data for table «configsave»
pg_restore: restoring data for table «dbschema»
pg_restore: restoring data for table «files»
pg_restore: [archiver (db)] Error from TOC entry 13850; 0 377251 TABLE DATA files user1c
pg_restore: [archiver (db)] COPY failed: ERROR: duplicate key value violates unique constraint «files_pkey»
CONTEXT: COPY files, line 1: «c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl 2010-12-30 10:15:16 2012-05-16 12:42:04 0 416 \215\207\0…»
pg_restore: restoring data for table «params»
pg_restore: [archiver (db)] Error from TOC entry 13849; 0 377204 TABLE DATA params user1c
pg_restore: [archiver (db)] COPY failed: ERROR: duplicate key value violates unique constraint «params_pkey»
CONTEXT: COPY params, line 1: «locale.inf 2010-12-30 10:15:15 2010-12-30 10:15:15 0 36 \357\273\277{«ru_RU»,0,0,»»,-1,»»,»»,»»,»…»
pg_restore: restoring data for table «v8users»
WARNING: errors ignored on restore: 600
Процесс вернул код выхода 1.
Это выдает при попытке «восстановить только данные » из pgAdmin в работоспособную бухгалтерию за июль
Sergio-ps
21 — 18.09.12 — 16:21
и соответственно новых данных не появляется
BigHarry
22 — 18.09.12 — 16:30
(19) Я на виртуалке не стал развертывать, ибо винда и железо было только 32 разрядное, просто на какой-то ближайшей рабочей станции установил линукс и слона.
Не знаю, может вам имеет смысл попробовать установить 64-битный постгри и там развернуть архив, если, канечно, есть где-то такая сборка с патчами 1С под винду…
alxbzm
23 — 18.09.12 — 16:46
Я бы посоветовал взять 9-й постгри и попробовать на нем (в том числе и утилиты pg_dump / pg_restore соответствующих версий)… Я тут неоднократно писал про чудеса 8.4.x. У меня сейчас крутится 9.1.2 от 1С — вроде полет нормальный — и с бэкапом, и с восстановлением.
Sergio-ps
24 — 18.09.12 — 17:41
поставил 9,1,2 постгри, пытаюсь туда восстановить. посмотрим
Sergio-ps
25 — 18.09.12 — 18:41
не помогло 9 постгри. Опять куча ошибок и база не открывается.
pg_restore: dropping SHELL TYPE ean13
pg_restore: dropping TYPE dblink_pkey_results
pg_restore: dropping COMMENT TYPE cube
pg_restore: dropping TYPE cube
pg_restore: dropping FUNCTION cube_out(cube)
pg_restore: [archiver (db)] Error from TOC entry 164; 1255 16855 FUNCTION cube_out(cube) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: type «cube» does not exist
Command was: DROP FUNCTION public.cube_out(cube);
…
pg_restore: setting owner and privileges for INDEX byshow
WARNING: errors ignored on restore: 5395
Процесс вернул код выхода 1.
BigHarry
26 — 18.09.12 — 19:33
Сильно большой у вас дамп?
глазковыколупыватель
27 — 18.09.12 — 20:15
+ (26) Давай дамп, выкладывай куда-нить.
alxbzm
28 — 18.09.12 — 22:27
Не хочу показаться занудой, но вместо анализа дампа я бы сделал следующее:
1) Выгрузил базу в dt через конфигуратор
2) Залил базу на Postgre 9.1.2 из dt через конфигуратор
3) Сделал бы дамп в postgre 9.1.2
4) Попробовал бы залить на тот же 9.1.2 полученный дамп.
P.S. У меня для 9.1.2 дампа в командной строке есть приписочка:
-b -Z 9 -E UTF-8 — здесь указываю компрессию и кодировку
х.з. насколько это принципиально. Да — и восстанавливать я пробовал через pgAdmin 1.14.1 — хотя это тоже не принципиально — можно потом командную строку срисовать из графического интерфейса.
ansh15
29 — 18.09.12 — 23:05
(22) >>Не знаю, может вам имеет смысл попробовать установить 64-битный постгри и там развернуть архив, если, канечно, есть где-то такая сборка с патчами 1С под винду…
Есть. На пользовательском сайте 1С.
Sergio-ps
30 — 19.09.12 — 01:16
Выгрузить базу в dt я конечно могу, но бухгалтерам вот приспичило восстановить от 1го августа. че то они там удалили потом нечаянно. поэтому и мучаюсь с этим дампом, т.к. нету других копий за те числа.
64 юитный постгри.. попробую.
Кстати заметил, когда восстанавливаю в базу созданную через пгАдмин или Средствами 1с, то вылазиют ошибки про существующие таблицы и тд., а когда создаю базу сreаtedb.exe -U postgres названиебазы, и восстанавливаю pg_restore.exe -U postgres -d названиебазы имя_архива, то потом вываливается out of memory
Sergio-ps
31 — 19.09.12 — 01:18
дамп размером 600 метров, размер азы в папке постгри 7 гигов.
zzhiraf
32 — 19.09.12 — 09:55
(29) А можно ссылочку? И еще вопрос как перенести данные с MS SQL?
ansh15
33 — 19.09.12 — 10:38
(32) Пожалуйста. http://users.v8.1c.ru/version.jsp?id=AddCompPostgre&ver=9.1.2-1.1C
Если есть доступ, конечно.
Перенос тоже просто, через dt файл.
ansh15
34 — 19.09.12 — 10:49
(30) Когда база создается через консоль администрирования, в ней создаются таблицы, типы данных и т.д.
Поэтому при восстановлении и появляются ошибки о существующих таблицах.
Попробуй PostgreSQL x64, может поможет с out of memory.
ansh15
35 — 19.09.12 — 10:51
ansh15
36 — 19.09.12 — 11:03
(30) http://www.sql.ru/forum/actualthread.aspx?tid=594580
Пишут, что можно поварьировать maintenance_work_mem.
zzhiraf
37 — 19.09.12 — 11:55
(33) Спасибо. Нет доступа(
Sergio-ps
38 — 19.09.12 — 12:47
maintenance_work_mem стоит по умолчанию. Текущее значение 16384. наверно в мегабайтах. хотя оперативки всего 8 гигов. попробую поменять на меньшее значение)
докачаю — выложу куда нибудь сборку постгреса
Sergio-ps
39 — 19.09.12 — 13:03
Sergio-ps
40 — 19.09.12 — 13:06
zzhiraf
41 — 19.09.12 — 13:14
(40) Спасибо!
ansh15
42 — 19.09.12 — 13:45
zzhiraf
43 — 19.09.12 — 14:09
(42) а постгрес еще надо настраивать? есть ли готовые файлы с оптимальными настройками?)
ansh15
44 — 19.09.12 — 14:29
(43) В зависимости от ваших конфигураций, размера баз и объема памяти сервера.
Поищите по форуму, были темы по настройке postgresql.conf.
В Интернете тоже много найдется. На сайте Гилева, например.
zzhiraf
45 — 19.09.12 — 14:37
(44) Нашел сайт Гилева, почитаю, спасибо.
ansh15
46 — 19.09.12 — 14:51
zzhiraf
47 — 19.09.12 — 15:43
(46) ага, спасибо!
Sergio-ps
48 — 19.09.12 — 16:25
в продолжение темы про восстановление, на том же сервере есть еще одна база гига на 2 поменьше, бэкапится теми же командами, при восстановлении так же куча ошибок про существующие объекты, возвращает код 1, но в итоге после восстановления она работает.
Пока убедил бухгалтеров что нету копии за август, но найду свободный комп и попробую поднять постгрес на линуксе
DGorgoN
49 — 19.09.12 — 16:33
(48) Виртуалку поставь
I’m taking an intro to SQL course and I can’t get my very first database loaded. I have a file dvdrental.tar, I create a new database dvdrental > right click > Restore > Select File > Pick «Data» under Restore options, and I get the error below.
I’m on Mac OSX and the pgAmin instance is being loaded in Chrome if that helps. I’ve tried deleting and re-adding the database twice and I still get the same error. I also tried reinstalling pgAdmin and fully reinstalling postgresql including removing the user account. I just tried doing it on a fresh install in a Windows environment and I get the exact same error.
I’ve also completely rebooted the computer several times since then. I also just verified that other tar files and a sql file aren’t working.
Here’s the full error, I have no idea what any of it means, as I’m brand new to SQL and just setting it up:
/Library/PostgreSQL/10/bin/pg_restore --host "localhost" --port "5432" --username "postgres" --no-password --dbname "dvdrental" --section=data --verbose "/Users/chasehippen/Downloads/Postgresql/dvdrental.tar"
pg_restore: connecting to database for restore
pg_restore: implied data-only restore
pg_restore: processing data for table "public.actor"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2610; 0 16430 TABLE DATA actor postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "actor" does not exist
Command was: COPY actor (actor_id, first_name, last_name, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET actor_actor_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2643; 0 0 SEQUENCE SET actor_actor_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "actor_actor_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('actor_actor_id_seq', 200, true);
^
Command was: SELECT pg_catalog.setval('actor_actor_id_seq', 200, true);
pg_restore: processing data for table "public.address"
pg_restore: [archiver (db)] Error from TOC entry 2618; 0 16471 TABLE DATA address postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "address" does not exist
Command was: COPY address (address_id, address, address2, district, city_id, postal_code, phone, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET address_address_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2644; 0 0 SEQUENCE SET address_address_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "address_address_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('address_address_id_seq', 605, true...
^
Command was: SELECT pg_catalog.setval('address_address_id_seq', 605, true);
pg_restore: processing data for table "public.category"
pg_restore: [archiver (db)] Error from TOC entry 2612; 0 16437 TABLE DATA category postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "category" does not exist
Command was: COPY category (category_id, name, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET category_category_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2645; 0 0 SEQUENCE SET category_category_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "category_category_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('category_category_id_seq', 16, tru...
^
Command was: SELECT pg_catalog.setval('category_category_id_seq', 16, true);
pg_restore: processing data for table "public.city"
pg_restore: [archiver (db)] Error from TOC entry 2620; 0 16478 TABLE DATA city postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "city" does not exist
Command was: COPY city (city_id, city, country_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET city_city_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2646; 0 0 SEQUENCE SET city_city_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "city_city_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('city_city_id_seq', 600, true);
^
Command was: SELECT pg_catalog.setval('city_city_id_seq', 600, true);
pg_restore: processing data for table "public.country"
pg_restore: [archiver (db)] Error from TOC entry 2622; 0 16485 TABLE DATA country postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "country" does not exist
Command was: COPY country (country_id, country, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET country_country_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2647; 0 0 SEQUENCE SET country_country_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "country_country_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('country_country_id_seq', 109, true...
^
Command was: SELECT pg_catalog.setval('country_country_id_seq', 109, true);
pg_restore: processing data for table "public.customer"
pg_restore: [archiver (db)] Error from TOC entry 2608; 0 16419 TABLE DATA customer postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "customer" does not exist
Command was: COPY customer (customer_id, store_id, first_name, last_name, email, address_id, activebool, create_date, last_update, active) FROM stdin;
pg_restore: executing SEQUENCE SET customer_customer_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2648; 0 0 SEQUENCE SET customer_customer_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "customer_customer_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('customer_customer_id_seq', 599, tr...
^
Command was: SELECT pg_catalog.setval('customer_customer_id_seq', 599, true);
pg_restore: processing data for table "public.film"
pg_restore: [archiver (db)] Error from TOC entry 2614; 0 16444 TABLE DATA film postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "film" does not exist
Command was: COPY film (film_id, title, description, release_year, language_id, rental_duration, rental_rate, length, replacement_cost, rating, last_update, special_features, fulltext) FROM stdin;
pg_restore: processing data for table "public.film_actor"
pg_restore: [archiver (db)] Error from TOC entry 2615; 0 16456 TABLE DATA film_actor postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "film_actor" does not exist
Command was: COPY film_actor (actor_id, film_id, last_update) FROM stdin;
pg_restore: processing data for table "public.film_category"
pg_restore: [archiver (db)] Error from TOC entry 2616; 0 16460 TABLE DATA film_category postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "film_category" does not exist
Command was: COPY film_category (film_id, category_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET film_film_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2649; 0 0 SEQUENCE SET film_film_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "film_film_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('film_film_id_seq', 1000, true);
^
Command was: SELECT pg_catalog.setval('film_film_id_seq', 1000, true);
pg_restore: processing data for table "public.inventory"
pg_restore: [archiver (db)] Error from TOC entry 2624; 0 16502 TABLE DATA inventory postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "inventory" does not exist
Command was: COPY inventory (inventory_id, film_id, store_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET inventory_inventory_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2650; 0 0 SEQUENCE SET inventory_inventory_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "inventory_inventory_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('inventory_inventory_id_seq', 4581,...
^
Command was: SELECT pg_catalog.setval('inventory_inventory_id_seq', 4581, true);
pg_restore: processing data for table "public.language"
pg_restore: [archiver (db)] Error from TOC entry 2626; 0 16509 TABLE DATA language postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "language" does not exist
Command was: COPY language (language_id, name, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET language_language_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2651; 0 0 SEQUENCE SET language_language_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "language_language_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('language_language_id_seq', 6, true...
^
Command was: SELECT pg_catalog.setval('language_language_id_seq', 6, true);
pg_restore: processing data for table "public.payment"
pg_restore: [archiver (db)] Error from TOC entry 2628; 0 16521 TABLE DATA payment postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "payment" does not exist
Command was: COPY payment (payment_id, customer_id, staff_id, rental_id, amount, payment_date) FROM stdin;
pg_restore: executing SEQUENCE SET payment_payment_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2652; 0 0 SEQUENCE SET payment_payment_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "payment_payment_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('payment_payment_id_seq', 32098, tr...
^
Command was: SELECT pg_catalog.setval('payment_payment_id_seq', 32098, true);
pg_restore: processing data for table "public.rental"
pg_restore: [archiver (db)] Error from TOC entry 2630; 0 16527 TABLE DATA rental postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "rental" does not exist
Command was: COPY rental (rental_id, rental_date, inventory_id, customer_id, return_date, staff_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET rental_rental_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2653; 0 0 SEQUENCE SET rental_rental_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "rental_rental_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('rental_rental_id_seq', 16049, true...
^
Command was: SELECT pg_catalog.setval('rental_rental_id_seq', 16049, true);
pg_restore: processing data for table "public.staff"
pg_restore: [archiver (db)] Error from TOC entry 2632; 0 16539 TABLE DATA staff postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "staff" does not exist
Command was: COPY staff (staff_id, first_name, last_name, address_id, email, store_id, active, username, password, last_update, picture) FROM stdin;
pg_restore: executing SEQUENCE SET staff_staff_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2654; 0 0 SEQUENCE SET staff_staff_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "staff_staff_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('staff_staff_id_seq', 2, true);
^
Command was: SELECT pg_catalog.setval('staff_staff_id_seq', 2, true);
pg_restore: processing data for table "public.store"
pg_restore: [archiver (db)] Error from TOC entry 2634; 0 16550 TABLE DATA store postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "store" does not exist
Command was: COPY store (store_id, manager_staff_id, address_id, last_update) FROM stdin;
pg_restore: executing SEQUENCE SET store_store_id_seq
pg_restore: [archiver (db)] Error from TOC entry 2655; 0 0 SEQUENCE SET store_store_id_seq postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "store_store_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('store_store_id_seq', 2, true);
^
Command was: SELECT pg_catalog.setval('store_store_id_seq', 2, true);
WARNING: errors ignored on restore: 28