Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / pg_dump таблицы с одного сервера на другой / 9 сообщений из 9, страница 1 из 1
06.07.2018, 12:03
    #39670604
mumuskul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
Есть два сервера. Нужно скопировать очень большую таблицу (~800ГБ) на другой сервер, но в таблицу с другим именем, так как с таким именем уже таблица существует и такая конструкция не работает
pg_dump -t "table_name" -h SERVER1 -U USER DB | psql -h SERVER2 -U USER DB
можно ли это как-то сделать?
переименовывать на время копирования таблицы другую таблицу не хочется
Заранее благодарен
...
Рейтинг: 0 / 0
06.07.2018, 12:55
    #39670639
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
mumuskul,

перенесите структуру вручную. Затем уже данные COPY запросом, на источнике to stdout, на приёмнике from stdin. pg_dump данные тоже через copy тягает, потому никакой разницы.
...
Рейтинг: 0 / 0
06.07.2018, 15:52
    #39670790
mumuskul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
Спасибо, то что надо!
...
Рейтинг: 0 / 0
07.07.2018, 17:08
    #39671050
Бумбараш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
А в архивном (-F c) формате pg_dump|pg_restore работает быстрее чем COPY?
...
Рейтинг: 0 / 0
07.07.2018, 18:39
    #39671071
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
Бумбараш,

Зависит от того, во что вы упираетесь. custom формат дефотно сжимается. Поэтому будет быстрее если упёрлись в сеть и медленнее - если в CPU.
На уровне чтения-записи в саму базу - это всё так же copy.
...
Рейтинг: 0 / 0
09.07.2018, 12:05
    #39671532
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
MelkijБумбараш,

Зависит от того, во что вы упираетесь. custom формат дефотно сжимается. Поэтому будет быстрее если упёрлись в сеть и медленнее - если в CPU.
На уровне чтения-записи в саму базу - это всё так же copy.

Hm справедливости ради - с сжатием все будет непросто потому что:

host1:db1 -> не сжатый поток данных -> pg_dump + сжатие | pg_restore + разжатие -> не сжатый поток данных -> host2:db2

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

Если надо по сети сжатое передавать - это будет несколько сложнее но реально сделать конечно через ssh.
Но ssh и сам сжимать налету умеет.

В общем для переноса данных 1 таблицы скорее всего pg_dump -Fc будет медленнее чем copy | copy или тоже самое через ssh с сжатием на удаленный хост.

Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
09.07.2018, 13:32
    #39671588
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
Maxim Boguk,

мм, логично. Я что-то автоматически подумал про ssh ... 'pg_dump -Fc ...' | pg_restore или около того.
Верно, pg_dump -Fc -h ... | pg_restore ... - будет сжимать и распаковывать данные на одном и том же хосте, просто потребляя CPU и замедляя процесс. А по сети при этом пойдут всё так же несжатые данные обычного copy запроса.
...
Рейтинг: 0 / 0
09.07.2018, 15:49
    #39671676
Бумбараш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
Но у pg_restore для архивного формата есть опция с параллелями
--jobs=number-of-jobs
Вроде как файл оно должно быстрее закачивать? Работает ли это на одной таблице?

Естественно, тут уже без конвейра будет |.
...
Рейтинг: 0 / 0
09.07.2018, 17:38
    #39671745
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pg_dump таблицы с одного сервера на другой
БумбарашНо у pg_restore для архивного формата есть опция с параллелями
--jobs=number-of-jobs
Вроде как файл оно должно быстрее закачивать? Работает ли это на одной таблице?

Естественно, тут уже без конвейра будет |.

Нет --jobs (что для pg_dump что для pg_restore) только между таблицами параллелит, одна таблица всегда dump и restore в один поток.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / pg_dump таблицы с одного сервера на другой / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]