041. Raspberry Pi 라즈베리파이 - PostgreSQL(9.6) 데이터 위치 변경 (move to postgresql data directory)
[embedded/raspberrypi] - 039. Raspberry Pi 라즈베리파이 - PostgreSQL(9.6) 재설치
[embedded/raspberrypi] - 040. Raspberry Pi 라즈베리파이 - 외장하드 포맷하기(Using Raspberry Pi mkfs format)
postgressql 데이터 디렉토리 위치변경 삽질기 후 정리된 내용입니다
서비스 시작/정지
sudo systemctl start postgresql
sudo systemctl stop postgresql
sudo systemctl status postgresql
아니면
sudo service postgresql start
sudo service postgresql stop
데이터 파일 위치 확인
show data_directory;
pi@rasp-dev:~ $ sudo su - postgres postgres@rasp-dev:~$ pwd /var/lib/postgresql/ postgres@rasp-dev:~$ psql psql (9.6.13) 도움말을 보려면 "help"를 입력하십시오.
postgres=# show data_directory; data_directory ------------------------------ /var/lib/postgresql/9.6/main (1개 행)
postgres=#
|
/var/lib/postgresql 에 위치해 있네요
근데 postgres 계정 디렉토리가 /var/lib/postgresql 이라는게 눈에 띄네요
홈디렉토리 변경(선택사항)
postgres 계정은 /var/lib/postgresql 을 홈디렉토리로 쓰는데
심볼릭 링크를 쓰면 자동으로 외장하드를 홈디렉토리로 쓸테지만
설정파일을 수정하는 경우에는 없는 디렉토리를 바라보게됩니다
pi@rasp-dev:~ $ sudo usermod -d /mnt/db_file/postgresql/ postgres pi@rasp-dev:~ $ |
usermod 를 사용해서 디렉토리를 수정해주면 외장하드를 바라보게 할 수 있습니다
sudo rsync -av /var/lib/postgresql /mnt/db_file
pi@rasp-dev:~ $ sudo service postgresql stop pi@rasp-dev:~ $ sudo rsync -av /var/lib/postgresql /mnt/db_file/ sending incremental file list postgresql/ postgresql/9.6/ postgresql/9.6/main/
. . .
postgresql/9.6/main/pg_xlog/archive_status/
sent 38,921,698 bytes received 16,709 bytes 11,125,259.14 bytes/sec total size is 38,860,777 speedup is 1.00 pi@rasp-dev:~ $ pi@rasp-dev:~ $ ls -al /mnt/db_file/ 합계 28 drwxr-xr-x 4 root root 4096 9월 8 15:13 . drwxr-xr-x 6 root root 4096 9월 8 12:44 .. drwx------ 2 root root 16384 9월 8 15:12 lost+found drwxr-xr-x 3 postgres postgres 4096 9월 8 03:46 postgresql pi@rasp-dev:~ $
|
postgresql 서비스를 종료하고
외장하드에 postgresql 디렉토리를 복사해줍니다
복사후에 확인해보면 권한을 유지하고 복사된걸 확인할 수 있습니다
sudo mv /var/lib/postgresql /var/lib/postgresql_
sudo ln -s /mnt/db_file/postgresql /var/lib/postgresql
pi@rasp-dev:~ $ ls -al /var/lib | grep post drwxr-xr-x 3 postgres postgres 4096 9월 8 03:46 postgresql pi@rasp-dev:~ $ sudo mv /var/lib/postgresql /var/lib/postgresql_
pi@rasp-dev:~ $ ls -al /var/lib | grep post drwxr-xr-x 3 postgres postgres 4096 9월 8 03:46 postgresql_ pi@rasp-dev:~ $ sudo ln -s /mnt/db_file/postgresql /var/lib/ pi@rasp-dev:~ $ ls -al /var/lib | grep post lrwxrwxrwx 1 root root 18 9월 8 15:36 postgresql -> /mnt/db_file/postgresql drwxr-xr-x 3 postgres postgres 4096 9월 8 03:46 postgresql_
|
복사가 끝났으니 원본 디렉토리명을 바꿔서 백업해주고
외장하드에 복사된 디렉토리 링크를 생성해줍니다
pi@rasp-dev:~ $ ps -ef | grep post pi 15370 14955 0 15:39 pts/0 00:00:00 grep --color=auto post pi@rasp-dev:~ $ sudo service postgresql start pi@rasp-dev:~ $ ps -ef | grep post postgres 15412 1 0 15:39 ? 00:00:00 /usr/lib/postgresql/9.6/bin/posgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf postgres 15414 15412 0 15:39 ? 00:00:00 postgres: 9.6/main: checkpointer process postgres 15415 15412 0 15:39 ? 00:00:00 postgres: 9.6/main: writer process postgres 15416 15412 0 15:39 ? 00:00:00 postgres: 9.6/main: wal writer process postgres 15417 15412 0 15:39 ? 00:00:00 postgres: 9.6/main: autovacuum launcher process postgres 15418 15412 0 15:39 ? 00:00:00 postgres: 9.6/main: stats collector process pi 15449 14955 0 15:42 pts/0 00:00:00 grep --color=auto post pi@rasp-dev:~ $ |
서비스를 시작해주면 올라오는걸 확인할 수 있습니다
설정파일을 수정하는 방법도 해볼거에요
pi@rasp-dev:~ $ sudo service postgresql stop pi@rasp-dev:~ $ sudo vim /etc/postgresql/9.6/main/postgresql.conf
32 33 34 #--------------------------------------------------------------------------- --- 35 # FILE LOCATIONS 36 #--------------------------------------------------------------------------- --- 37 38 # The default values of these variables are driven from the -D command-line 39 # option or PGDATA environment variable, represented here as ConfigDir. 40 41 42 data_directory = '/mnt/db_file/postgresql/9.6/main' # use data in anothe r directory 43 # (change requires restart) 44 hba_file = '/etc/postgresql/9.6/main/pg_hba.conf' # host-based authent ication file 45 # (change requires restart) 46 ident_file = '/etc/postgresql/9.6/main/pg_ident.conf' # ident configuratio n file 47 # (change requires restart) 48 49 # If external_pid_file is not explicitly set, no extra PID file is written. :set nu 42,1 4% |
서비스를 종료한뒤
42번라인의 data_directory 를 외장하드 경로로 수정해줬습니다
원본은 /var/lib/postgresql/9.6/main 입니다
pi@rasp-dev:~ $ ps -ef | grep post pi 15570 14955 0 15:45 pts/0 00:00:00 grep --color=auto post pi@rasp-dev:~ $ sudo service postgresql start pi@rasp-dev:~ $ ps -ef | grep post postgres 15612 1 2 15:45 ? 00:00:00 /usr/lib/postgresql/9.6/bin/posgres -D /mnt/db_file/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/posgresql.conf postgres 15614 15612 0 15:45 ? 00:00:00 postgres: 9.6/main: checkpointer process postgres 15615 15612 0 15:45 ? 00:00:00 postgres: 9.6/main: writer process postgres 15616 15612 0 15:45 ? 00:00:00 postgres: 9.6/main: wal writer process postgres 15617 15612 0 15:45 ? 00:00:00 postgres: 9.6/main: autovacuum launcher process postgres 15618 15612 0 15:45 ? 00:00:00 postgres: 9.6/main: stats collector process pi 15636 14955 0 15:45 pts/0 00:00:00 grep --color=auto post pi@rasp-dev:~ $ |
서비스를 재시작 해주면
외장하드 경로를 포함하여 서비스가 잘올라오네요
그래도 psql을 이용해서 확인을 해줍니다
pi@rasp-dev:~ $ sudo su - postgres postgres@rasp-dev:~$ psql psql (9.6.13) 도움말을 보려면 "help"를 입력하십시오.
postgres=# show data_directory; data_directory ----------------------------- /mnt/db_file/postgresql/9.6/main (1개 행)
postgres=# \q postgres@rasp-dev:~$ |
이제 postgresql 데이터는 외장하드에 저장될테니
pi 용량걱정이 좀 줄어드네요
pi@rasp-dev:~ $ ls -al /var/lib/ | grep post lrwxrwxrwx 1 root root 18 9월 8 15:36 postgresql -> /mnt/db/postgresql drwxr-xr-x 3 postgres postgres 4096 9월 8 03:46 postgresql_ pi@rasp-dev:~ $ sudo rm -rf /var/lib/postgresql /var/lib/postgresql_ pi@rasp-dev:~ $ |
이전 파일들은 과감히 삭제해주면 됩니다
설정으로 변경해놨기 때문에 링크도 삭제했습니다
관련글
[programing/GIS] - [El Capitan]postGis 외부 접속 허용하기 (mac os x)
[programing/GIS] - PostGIS Database 데이터베이스 생성 및 설정
[programing/GIS] - PostGIS 2.0 Shapefile and DBF Loader Exporter 기능 사용하기 (windows)
[programing/GIS] - PostgreSQL install PostgreSQL 설치 (mac os x)
[programing/GIS] - PostgreSQL install PostgreSQL 설치 (windows)
[programing/GIS] - PostgreSQL install PostgreSQL 설치 (ubuntu & raspbian)
[programing/GIS] - PostGis install PostGIS 설치 (mac os x, homebrew)
[programing/GIS] - PostGIS install PostGIS 설치 (widows)
[programing/GIS] - PostGIS install PostGIS 설치 (ubuntu & raspbian)
[OS/Utils] - 강추)다람쥐 SQL SQuirreL SQL 만능 DB 접속툴
[programing/GIS] - [macOS High Sierra] install pgAdmin4 v3.1
[embedded/raspberrypi] - 039. Raspberry Pi 라즈베리파이 - PostgreSQL(9.6) 재설치
참고
댓글 영역