Backup БД с Postgres

mail_makc

aka MaxGR
Backup БД с Postgres

Народ, пришлось тут переустановить сервак на работе...

1. Сохранил данные БД из Postgres по команде:
PHP:
pg_dump -v -b -c -C -o -S USERNAME -f db20030629.tar -F t -h IPADDRESS DATABASENAME
2. Переустановил машину, настроил Апач32, PHP32, Postgres32

3. Начал восстанавливать из архива информацию:
распаковал архив в /db20030523
замена $$PATH$$ на необходимый путь в файле restore.sql
и обламался на следующей команде
PHP:
psql uniservice < db20030429/restore.sql
Облом в следующем - потребовало сперва БД создать (создал), но теперь требует струкутру таблиц БД создать... Но ведь это должно было быть автоматически восстановлено из резервного архива!
Как теперь корячиться? Все таблицы заново делать????
Попробовал восстановить этот архив на другом компе, где струкутра есть подобная (кстати, надо будет оттуда только структуру утащить - напомните как это делается) - все корректно прошло, вся старая информация убилась, а новая на ее место занеслась.

ВОПРОСЫ:

1. Как надо было архивировать, чтобы в архив еще и структура БД включалась? Чтобы на чистейшую БД вставало потом при восстановлении?

2. Как структуру (таблицы, типы полей, комментарии-описания полей, таблиц) БД перетащить с одного компа на другой средствами Postgres?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
а загрузить .tar файл посредством pg_restore не пробовал?
 

mail_makc

aka MaxGR
не выходит у меня каменный цветок с восстановлением через pg_restore... по всякому уже извращаюсь...

$ pg_restore -c --dbname=uniserv --format=t --superuser=uni db20030629.tar
---
pg_restore: [archiver (db)] connection to database "uniserv" failed: FATAL: Database "uniserv" does not exist in the system catalog.

выходит, что требуется опять БД создавать?
а при созданной БД ругается на то, что она уже существует... :))

пробовал с опциями -c и -C - ни так ни сяк не работает...
 

mail_makc

aka MaxGR
блин, сейчас сделал пустую БД uniserv и запросик сделал:

pg_restore -c --dbname=uniserv --format=t --superuser=uni db20030629.tar

все прошло корректно... но не создались текстовые комментарии к полям, таблицам и базе... :((( а хотелось бы чтобы другие пользователи тоже могли бы видеть что к чему... так что комментарии (на русском они) нужны...

при этом в архиве (распаковал и посмотрел) комментарии содержатся...

как мне их при восстановлении тоже восстановить?
какие опции использовать?
 

YRusinov

Филин Ух
1. Только структура сохраняется при указании опции -s или --schema-only
2. Как восстанавливать комментарии точно сказать не могу, предполагаю, что надо восстанавливать с опцией --table без параметров.
 
Сверху