메모장

블로그 이미지

동팡

https://github.com/ehdvudee

PostgreSQL 백업 & 복구

개발관련/(과거)메모 2021. 1. 20. 20:54

과거자료 

 

목차

1. pg_dump(논리 백업)

2. 아카이브 로그 백업(물리 백업)

3. 꼼수

 

1. pg_dump(논리 백업)

[개요]

DB의 현재상태를 백업해주는 유틸리티이다. 백업 결과물은 Text 또는 다른 포멧으로 지정할 수 있다. 해당 기능은 운영상태에서 사용해도 다른 유저는 병목되지 않고 처리된다. 복구 하기 위해서는 psql 유틸리티를 사용하여 복구한다.

 

[옵션]

 -v: verbose: 처리상태를 화면에 표시함

 -U: 계정 이름

 -n: 스키마 이름

 -t: 백업하고자하는 테이블 지정

 -T: 백업 제외하는 테이블을 지정

 -f: 아웃풋 이름

 

[백업]

아래와 같이 pg_dump를 이용하여 백업본을 만든다.

pg_dump $dbName

pg_dump -v -U $userName -n $schemaName -t $backupTable -f $outputFileName $dbName

./pg_dump -v -U camanager -n minica2018 -t web_audit -f minica_audit.dump minica

 

[복구]

./psql -U camanager -d minica -a -f minica_audit.dump

 

2. 아카이브 로그 백업(물리 백업)

[개요]

아카이브 로그를 복구해주는 방식이다. PostgreSQL은 WAL(Write Ahead Log)[1] 로그를 먼저 축적한 후, datafile을 write한다. 해당 로그는 지정한 크기(default:16Mbyte) 만큼 쌓이며, 아카이브 설정을 하지 않으면, 일정 개수만 유지하고 덮어쓴다. WAL 로그를 아카이브 영역으로 지속적으로 백업하는 설정을 postgresql.conf에서 해줘야한다.

 

[postgresql.conf 설정]

wal_level = ’archive’ // 아카이브 백업을 하기 위해서는 최소 아카이브 이상 지정한다.

archive_mode = on

archive_command = 'cp %p /home/ehdvudee/bin/postgresql-9.1.24/archive/%f'

 

[백업]

위의 postgresql.conf설정을 해주면, WAL 로그가 지정한 크기(default:16Mbyte)만큼 차면 archive_command에 지정한 디렉토리에 자동으로 복사해준다.

 

[복구]

먼저 아카이브 로그에 가지 못한 WAL 로그들을 아카이브로 다 옮긴다. 명령어는 아래와 같다.

psql -c "select pg_switch_xlog();" // PostgreSQL 10 버전 이상은 pg_switch_wal()

 

Database를 정지한다.

 

PostgreSQL data 파일에 recovery.conf 생성 후, 아래와 같이 아카이브 로그 디렉토리와 백업 시점을 지정한다. 백업 시점을 지정하는 것을 PITR(Point In Time Recovery)라 한다.

restore_command = 'cp /home/ehdvudee/bin/postgresql-9.1.24/archive/%f %p'

recovery_target_time = '2019-07-02 11:06:20 KST'

 

Database 가동한다. 그러면 아카이브 복구는 완료한다.

 

 


[1] 오라클의 Redo 로그와 유사하다.

3. 꼼수

[개요]

바이너리 파일을 복사/붙이기 한다...

 

[백업]

postgresql의 data 파일을 복사한다.

 

[복구]

postgresql data 파일을 다른 곳에 붙이기한다.

 

저작자표시 비영리 (새창열림)

'개발관련 > (과거)메모' 카테고리의 다른 글

ChartJS 소개 및 기본 예제  (0) 2021.02.04
Postgresql Streaming Replication(9.1)  (0) 2021.01.20
PostgreSQL 서버 중요 설정 정보  (0) 2021.01.18
다양한 스프링 활용기(지속적인 업데이트 - 수정:20.12.31)  (0) 2020.12.31
REST API 정리  (0) 2020.12.30
Posted by 동팡
블로그 이미지

https://github.com/ehdvudee

by 동팡

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • 개발자 책리뷰
  • Secret Sharing 이론
  • NBP
  • 책리뷰
  • Hashicorp
  • 이직 정보 공유
  • 경력 채용
  • 개발자 글쓰기 책
  • 네이버 클라우드 개발자 면접
  • 네이버 비즈니스 플랫폼
  • 이직 느낀점
  • Spring
  • 개발자 이직
  • 간단리뷰
  • 네이버 클라우드
  • 볼트란
  • What is Vault
  • Thread-safe
  • 네이버 클라우드 이직
  • vault 개요
  • LoRaWA
  • 자바
  • Secret Sharing
  • 글쓰기 가이드
  • java
  • vault tutorial
  • vault
  • 하시콥 볼트
  • Shamir Secret Sharing
  • 개발자 준비

글 보관함

«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

링크

카테고리

메모장 (73)
개발관련 (71)
삽질 (26)
(과거)메모 (27)
강의 (0)
회고 (9)
책 리뷰 (9)
블로그 관리 글(비공개) (0)
일상 (2)
기타 (0)
책 리뷰 (1)
회고 (0)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
동팡's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

메모장

https://github.com/ehdvudee

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 메모장 (73)
    • 개발관련 (71)
      • 삽질 (26)
      • (과거)메모 (27)
      • 강의 (0)
      • 회고 (9)
      • 책 리뷰 (9)
    • 블로그 관리 글(비공개) (0)
    • 일상 (2)
      • 기타 (0)
      • 책 리뷰 (1)
      • 회고 (0)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바