Назад | Перейти на главную страницу

PSQL: ОШИБКА: не удалось расширить файл На устройстве не осталось места СОВЕТ: проверьте свободное место на диске

Я впервые работаю с собственным выделенным сервером, и у меня возникает проблема, когда я пытаюсь перенести большой (10 ГБ, миллионы строк) файл резервной копии postgresql в новую таблицу. Запуск ubuntu 18.04 LTS.

Я установил postgresql с помощью apt-get, затем вошел в систему как root и создал базу данных.

Я тогда побежал

sudo -u postgres psql mytable < mybackupfile.bak в / корень

appart из-за ошибки отсутствующей роли он начал работать, пока я не начал получать такие ошибки, как:

ERROR:  could not extend file "base/16384/16472.4": wrote only 4096 of 
8192 bytes at block 635129
HINT:  Check free disk space.
CONTEXT:  COPY stock_prices, line 28568936
ERROR:  could not extend file "base/16384/16480": No space left on device
HINT:  Check free disk space.
CONTEXT:  COPY stocks, line 99

после этого он продолжал работать "нормально":

     ...
    setval
    ---------
    1864218
    (1 row)

    setval
    ---------
    1356711
    (1 row)

    setval
    --------
    478761
    (1 row)
     ...

пока это не было просто кучей:

ERROR:  could not create temporary file "base/pgsql_tmp/pgsql_tmp3458.0": No such file or directory
ERROR:  could not extend file "base/16384/16503": No space left on device

моя файловая система выглядит так:

    Filesystem      Size  Used Avail Use% Mounted on
    udev             16G     0   16G   0% /dev
    tmpfs           3.2G 1000K  3.2G   1% /run
    /dev/md2         20G   12G  6.2G  67% /
    tmpfs            16G  8.0K   16G   1% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs            16G     0   16G   0% /sys/fs/cgroup
    /dev/md3        420G  9.3G  390G   3% /home
    /dev/md1        487M  146M  312M  32% /boot
    tmpfs           3.2G     0  3.2G   0% /run/user/0

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

Я немного потерялся, на сервере нет ничего, кроме базовой конфигурации безопасности и PSQL + файла резервной копии, поэтому, если необходимо внести изменения в размер раздела, это подходящее время, но я не знаю, что происходит в моем случае, и не Не хочу все испортить, если это ничего не исправит.

Итак, я следил этот учебник чтобы переместить каталог данных в / home / postgresql /, и он работает.

Попробуйте увеличить temp_tablespaces в ссылке на файл postgresql.conf: https://www.postgresql.org/docs/10/runtime-config-client.html#GUC-TEMP-TABLESPACES. По умолчанию это пустая строка.