PostgreSQL 백업 방법
PostgreSQL 은 장애시 복구를 위해 3가지 백업방법이 있습니다.
3가지 방법은 SQL 덤프 / 파일 시스템 기반 백업 / 아카이브 모드 백업입니다.
이 중 파일 시스템 기반 백업에 대해 다뤄보겠습니다.
파일시스템 백업 방법
말그대로 데이터파일을 압축해서 백업하는 방식입니다.
백업 전 PostgreSQL 을 중지해야 합니다.
1
|
tar -cvzf PostgreSQL.tar.gz /var/lib/postgresql/10/main
|
cs |
파일시스템 복원 방법
압축한 파일을 PostgreSQL 데이터경로에 풀어줍니다.
이 후 DB 를 재구동합니다. 버전과 아키텍처에 영향을 받습니다.
만약 복원경로가 변경되는 경우에는 pg_ctl 명령어를 사용하여 기본 디렉터리를 변경해 줍니다.
1
|
tar -xvzf PostgreSQL.tar.gz -C /var/lib/postgresql/10/main
|
cs |
파일시스템 백업 방식의 단점
파일시스템을 정상적으로 백업받기 위해서는, 반드시 데이터베이스 서버를 중지해야 합니다.
모든 클라이언트 접속을 막더라도, tar 명령이 파일 시스템의 단위적 스냅샷을 지원하지 않으며 서버에서 사용하는 버퍼에 대한 정보도 정확하게 반영할 수 없기 때문입니다.
특정 데이터베이스에 사용하는 파일만 백업을 받고 싶어도,
트랜잭션 커밋과 같이 공통파일로 관리되고 있는 파일때문에 부분 백업이 불가능합니다. (무조건 전체백업 해야함)
파일시스템 백업 방식의 주의점
만약 파일시스템에서 스냅샷 기능을 완벽하게 제공한다면, ( tar 하는 순간 시점을 기억 )
데이터베이스 서버가 운영 중일 때도 백업이 가능합니다.
다만 이 경우에는 운영 중 상태에서 백업되었기 때문에, 백업시점은 운영시점의 이전시점이 됩니다.
따라서 백업본으로 서버를 실행하려는 경우 현재 구성된 파일들을 정리해야 합니다.
만약 백업 시작 전에 CHECKPOINT 명령을 실행했고, 백업 작업 중간에 생긴 wal 로그파일을 보관하고 있다면 이 wal 로그파일을 사용하여 최신시점으로 복구가 가능하다. ( wal 복구를 하지 않을수도 있음 )
'Database > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] PostgreSQL Vacuum 이란 ( FSM, VM, TID ) (0) | 2021.04.05 |
---|---|
[PostgreSQL] PostgreSQL 아카이브 백업과 특정시점 복구방법 (0) | 2021.04.05 |
[PostgreSQL] PostgreSQL 데이터베이스 데이터파일 경로 확인 방법 (0) | 2021.04.02 |
[PostgreSQL] PostgreSQL SQL 덤프 방식의 백업과 복원 (0) | 2021.04.02 |
[PostgreSQL] PostgreSQL Peer authentication failed for user 에러 (0) | 2021.03.14 |