2012-02-21 4 views
1

Я пытаюсь создать резервную копию базы данных с помощью командыPostgreSQL pg_dump

pg_dump -U vdc(old db) | psql vdc_bak.sql(backup db); 

Что случилось с синтаксисом здесь?

Это говорит «ошибка синтаксиса около pg_dump»

+3

Добро пожаловать в Stackoverflow. Пожалуйста, прочитайте http://stackoverflow.com/questions/how-to-ask особенно раздел «Будьте конкретны». –

+3

«* не работает *» не является допустимым сообщением об ошибке PostgreSQL –

+0

Интересно, существует ли круг ада, в котором замученные души вынуждены тратить вечность на отладку приложений Enterprisey, единственными сообщениями об ошибках которых являются «К сожалению, это не сработало ... "и" Падать, идти бум! " –

ответ

5

Из сообщения об ошибке syntax error near pg_dump и тот факт, что вы закончили вашу командную строку с точкой с запятой, это выглядит, как вы пытаетесь запустить pg_dump из в PSQL.

Это не сработает. Вам нужно запустить команду в командной строке (например, bash).

(В качестве альтернативы, предоставление текста вашего сообщения об ошибке (синтаксическая ошибка около pg_dump) имеет решающее значение при диагностике этой проблемы. В исходном вопросе его не было, и никто не смог помочь. текст, у вас был ответ в течение нескольких минут.)

13

Вы по-прежнему не показываете нам большую картину, но «синтаксическая ошибка», по-видимому, указывает, что вы запускаете ее из инструмента клиента SQL (psql, pgAdmin , ...)

pg_dump и psql являются commandline программ, а не операторов SQL.

Вам необходимо запустить из командной строки (ака оболочки)

Дополнительно (старый дб) параметр является совершенно неправильным. База данных не помещается в скобки pg_dump, например:

pg_dump -U user1 dbname_old_db | psql -U user2 dbname_new_db 

Еще раз: вы должны запустить из командной строки, а не внутри инструмента SQL