Помогите пожалуйста решить проблему!
Есть PostgreSQL 8.1 (установлена на Red Hat 5.3) с базой данных; ежедневно ведется её резервирование (как именно непонятно, не нашел локально расположенного скрипта с командами бэкапа (поэтому что используется для резервирования pg_dump или pg_dumpall сказать не могу); установил еще один компьютер с PostgreSQL 8.3 и попробовал восстановить на нем созданный дамп. выполнилась только команда pg_restore (т.е. вроде уже можно сказать что резервирование выполнялось с указанием формата файла(опять же, какого формата???)) - pg_resore -h localhost -p 5432 -U postgres -Fc database \usr\local\db\18.04.2010.backup
процедура отработала, выдала отчет- восстановление прошло успешно; подключаюсь к базе через pgAdmin3 и не вижу результата! то же что и было, пустая база...
что я не так делаю? мне нужно на резервном PostgreSQL создавать базу с именем восстанавливаемой или она сама создастся?
p.s. я начинающий, поэтому прошу на взаимопонимание.
Цитата:что я не так делаю? По
По всей видимости восстанавливаете бакап в другую БД
Зависит от того как был сделан бакап. В одном случае в бакап добавляются команды для создания БД и сразу же подключения к ней. В другом случае при восстановлении надо указать БД, куда будет выполняться восстановление. Самый простой способ узнать - посмотреть в файл бакапа. Если бакап выполняется в текстовом виде, вначале файла должны быть видны соответствующие команды. Если в бинарном виде - тут всё сложнее.
Значит первое что нужно сделать разобраться как именно ведётся резервирование. Время известно, начать с того, что проверить кронтаб.
Значит первое что нужно
Значит первое что нужно сделать разобраться как именно ведётся резервирование. Время известно, начать с того, что проверить кронтаб.
спасибо за наводку! нашел отличную ссылку по использованию CRON http://www.codenet.ru/webmast/php/cron.php. Нашел там как узнать что, откуда и как запускается!
значит вот как бэкапится у меня база:
/usr/local/pgsql/bin/pg_dump -i -h localhost -p 5432 -U USER -F c -b -v -f /home/backup/DBNAME.backup-$date DBNAME
chown -R backup.backup /home/backup/*
подскажите пожалуйста, что значит параметр -i -из мануала не понял?
как правильно будет сделать pg_restore из этого pg_dump ?
пишу вот так в
пишу вот так в консоли:
pg_restore -i -h localhost -p 5432 -U USER -F c -c f /home/backup/DBNAME.backup-$date
курсор переходит на строку ниже и всё! ничего не происходит!
подскажите пожалуйста, что не так делаю?
Прочитайте: http://postgresql
Прочитайте:
http://postgresql.ru.net/manual/backup.html
а также
man pg_dump
man pg_restore
Надеюсь после этого все вопросы исчезнут.
Я всегда и всем советую делать дамп не в бинарном формате (как у вас), а в текстовом виде (в итоге получается файл с командами SQL). Соответственно тогда и легче отследить что происходит при восстановлении и поправить что-либо в случае проблем.
Я делаю в основном по старинке вот так:
На сервере, откуда копируем базу делаем так:
pg_dump база >dump.sql
На сервере, куда копируем базу делаем так:
dropdb база
(это если база уже была создана)
createdb база
(если база не была создана)
psql база <dump.sql
разобрался! дело было в в
разобрался! дело было в в параметре -f , убрал его. восстанавливается база теперь! только надо с параметром -i восстанавливать (поддержка больших файлов) - с ним ошибок при восстановлении базы не возникает!
Благодарю откликнувшихся!
Восстановление
Какая будет правильная команда для восстановления ?
Смотря из чего. А так всё
Смотря из чего. А так всё написано выше.
Спасибо, вопрос исчерпан, Тут
Спасибо, вопрос исчерпан,
Тут решил - http://postgresql.ru.net/node/215083