이 영역을 누르면 첫 페이지로 이동
Puter의 잡동사니 블로그의 첫 페이지로 이동

Puter의 잡동사니

페이지 맨 위로 올라가기

Puter의 잡동사니

잡다한 것이 한데 뒤섞인 곳

postgres primary/replica

  • 2024.09.08 23:09
  • development
반응형
docker를 이용하여 postgresql의 primary replica 설정할 수 있다.

 


 

docker-compose.yml 설정

services:
  postgres-primary:
    image: postgres:16.1
    container_name: postgres-primary
    restart: always
    ports:
      - 15432:5432
    environment:
      - POSTGRES_USER=아이디 입력
      - POSTGRES_PASSWORD=비밀번호 입력
      - TZ=Asia/Seoul
    volumes:
      - ./data/primary:/var/lib/postgresql/data

  postgres-replica:
    image: postgres:16.1
    container_name: postgres-replica
    restart: always
    ports:
      - 15433:5432
    environment:
      - POSTGRES_USER=repluser
      - POSTGRES_PASSWORD=비밀번호 입력
      - TZ=Asia/Seoul
    depends_on:
      - postgres-primary
    volumes:
      - ./data/replica:/var/lib/postgresql/data

 


 

primary 설정

 

1. replication 권한을 가지는 사용자 생성 (primary 컨테이너 안에서 SQL 실행)

psql -U postgres
CREATE USER repluser WITH LOGIN REPLICATION PASSWORD '비밀번호 입력';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO repluser;

 

2. physical replication slot 추가 (primary 컨테이너 안에서 SQL 실행)

SELECT pg_create_physical_replication_slot('repl_slot_0');

 

3. pg_hba.conf 수정 (host 서버에서 vi pg_hba.conf)

host    replication    repluser    all    trust

 

4. postgresql.conf 설정 (host 서버에서 vi postgresql.conf)

max_connections = 500
wal_level = replica
max_wal_senders = 10
max_replication_slots = 10
hot_standby = on
archive_mode = on
archive_command = 'cp %p /var/lib/postgresql/data/pg_archive/%f'

 

2.5. primary 컨테이너 재시작

docker restart postgres-primary

 


 

replica 설정

 

1. replica 컨테이너 /bin/bash로 접속 후 서비스 종료

su postgres
pg_ctl stop

 

2. replica 컨테이너에서 /var/lib/postgres/data 디렉토리 삭제 또는 host에 마운트된 data 디렉토리 삭제

cd /var/lib/postgres/data
rm -rf ./*

 

3. pg_basebackup 실행 (replica 컨테이너에서)

pg_basebackup -h {PRIMARY_IP} -p {PRIMARY_PORT} -D /var/lib/postgresql/data -U repluser -P -v -X stream -S repl_slot_0 -R

 

4. replica 컨테이너 재시작

docker restart postgres-replica

 


 

끝.

반응형
저작자표시 비영리 변경금지 (새창열림)

'development' 카테고리의 다른 글

linux disk mount  (0) 2024.09.15
nginx-proxy-manager: Cloudflare 인증서 갱신 오류  (0) 2024.09.09
JOOQ 비관적 잠금  (0) 2024.09.06
라즈베리파이 HID  (0) 2024.07.29
PKIX path building failed  (0) 2023.05.01

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • linux disk mount

    linux disk mount

    2024.09.15
  • nginx-proxy-manager: Cloudflare 인증서 갱신 오류

    nginx-proxy-manager: Cloudflare 인증서 갱신 오류

    2024.09.09
  • JOOQ 비관적 잠금

    JOOQ 비관적 잠금

    2024.09.06
  • 라즈베리파이 HID

    라즈베리파이 HID

    2024.07.29
다른 글 더 둘러보기

정보

Puter의 잡동사니 블로그의 첫 페이지로 이동

Puter의 잡동사니

  • Puter의 잡동사니의 첫 페이지로 이동

검색

메뉴

  • ALL
  • #TAG

카테고리

  • Puter의 잡동사니 (164)
    • creation (5)
    • tagging (42)
    • product (63)
    • toy (18)
    • game (2)
    • clothes (4)
    • useful (3)
    • development (27)
반응형

정보

Puter의 Puter의 잡동사니

Puter의 잡동사니

Puter

블로그 구독하기

  • 구독하기
  • 네이버 이웃 맺기
  • RSS 피드

나의 외부 링크

  • kakao pay
  • 구글 Search Console
  • 구글 Analytics
  • 네이버 웹마스터 도구
  • 네이버 Analytics

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. Copyright © Puter.

티스토리툴바