LINUX.ORG.RU

Большой sql как залить?

 , ,


0

1

Здравствуйте все, небольшая проблемка с выполнением sql. Пишу постгресу выполнить sql, он выполняет часа три и ошибка packet_write_wait: Connection to 12.34.567.89: Broken pipe Маленькие файлы легко принимает, а тут надо файл на 6 гиг залить. При том что таких таблиц несколько и доходят до 50 гиг.



Последнее исправление: Romaboy (всего исправлений: 1)

6 гиг это размер запроса?

vurdalak ★★★★★
()
Ответ на: комментарий от pi11

Мои действия: захожу по ssh на сервер (убунту 14.04) и пишу psql -d база -q (тихое выполнение) -f путь к файлу. 6 гиг размер файла, который для mysql предназначался в общем-то, есть .backup для постгреса, но корявый, с ошибками выполняется

Romaboy
() автор топика

у слона должна быть возможность выполнить запрос из файла вроде как, хотя пайпы это те-же файлы.

Разбить запрос на части, распихнуть в таблицы куски.

anonymous
()

Возможно у тебя отваливается твоя ssh-сессия и поэтому прибиваются процессы, которые были запущены в ней, в том числе заливка дампа.

AnDoR ★★★★★
()
Ответ на: комментарий от Romaboy

6 гиг размер файла, который для mysql предназначался в общем-то

У меня на десктопе 4-летней давности 60гб дамп заливался часа четыре. Может у тебя какая-то строка внутри этого файла, которую мускуль считает нормальной, а для постгреса это какое-то спец-выражение?

AnDoR ★★★★★
()
Ответ на: комментарий от Romaboy

Да-да, так и есть. ssh устает ждать, а сам sql нормальный

Раз в 5 минут нажимай Enter. Либо заливай через tee. Либо запускай процесс заливки в screen.

AnDoR ★★★★★
()
Ответ на: комментарий от Romaboy

Нет, pgadmin с того файла вообще в шоке

Romaboy
() автор топика

`Broken pipe` это ssh сессия отвалилась. Поставь в конфиге ServerAliveInterval какое-нибудь огромное значение.

postgred
()
Ответ на: комментарий от AnDoR

Можно вот немножко подробней пожалуйста, где нажимать не надо?

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

tmux помог?

А зачем ты такие объёмы гоняешь по Сети? Нет возможности сначала рсинком залить его на машину с СУБД и уже локально его юзать?

targitaj ★★★★★
()
Ответ на: комментарий от Romaboy

Вообще не уверен, как оно сработает, но вот способ пробую: psql -d ... -q -f ....sql потом ctrl+z потом bg Вроде как в фоне исполняет и ssh сессия не повредит, но как узнать когда закончится

Romaboy
() автор топика
Ответ на: комментарий от targitaj

Да нет, на всякий случай поблагодарил, tmux лениво разбираться, но попробую если с помощью bg не выйдет

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

Есть ещё nohup команда.

Просто запусти screen и запусти там команду. Если ssh отвалиться, пересоединись и сделай screen -R

pawnhearts ★★★★★
()
Ответ на: комментарий от Romaboy

Tmux по ходу вообще что-то не то, зато сколько полезного узнал: bg запускает команду в фоне, а команда jobs показывает, какие работают, какие процессы отработали.

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

Нет, все, точно добавляет, даже когда отключаюсь все равно добавляет.

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

Tmux по ходу вообще что-то не то

если ты команду в tmux запустишь, то даже если сессия ssh отвалится, команда продолжит выполнение.

Если сессия отвалилась - подключаешься к серверу и tmux attach - подключит тебя к процессу.

Ну или screen - тоже самое.

pi11 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.