2009-11-12 1 views
1

При восстановлении некоторых резервных копий базы данных я заметил, что pg_dump на самом деле использует INSERTS, а не COPY. Я даже не указываю флаг -d, но он все еще использует INSERTS для каждой базы данных/таблицы, которую я пытаюсь сбрасывать, и поэтому восстанавливает часы, а не минуты.Принудительно использовать постгрес, чтобы использовать копию, а не INSERTS

Согласно pg docs pg_dump должен использовать COPY по умолчанию, но в моем случае это не так. Есть ли способ гарантировать, что pg_dump использует COPY?

Вот команда pg_dump:

pg_dump -fp -t some_table -h локальный -d thisDB -f/some_dir/bkup

Любые идеи?

Thx.

ответ

4

вам являются указания -d !!!!!:

pg_dump -Fp -t some_table -h localhost -d thisDB -f /some_dir/bkup 
             ^^^^ 

К счастью -d is no more.

+0

Привет, вы правы, я сбивал с толку -d для базы данных. Спасибо что подметил это. –

1

В командной строке, которую вы опубликовали, вы фактически указываете флаг -d, хотя кажется, что вы пытаетесь использовать его для указания используемой базы данных. Попробуйте следующие вместо:

pg_dump -Fp -t some_table -h localhost -f /some_dir/bkup thisDB