프로그래밍/운영체제

[리눅스] 우분투에서 Postgresql 9.5 저장 위치 변경하기

포도알77 2019. 3. 11. 08:27

 DB 서버에 RAID로 구성한 디스크를 준비하였으니, 이제는 데이터 베이스를 RAID 디스크에 옮겨서 보관해야한다.  


 OS 가 깨질 수도 있으니.. 항상 데이터 영역과 OS 영역은 구분하자. 데이터를 저장할 디스크의 마운트 위치가 /db라고하자.   



 [1] 기존 디비 저장 위치 확인  
sudo -u postgres psql
SHOW data_directory;

 먼저 sudo 명령으로 postgres 사용자를 실행한다. 



 이후 SHOW data_directory;를 입력하여 현재 위치를 확인한다. 아마도 아래처럼 나올 것이다.

       data_directory       
------------------------------
/var/lib/postgresql/9.5/main
(1 row)


  [2] postgresql 멈추기  

 이제 시스템상에서 postgresql 서비스를 멈추어 준다. 그리고 현재 상태를 확인하여, Stopped 상태인지 확인하자.
sudo systemctl stop postgresql
sudo systemctl status postgresql


  [3] 저장 공간 형식 카피
sudo rsync -av /var/lib/postgresql /db

 앞 위치는 기존 데이터 베이스 저장 위치, 뒤 위치는 새로운 저장공간. 여기서 끝에 / (슬래시)가 붙으면 안된다.  



 [4] 기존 conf 백업 백업은 필수다.

sudo mv /var/lib/postgresql/9.5/main /var/lib/postgresql/9.5/main.bak


  [5] conf에 위치 변경
sudo vi /etc/postgresql/9.5/main/postgresql.conf
 역시 편집기는 자신이 편한것 쓰자.   


 [6] data_directory 변경 
 postgresql.conf에서 data_directory를 찾아서 변경해주자.
.
.
data_directory = '/db/postgresql/9.5/main'
.
.


  [7] postgresql  재시작과 확인 
 postgresql을 재시작하고, 상태를 확인하자
sudo systemctl start postgresql
sudo systemctl status postgresql


이후에 처음과 똑같이 postgresql상에서 확인해보자.
sudo -u postgres psql
SHOW data_directory;



  [8] 마지막 정리

sudo rm -Rf /var/lib/postgresql/9.5/main.bak
sudo systemctl restart postgresql
sudo systemctl status postgresql
백업 파일은 지우고, 재시작하자.  


 끝났다.



페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사