Raspberry Pi 라즈베리파이 - PostgreSQL(9.6) 데이터 디렉토리 위치 변경 삽질기(Failed to move Postgres Data directory)
[embedded/raspberrypi] - 040. Raspberry Pi 라즈베리파이 - 외장하드 포맷하기(Using Raspberry Pi mkfs format)
일전에 postgresql을 재설치하고보니
용량이 간당간당 하네요
pi@rasp-dev:~ $ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 7.2G 5.9G 916M 87% / devtmpfs 459M 0 459M 0% /dev tmpfs 464M 4.0K 464M 1% /dev/shm tmpfs 464M 19M 445M 4% /run tmpfs 5.0M 12K 5.0M 1% /run/lock tmpfs 464M 0 464M 0% /sys/fs/cgroup /dev/mmcblk0p1 43M 23M 21M 53% /boot /dev/sda1 100G 130M 100G 1% /mnt/db_file tmpfs 93M 0 93M 0% /run/user/1000 pi@rasp-dev:~ $ |
db를 쓰다보면 용량부족이 생길것 같으니
데이터파일을 외장하드로 옮겨 보기로 했습니다
데이터 파일 위치를 확인하는 방법은
설정파일, psql 두가지 방법이 있습니다
위치를 변경하고서는 psql로 위치가 변경된걸 확인하면 됩니다
데이터 파일 위치 확인
show data_directory;
pi@rasp-dev:~ $ sudo su - postgres postgres@rasp-dev:~$ pwd /var/lib/postgresql/ postgres@rasp-dev:~$ ls 9.6 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 계정 홈디렉토리를 외장하드로 변경을 해줄거에요
심볼릭 링크를 쓰면 자동으로 외장하드를 홈디렉토리로 쓸테지만
설정파일을 수정하는 경우에는 없는 디렉토리를 바라보게 될테니깐요
pi@rasp-dev:~ $ sudo usermod -d /mnt/db_file/postgresql/ postgres pi@rasp-dev:~ $ |
이제 postgres 계정으로 변경하면 외장하드를 홈디렉토리로 사용합니다
심볼릭 링크(symbolic link)
pi@rasp-dev:~ $ cd /var/lib/ pi@rasp-dev:/var/lib $ sudo cp -rf /var/lib/postgresql /mnt/db_file/ pi@rasp-dev:/var/lib $ sudo mv postgresql postgresql_ pi@rasp-dev:/var/lib $ sudo ln -s /mnt/postgre/postgresql . pi@rasp-dev:/var/lib $ sudo service postgresql restart pi@rasp-dev:/var/lib $ ps -ef | grep post pi 12868 12551 0 16:12 pts/0 00:00:00 grep --color=auto post pi@rasp-dev:/var/lib $ pi@rasp-dev:/var/lib $ ls -al | grep post lrwxrwxrwx 1 root root 23 9월 7 16:12 postgresql -> /mnt/db_file/postgresql
pi@rasp-dev:/var/lib $ sudo su - postgres postgres@rasp-dev:~$ psql psql: 서버에 연결할 수 없음: 그런 파일이나 디렉터리가 없습니다 로컬호스트에 서버가 가동 중인지, "/var/run/postgresql/.s.PGSQL.5432" 유닉스 도메인 소켓 접근이 가능한지 살펴보십시오. postgres@rasp-dev:~$
|
링크를 이용해보기위해 디렉토리를 외장하드에 복사하고 원본을 백업한뒤
하드링크를 걸어줬는데
막상 postgresql 서비스를 재실행하니 올라오질… 않네요
부들부들
검색을 해보니 postgresql.conf 를 수정해서
데이터 위치를 변경하면 된다는 듯 하니 따라해 봅니다
설정파일
sudo vim /etc/postgresql/9.6/main/postgresql.conf
pi@rasp-dev:~ $ sudo vim /etc/postgresql/9.6/main/postgresql.conf
27 # Memory units: kB = kilobytes Time units: ms = milliseconds 28 # MB = megabytes s = seconds 29 # GB = gigabytes min = minutes 30 # TB = terabytes h = hours 31 # d = days 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 #data_directory = '/var/lib/postgresql/9.6/main' # use data in anothe r directory 41 data_directory = '/mnt/db_file/postgresql/9.6/main' # use data in anothe r directory 42 # (change requires restart) 43 hba_file = '/etc/postgresql/9.6/main/pg_hba.conf' # host-based authent ication file 44 # (change requires restart) @@@ :set nu 40,0-1 4% |
설정파일을 열어보니 41번 라인에 data_directory 라는 부분이 눈에 띄네요
data_directory = '/var/lib/postgresql/9.6/main'
이부분을 외장하드 경로로 수정해 줍니다
뭐지…
역시나 서비스가 올라가질 않네요
rsync 를 사용해서 복사를 해보니
postgres@rasp-dev:/$ rsync -av /var/lib/postgresql /mnt/db_file/ sending incremental file list rsync: chgrp "/mnt/database/postgresql" failed: Operation not permitted (1) postgresql/ postgresql/.bash_history postgresql/.psql_history rsync: chgrp "/mnt/database/postgresql/9.6" failed: Operation not permitted (1) rsync: chgrp "/mnt/database/postgresql/9.6/main" failed: Operation not permitted (1) rsync: chgrp "/mnt/database/postgresql/9.6/main/base" failed: Operation not permitted (1) rsync: chgrp "/mnt/database/postgresql/9.6/main/base/1" failed: Operation not permitted (1) rsync: chgrp "/mnt/database/postgresql/9.6/main/base/12412" failed: Operation not permitted (1) postgres@rasp-dev:/$ |
중간중간 실패되는게 확인되네요
명령을 허용하지 않음(failed: Operation not permitted) 이라니…
cp 할때 옵션으로 로그를 안보게 했더니
복사가 실패된줄돌 몰랐네요
압축(tar)을 해보기로 했습니다
cd /var/lib
tar -zcvf postgresql.tar.gz ./postgresql
pi@rasp-dev:/var/lib $ ls -al | grep postgresql drwxrwxrwx 3 root root 4096 9월 7 19:16 postgresql pi@rasp-dev:/var/lib $ sudo tar -zcvf postgresql.tar.gz ./postgresql ./postgresql/ ./postgresql/9.6/ ./postgresql/9.6/main/ ./postgresql/9.6/main/pg_xlog/ ./postgresql/9.6/main/pg_xlog/archive_status/
. . .
./postgresql/9.6/main/PG_VERSION ./postgresql/.psql_history ./postgresql/.bash_history pi@rasp-dev:/var/lib $ pi@rasp-dev:/var/lib $ ls -al | grep post drwxrwxrwx 3 root root 4096 9월 7 19:16 postgresql -rw-r--r-- 1 root root 3892722 9월 8 03:04 postgresql.tar.gz pi@rasp-dev:/var/lib $ |
일단 에러는 없어보이니 외장하드로 이동하고 앞축을 풀거에요
pi@rasp-dev:/var/lib $ sudo mv postgresql.tar.gz /mnt/db_file/ pi@rasp-dev:/var/lib $ cd /mnt/db_file/ pi@rasp-dev:/mnt/db_file $ ls -al | grep post -rwxrwxrwx 1 root root 3892722 9월 8 03:04 postgresql.tar.gz pi@rasp-dev:/mnt/db_file $ sudo tar -zxvf postgresql.tar.gz ./postgresql/ ./postgresql/9.6/ ./postgresql/9.6/main/ ./postgresql/9.6/main/pg_xlog/ ./postgresql/9.6/main/pg_xlog/archive_status/
. . .
tar: postgresql/9.6/main: Cannot change ownership to uid 114, gid 120: 명령을 허용하지 않음 tar: postgresql/9.6: Cannot change ownership to uid 114, gid 120: 명령을 허용하지 않음 tar: postgresql: Cannot change ownership to uid 114, gid 120: 명령을 허용하지 않음 tar: Exiting with failure status due to previous errors
pi@rasp-dev:/mnt/db_file $ ls -al | grep post drwxrwxrwx 1 root root 131072 9월 7 19:16 postgresql -rwxrwxrwx 1 root root 3892722 9월 8 03:04 postgresql.tar.gz pi@rasp-dev:/mnt/db_file $ pi@rasp-dev:/mnt/db_file $ du -hs ./postgresql 116M ./postgresql pi@rasp-dev:/mnt/db_file $ du -hs /var/lib/postgresql 38M /var/lib/postgresql |
시스템 디렉토리에서 압축을 했던거라
sudo를 이용해서 압축을 풀어줍니다
근데 압축을 풀어도 명령을 헝용하지 않는다니..
부들부들
아무래도 외장하드가 exfat 라서 안되는듯 하네요
아무래도 포맷을 하고 다시 시도해봐야겠네요
관련글
[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) 재설치
참고
Raspberry Pi 라즈베리파이 - 외장하드 전원에 대한 고촬 (0) | 2019.09.01 |
---|---|
Raspberry Pi Jessie 라즈베리파이 - install MediaWiKi 미디어위키 설치 (0) | 2018.09.07 |
Raspberry Pi 라즈베리파이 - 복구에 관한 고찰 (0) | 2018.08.13 |
Raspberry Pi 라즈베리파이 - kernel panic - not syncing vfs (0) | 2018.07.29 |
Raspberry Pi Minergate Litecoin 라즈베리파이 마이너게이트 라이트코인 채굴 (0) | 2018.01.07 |
댓글 영역