본문 바로가기
저장소이야기/PostgreSQL

[Postgresql] 서버 접속이 되지 않는 경우 cannot create temp file for here-document: No space left on device

by 사랑꾼이야 2021. 12. 20.
반응형

장애상황 확인

postgresql 접속 시 아래와 같은 메시지가 나오면서 접속이 되지 않았습니다.

psql: could not connect to server: Connection refused
        Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 5432?

갑작스러운 상황이라 서버를 내리고 다시 올렸지만 여전히 접속은 되지 않아서 확인해본 내용을 공유드립니다.

 

확인해본 사항

현재 상태 확인

sudo systemctl status postgresql

active 상태인것을 확인할 수 있는데 접속이 되지 않습니다.

● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Mon 2021-12-20 15:54:12 KST; 13min ago
  Process: 1678 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 1678 (code=exited, status=0/SUCCESS)

12월 20 15:54:12 mydata-400T8A systemd[1]: Starting PostgreSQL RDBMS...
12월 20 15:54:12 mydata-400T8A systemd[1]: Started PostgreSQL RDBMS.

 

로그 확인

vi /var/log/postgresql/postgresql-10-main.log

로그를 확인해보았는데, 힌트를 얻을 수 있었습니다. No space left on device

2021-12-20 13:58:32.835 KST [9561] PANIC:  could not write to file "pg_logical/replorigin_checkpoint.tmp": No space left on device
2021-12-20 13:58:33.000 KST [9559] LOG:  checkpointer process (PID 9561) was terminated by signal 6: Aborted
2021-12-20 13:58:33.000 KST [9559] LOG:  terminating any other active server processes
2021-12-20 13:58:33.000 KST [30488] mdadmin@mydata WARNING:  terminating connection because of crash of another server process
2021-12-20 13:58:33.000 KST [30488] mdadmin@mydata DETAIL:  The postmaster has commanded this server process to roll b

 

용량 확인

df -h

용량 확인 시 /de/sda5 의 용량이 꽉차 있는 것을 알 수 있었습니다.

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           786M  3.3M  783M   1% /run
/dev/sda5       142G  135G     0   0% /
tmpfs           3.9G   16K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop1       66M   66M     0 100% /snap/gtk-common-themes/1515
/dev/loop2      242M  242M     0 100% /snap/gnome-3-38-2004/70
/dev/loop3       63M   63M     0 100% /snap/gtk-common-themes/1506
/dev/loop4      2.5M  2.5M     0 100% /snap/gnome-calculator/748
/dev/loop5      640K  640K     0 100% /snap/gnome-logs/103
/dev/loop0      768K  768K     0 100% /snap/gnome-characters/726
/dev/loop6      640K  640K     0 100% /snap/gnome-logs/106
/dev/sda1        96M   30M   67M  31% /boot/efi
/dev/loop8       56M   56M     0 100% /snap/core18/2074
/dev/loop9      100M  100M     0 100% /snap/core/11420
/dev/loop7      723M  723M     0 100% /snap/intellij-idea-community/320
/dev/loop10      33M   33M     0 100% /snap/snapd/12704
/dev/loop12     723M  723M     0 100% /snap/intellij-idea-community/315
/dev/loop11      62M   62M     0 100% /snap/core20/1081
/dev/loop13     768K  768K     0 100% /snap/gnome-characters/723
/dev/loop15      56M   56M     0 100% /snap/core18/2128
/dev/loop14     100M  100M     0 100% /snap/core/11606
/dev/loop16      33M   33M     0 100% /snap/snapd/12883
/dev/loop17     2.5M  2.5M     0 100% /snap/gnome-calculator/884
/dev/loop18     2.5M  2.5M     0 100% /snap/gnome-system-monitor/160
/dev/loop19     219M  219M     0 100% /snap/gnome-3-34-1804/66
tmpfs           786M   40K  786M   1% /run/user/1000
/dev/loop20     2.5M  2.5M     0 100% /snap/gnome-system-monitor/163
/dev/loop21     219M  219M     0 100% /snap/gnome-3-34-1804/72
/dev/loop22      62M   62M     0 100% /snap/core20/1026
/dev/loop23     244M  244M     0 100% /snap/gnome-3-38-2004/39
tmpfs           786M  4.0K  786M   1% /run/user/126

 

사실 위의 내용만 보고 판단을 하지 못해서 루트 경로로 / 이동해서 확인을 해보았습니다.

sudo -s du -h --max-depth=1

./var에서 용량이 꽉차 있는 것을 알 수 있었습니다.

4.0K    ./lib64
4.0K    ./mnt
2.3G    ./home
16K     ./opt
4.0K    ./cdrom
du: cannot access './proc/1111/task/1356/fd/18': No such file or directory
du: cannot access './proc/2817/task/2817/fd/4': No such file or directory
du: cannot access './proc/2817/task/2817/fdinfo/4': No such file or directory
du: cannot access './proc/2817/fd/3': No such file or directory
du: cannot access './proc/2817/fdinfo/3': No such file or directory
0       ./proc
4.0K    ./media
148M    ./boot
15M     ./etc
12M     ./sbin
84K     ./root
16K     ./lost+found
4.0K    ./srv
0       ./sys
126G    ./var
4.8G    ./usr
16K     ./dev
492K    ./tmp
927M    ./lib
13M     ./bin
9.3G    ./snap
du: cannot access './run/user/1000/gvfs': Permission denied
3.3M    ./run
126G    .

 

var로 이동해서 한번 더 확인을 하였습니다.

sudo -s du -h --max-depth=1

./lib에서 용량이 꽉차 있었다는 것을 한번더 확인할 수 있었습니다.

4.0K    ./crash
4.0K    ./local
4.0K    ./opt
4.0K    ./metrics
155M    ./cache
56K     ./spool
1.4G    ./log
4.0K    ./mail
52K     ./tmp
105G    ./lib
3.5M    ./snap
5.5M    ./backups
107G    .

 

어떤 부분의 용량이 꽉 차 있는지 확인을 위해서 한번 더 들어가서 확인하였습니다.

sudo -s du -h --max-depth=1

여기서 ./docker 파일안의 용량이 많은 것을 확인할 수 있었습니다. 용량이 제일 많기 때문에 파일 정리 대상으로 보았습니다.

8.0K    ./ubiquity
8.0K    ./whoopsie
4.0K    ./avahi-autoipd
4.0K    ./hp
120M    ./mysql
258M    ./apt
4.1G    ./snapd
8.0K    ./ureadahead
4.0K    ./upower
12K     ./private
16K     ./ubuntu-advantage
138M    ./postgresql
4.0K    ./unattended-upgrades
2.2M    ./samba
28K     ./fwupd
60K     ./polkit-1
4.0K    ./git
8.0K    ./vim
4.0K    ./boltd
4.0K    ./command-not-found
4.0K    ./mysql-files
4.0K    ./misc
12K     ./update-manager
4.0K    ./acpi-support
4.0K    ./mysql-keyring
4.0K    ./dhcp
28K     ./NetworkManager
8.0K    ./os-prober
24K     ./libxml-sax-perl
8.0K    ./plymouth
544K    ./usbutils
336K    ./gdm3
4.0K    ./bluetooth
8.0K    ./ubuntu-release-upgrader
69M     ./dpkg
28K     ./pam
8.0K    ./xkb
33M     ./mlocate
8.0K    ./logrotate
16K     ./libreoffice
8.0K    ./shim-signed
56K     ./colord
8.0K    ./xfonts
156K    ./ucf
12K     ./locales
24K     ./dictionaries-common
36K     ./ghostscript
8.0K    ./ubuntu-drivers-common
28K     ./alsa
4.0K    ./dbus
8.0K    ./sudo
24K     ./emacsen-common
4.0K    ./snmp
12K     ./ubuntu-fan
8.0K    ./apport
4.0K    ./man-db
96K     ./gconf
19M     ./app-info
105G     ./docker
12K     ./initramfs-tools
4.1M    ./aspell
8.0K    ./geoclue
1.1M    ./containerd
1.4G    ./gitlab-runner
8.0K    ./ispell
24K     ./update-notifier
12K     ./grub
20K     ./AccountsService
4.0K    ./python
84K     ./PackageKit
532K    ./systemd
4.0K    ./udisks2
4.0K    ./usb_modeswitch
105G    .

 

도커의 필요없는 파일 제거

사실 도커 폴더를 보았을때, 사용하지 않는 이미지 파일이 떠올랐습니다.

 
사용하지 않는 이미지 파일 제거
docker image prune

사용하지 않는 이미지 파일 제거 시 약 19G를 정리할 수 있었습니다.

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: registry.mydata.score:5010/mydata/api-collector@sha256:d6b5b63701d8b031c9836e938caafc61b9af86ff8692673e9c5c65ec6b077bc4
deleted: sha256:9fd76b179dda7e12022356853aca71560f52fe1d3389de0bb998d86a6bf94efd
deleted: sha256:4eed3579b0720568a0600d88d63a344cceacc3f3c59fcee6204129353606a6e1
deleted: sha256:04823905617b7cc039d1bd6e4dda0bc6e5a3604ceb63475b880cb3b53ae5118d
.
.
.

Total reclaimed space: 19.12GB

 

postgresql 서버 실행

systemctl status postgresql

아까와 상황은 동일하였지만 정상적으로 접속할 수 있었습니다.

● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Mon 2021-12-20 15:54:12 KST; 39min ago
  Process: 1678 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 1678 (code=exited, status=0/SUCCESS)

12월 20 15:54:12 mydata-400T8A systemd[1]: Starting PostgreSQL RDBMS...
12월 20 15:54:12 mydata-400T8A systemd[1]: Started PostgreSQL RDBMS.

 

 

사실은..

서버에서 자동완성 기능을 이용해서 명령어 수행 시 아래와 같은 에러 메세지가 나왔습니다.

Error message: cannot create temp file for here-document: No space left on device

해당 부분을 보고 미리 디스크공간 문제인것을 알수 있었을텐데, 시간이 오래 걸렸습니다.

반응형

'저장소이야기 > PostgreSQL' 카테고리의 다른 글

[PostgreSQL] 자동증가 방법  (0) 2021.07.25
[PostgreSQL] MacOS 설치 방법  (0) 2021.07.25

댓글