Я впервые работаю с собственным выделенным сервером, и у меня возникает проблема, когда я пытаюсь перенести большой (10 ГБ, миллионы строк) файл резервной копии postgresql в новую таблицу. Запуск ubuntu 18.04 LTS.
Я установил postgresql с помощью apt-get, затем вошел в систему как root и создал базу данных.
Затем я запустил
sudo -u postgres psql mytable
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
my файловая система выглядит так:
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- ТЕМП-ТАБЛИЦЫ . По умолчанию это пустая строка.