powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как правильно сделать архив и восстановление бд??
25 сообщений из 27, страница 1 из 2
Как правильно сделать архив и восстановление бд??
    #33413166
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
Приветствую всех!
Версия у меня стоит бд postgresql-7.4.8. Так вот про команды pg_dump и pg_restore я читал, но проблема вот в чем. Есть у меня бд с таблицей в которой есть поле id(lдумаю все знают что это такое), делаю я архив бд с помощью pg_dump, затем создаю новую бд и вставляю туда дамп. Все вроде нормально, данне есть, но новых данных я вставить не могу, т.к. новый id бд не присваивает, а берет уже существующий, возникает ошибка и данные не вставляются. А посему вопрос, как правильно сделать архив и восстановление бд, с учетом того чтобы не было потом проблем с id?
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413240
делаю дамп обычным
pg_dump -N -U user dbname >main_dump.sql
работает на ура. у тебя видимо проблема в том, что не дампятся последовательности. посмотри в файле дампа - есть ли там create sequence
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413278
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
create sequence у меня в файле дампа нету.
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413317
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
да кстати а что у pg_dump появился новый параметр -N??
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413331
bixда кстати а что у pg_dump появился новый параметр -N??
ну это чтобы вместо DEFAULT 'now' было DEFAULT now() - мне так привычнее :)
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413372
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
а у меня пишет
pg_dump: invalid option -- N
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413387
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
да и что с параметром create sequence? у меня в дампе этого нету, может надо ручками куда вписать?
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413412
может быть уже убрали... у меня версия 7.4.7.
посмотри тогда ключи к pg_dump
pg_dump --help
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413416
напиши, как ты дамп делаешь, и как восстанавливаешь
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413427
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
$ pg_dump --version
pg_dump (PostgreSQL) 7.4.8
Проверил еще раз параметра -N нету.
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413461
забудь про -N - это тебе не поможет.
напиши, как ты дамп делаешь, и как восстанавливаешь
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413462
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
pg_dump -U -d dbname > dbname.sql
затем
create database new;
затем
psql -U new
и уже в новой бд
\i dbname.sql;
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413639
хм. посмотри тогда - у тебя в строй базе последовательности есть вообще?
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413657
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
я новичок т.к. в пгскл. что за последовательность?
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413732
cyberdreamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bixя новичок т.к. в пгскл. что за последовательность?

Последовательностью (sequence) в PostgreSQL называется объект базы данных, который фактически представляет собой автоматически увеличивающееся число. Последовательности очень часто используются для присваивания уникальных значении идентификаторов в таблицах. Последовательность определяется текущим числовым значением и набором характеристик, определяющих алгоритм автоматического увеличения (или уменьшения) используемых данных.
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413756
После восстановления базы из дампа:

SELECT setval ('имя_последовательности', (SELECT max(имя_таблицы.имя_столбца_id) FROM имя_таблицы) + 1, false) FROM имя_последовательности;

Значение счетчика будет установлено в соответствии с реальными данными.
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33413833
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
Всем спасибо... теперь работает
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33692722
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
А почему так сложно, почему этой команды сразу нету в дампе?
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33692795
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что за бред... скока себя помню pg_dump всегда выгружал сиквенсы и ставил им правильные значения..
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33692812
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
если бы выгружал, то не было бы этого топика
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33693893
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bixесли бы выгружал, то не было бы этого топика
Значит где-то что-то ломается или не указан параметр или еще что-то. А так - вы заткнули дыру руками, не найдя причины и не устранив ее. Работает, но подход не системный.
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33694901
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
А как бы мне проверить, почему и что ломается при бэкапе бд?
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33696567
victor_kr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я понял резервная копия делается в формате sql комманд. Может быть стоит делать резервную копию в архивном формате. Для этого нужно в команду добавить ключ -F c. Т.е. pg_dump ... -F c ... Всегда этим пользуюсь, никогда проблем с последовательностями не было. И восстанавливать с помощью pg_restore без проблем.
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33701991
bix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bix
Гость
не думаю, что в этом дело, т.к. внутри архива будет все таже последовательность комманд
...
Рейтинг: 0 / 0
Как правильно сделать архив и восстановление бд??
    #33702466
> А как бы мне проверить, почему и что ломается при бэкапе бд?

Видимо, это баг 7.4.

Есть связь между способами определения последовательности; возможно, в 7.4. используется какой-то один из вариантов:

Код: plaintext
1.
2.
3.
CREATE TABLE "t1" (
    "t2" serial NOT NULL,
....
);

в дампе:

Код: plaintext
SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('"t1"', 't2'),  378 , true);

378 - значение счетчика,

а если задать явно:
Код: plaintext
1.
2.
3.
4.
5.
CREATE SEQUENCE "t3" increment  1  minvalue  1  MAXVALUE  2147483647  cache  1 ;

CREATE TABLE "t1" (
    "t2" int4 DEFAULT nextval('"t3"'::text) NOT NULL, 
....
);

то в дампе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE SEQUENCE "t3"
    INCREMENT BY  1 
    MAXVALUE  2147483647 
    MINVALUE  1 
    CACHE  1 ;

SELECT pg_catalog.setval('"t3"',  378 , true);

CREATE TABLE "t1" (
    "t2" integer DEFAULT nextval(('"t3"'::text)::regclass) NOT NULL,
....
);

В 8.1. оба дампа работают без проблем. Так что, видимо, выход один - обновить версию.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как правильно сделать архив и восстановление бд??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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