2013-07-11 5 views
6

Я пытаюсь восстановить pg_dump, взятый с этой командой с другого сервера.PostgreSQL 9.0.13 делает pg_restore, но не показывает, что дисковое пространство используется

sudo -u postgres pg_dump --verbose --format=custom --file=pg-backup.sql -U postgres salesDB 

После того как я скопировал программатор-backup.sql файл я пытаюсь восстановить с помощью этой команды

sudo -u postgres pg_restore --verbose --jobs=`nproc` -f pg-backup.sql 

программатор-backup.sql файл является 13GB. pg-restore работает в течение 4 часов, прокручивая данные на моем экране все время. Нет ошибок.

Но когда я исполню это заявление от Psql сессии

SELECT pg_size_pretty(pg_database_size('salesDB')); 

Я получаю 5377 кбайт. ЧТО? Он должен по крайней мере быть 1 ГБ к настоящему времени. Я полностью потерян. Все эти данные прокручивают мой экран, и я не могу доказать, что он идет куда угодно. Нет использования диска.

Помощь

+0

На стороне примечания, поздравляет за то, что не отстает от текущего выпуска патча. Я вижу слишком много 9.0.4 здесь. –

ответ

5

Попробуйте без "-f" флаг в команде pg_restore. Кроме того, вы можете попробовать создать пустую базу данных salesdb и перейти в «-d salesdb». Обратите внимание, что имя db будет складываться до нижнего регистра, если оно не было создано в двойных кавычках.

Добавлено пример шаги, чтобы показать, что дб растет в размерах, как восстановление работают

-- sample pg_dump command 
pg_dump -f testdb.out -Fc src_test_db 

-- create the db to restore into 
createdb sometestdb 

-- restore with 4 parallel jobs, from the "testdb.out" file, into the db "sometestdb" 
time pg_restore --dbname=sometestdb --jobs=4 testdb.out 

-- In another window, every few seconds, you can see the db growing 
psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))" 
pg_size_pretty 
---------------- 
4920 MB 

psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))" 
pg_size_pretty 
---------------- 
4920 MB 

psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))" 
pg_size_pretty 
---------------- 
5028 MB 

psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))" 
pg_size_pretty 
---------------- 
5371 MB 
+0

Что вы говорите, что я должен видеть размер db, растущий каждый раз, когда я выполняю функцию pg_database_size во время восстановления? и пока я не увижу, что у меня нет его правильного? –

+0

Да, или даже проверить 'df'. – bma

+0

@WadeJernigan, я отредактировал свой ответ, чтобы показать, что db растет во время pg_restore. – bma

2

кажется мне, как вы говорили pg_restore печатать содержимое свалки на дисплей, а не восстановить его базы данных. Вы указали --dbname?

Лично я думаю pg_restore Синтаксис командной строки не особенно интуитивно понятен, и если я когда-либо получаю время, это одна из вещей, которые я хотел бы попытаться улучшить в Pg.

+0

, вы не можете использовать --dbname, если вы указываете -f (имя файла), но да, похоже, что я писал только на экран. Поэтому я удалил переключатель --verbose. Теперь у меня ничего нет на экране в течение последних 14 часов и нет доказательств того, что база данных тоже растет. grrr Мне нужен способ доказать, что данные поступают в базу данных. Я попробую несколько операторов. Хотелось бы, чтобы он сообщал о растущих размерах. –

4

RESOLVED - синтаксическая ошибка -f () file) параметр бесполезен, насколько я могу судить. Мне нужно было указать файл для pg_restore для использования без какого-либо флага, только как последний элемент в командной строке. Необходимо указать параметр -d salesdb. У меня 16 процессоров, поэтому я установил -j 15, что оказалось очень полезным. моя последняя командная строка была

sudo -u postgres pg_restore -d salesdb --jobs=15 backup10.sql 

Тогда я получаю приращения очень быстро размера с функцией pg_database_size.

Оно растет, как должно.

+0

Я не совсем знаком с тем, как работает этот форум, но указывает на bma. Он был прав, спасибо. –

+2

Я думаю, что вы просто «принимаете» ответ, который вы выбрали как правильный. – bma

 Смежные вопросы

  • Нет связанных вопросов^_^