Я впервые работаю с собственным выделенным сервером, и у меня возникает проблема, когда я пытаюсь перенести большой (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. По умолчанию это пустая строка.