database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10104 게시물 읽기
No. 10104
우분투(Ubuntu) 리눅스에 PostgreSQL설치시 pgdata(data_directory)경로변경하여 설치하는 방법 문의
작성자
황동현
작성일
2019-09-04 19:03ⓒ
2019-09-04 19:12ⓜ
조회수
2,966

안녕하세요.

DB구성을 주로 Postgresql로 사용하고 있습니다.
 
Windows Server 또는 Linux-CentOS에서는 DB설치시 data_directory의 경로를 별도로 설정가능하여, DATA용 스토리지에 DB를 사용하겠끔
 
구성을 주로하는데요.
 
LinuxOS 중 ubuntu에서는 apt-get패키지를 사용해서 postgres설치 합니다.
 
 * 명령 : sudo apt-get install postgresql
 
이렇게 설치하는 경우 apt-get에서 자동으로 설치를 하면서 data_directory의 경로를 따로 설정하지 못하고,
 
기본위치(/var/lib/postgresql/9.6/main)에 설치되게 됩니다.
 
질문의 요지는 ubuntu에서 postgresql설치시 data_directory를 변경해서 하는 방법 또는 변경할 수 있는 방법을 여쭤봅니다.
 
꼭 정답은 아니더라도 여러가지 시도해 볼 수 있는 방법이 있다면 답변 부탁드립니다.
 
감사합니다.
 
 
 질문1. apt-get패키지로 설치를 진행하면서, data_directory를 변경해서 설치가능한지?
 
 
 
 질문2. [질문1]의 방법으로, data_directory를 변경 할 수 없다면 다른 설치방법이 있는지?
 
 
 
 질문3. apt-get패키지로 설치 후 data_directory 경로를 변경하는 방법이 있는지?
 
 
 
 질문4. apt-get패키지로 설치 후 data_directory 경로 변경을 시도하였으나, OS재부팅 후 서비스가 자동으로 되지 않는 문제 발생
 
  - 시도했으나 실패한 방법
 : https://kugancity.tistory.com/entry/postgreSQL-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EB%B3%80%EA%B2%BD
 
  - 실패사유
 
  : 변경된 데이터 디렉토리 위치까진 확인되었으나, 재부팅시 서비스가 자동으로 실행되지 않고 수동으로 실행해줘야 실행됨
 
  : systemctl에 서비스등록되어있으나, 재부팅시에 서비스가 자동으로 실행되지 않음
 
  - 질문의요지 : 재부팅시 서비스자동시작이 안되는 이유는 멀까요?
이 글에 대한 댓글이 총 1건 있습니다.

1.

OS root 작업입니다.

# systemctl stop postgresql.service

/var/lib/postgresql/9.6/main 디렉터리를 원하는 곳으로 옮기고,

# mv /var/lib/postgresql/9.6/main /home/postgres/data

/etc/postgresql/9.6/main/postgresql.conf  파일에서 저 디렉터리를 사용하는 내용을 새 디렉터리로 바꾸고,

# sed -i 's#/var/lib/postgresql/9.6/main#/home/postgres/data#' /etc/postgresql/9.6/main/postgresql.conf

서비스 다시 시작

# systemctl start postgresql.service

 

2.

아주 옛날 방식은 OS 배포판을 사용하지 않는 것입니다. 왜냐하면, OS 배포판을 사용하는 경우, 위에서 처럼 root 권한이 종종 필요해 지기 때문에, OS root 권한 없이, 그냥 OS 일반 사용자(postgres) 로 모든 작업을 진행하는 것입니다. 이렇게 되면 서비스 등록 같은 것을 하지 않기 때문에 OS가 재실행 되었을 때 자동으로 DB 서버가 실행되지는 않겠죠.

이 작업은 일반적으로 소스를 구하고, 그것을 빌드하고, 자신이 사용할 수 있는 디렉터리에 설치하고, 자신이 사용할 수 있는 디렉터리에 data_directory를 지정해서 데이터베이스를 초기화 하고, 서버를 pg_ctl 명령으로 실행합니다.

 

3-4

윗 방법으로 /etc/postgres 쪽 환경 설정 파일을 수정하면 특별한 문제 없이 systemd 쪽에서 잘 작동할 것으로 예상합니다.

 

문제는 이렇게 OS 배포판 기본 설정을 변경한 경우에는 apt 명령으로 해당 postgresql 패키지가 업그레이드 되었을 때 영향도를 꼭 확인하는 번거로움임 생길 것으로 예상됩니다.

 

 

 

김상기(ioseph)님이 2019-09-08 01:24에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10107crosstab에서 동적으로 2개를 뽑아내려하면 어떻게 해야되나요? [2]
이태영
2019-10-04
2730
10106CLIENT_ENCODING 영구적으로 UTF-8로하는방법 [1]
신규사용자
2019-09-30
2749
10105windows10에 postgresql 설치 후... [1]
전상도
2019-09-25
3290
10104우분투(Ubuntu) 리눅스에 PostgreSQL설치시 pgdata(data_directory)경로변경하여 설치하는 방법 문의 [1]
황동현
2019-09-04
2966
10103dump/restore로 테이블들을 재작성 하고 있습니다만. [1]
ohworld5
2019-08-26
2651
10102오라클->Postgresql WITH RECURSIVE로 변환하는 방법문의 [2]
김성훈
2019-08-22
3344
10101Master -> Slave 서버로 전환되는 조건 [2]
뿔보
2019-08-21
2896
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다