오늘은 Docker 환경에서 PostgreSQL Backup and Restore를 해보겠습니다.
PostgreSQL 은 장애시 복구를 위해 3가지 백업방법이 있습니다.
1. SQL Dump
2. 파일 시스템 기반 백업
3. 연속 아카이빙을 통한 백업
이중 SQL Dump를 이용해서 진행해보겠습니다.
* Databse Backup and Restore 란? https://hanco.tistory.com/56
pg_dump / pg_dumpall
PostgreSQL 에서는 pd_dump와 pg_dumpall 명령어를 통해 데이터 백업이 가능합니다.
참고: https://www.postgresql.org/docs/10/app-pgdump.html
- pg_dump 는 단일 데이터베이스를 덤프합니다.
- pg_dumpall 모든 데이터베이스를 덤프합니다.
1. 데이터베이스 백업
컨테이너 접속
docker exec -i -t [container name] bash
데이터베이스 확인
데이터베이스 접속
$ \c [database name]
테이블 확인
$ \dt
Database backup
$ pg_dump -U [Username] [dbname] > [dumpfile name]
$ pg_dumpall -U [Username] > [dumpfile name]
* 덤프하려는 모든 테이블에 대한 읽기 액세스 권한이 있어야 합니다. 전체 데이터베이스를 덤프하려면 postgres superuser 또는 데이터베이스 관리자 권한이 있는 사용자로 명령을 실행해야 합니다.
* 저의 경우에는 -U postgres를 주어 Postgres유저로 진행했습니다.
* pg_dumpall은 모든 데이터베이스를 백업하기 때문에 데이터베이스 명을 지정하지 않습니다
백업 파일 생성 확인
새로운 데이터베이스 생성
$ create database [database name]
Database Restore
$ psql -U postgres [Database name] < [dump file name]
Restore 확인
백업 파일을 복원한 새로 만든 데이터베이스에 접속하여 테이블 확인 결과, 백업했던 데이터 그대로 Restore된 것을 볼 수 있습니다
'Database' 카테고리의 다른 글
[RDBMS] Database Backup and restore (0) | 2024.03.24 |
---|---|
[RDBMS] 데이터베이스 구성 (0) | 2024.03.23 |
[Mac OS] Docker + PostgreSQL 시작하기 (0) | 2024.03.19 |
[Mac OS] Docker + PostgreSQL 구성하기 (0) | 2024.03.19 |